libpniio
|
base clase for CBF readers More...
#include <cbf_reader.hpp>
Public Member Functions | |
cbf_reader () | |
default constructor More... | |
cbf_reader (const pni::core::string &fname) | |
construct reader object More... | |
virtual | ~cbf_reader () |
destructor More... | |
cbf_reader (const cbf_reader &r)=delete | |
the copy constructor is deleted More... | |
cbf_reader & | operator= (cbf_reader &&r) |
move assignment More... | |
cbf_reader & | operator= (const cbf_reader &r)=delete |
the copy assignment operator is deleted More... | |
virtual void | close () |
close the file More... | |
virtual void | open () |
open file More... | |
virtual size_t | nimages () const |
get number of images More... | |
virtual image_info | info (size_t i) const |
get image info More... | |
template<typename CTYPE > | |
CTYPE | image (size_t i, size_t c=0) |
read image More... | |
template<typename CTYPE > | |
void | image (CTYPE &array, size_t i, size_t c=0) |
read data from detector file More... | |
![]() | |
virtual | ~image_reader () |
destructor More... | |
template<typename ATYPE > | |
ATYPE | image (size_t, size_t) |
method to read a single channel More... | |
template<typename ATYPE > | |
void | image (ATYPE &, size_t, size_t) |
method to read a single image channel More... | |
![]() | |
virtual | ~data_reader () |
destructor More... | |
pni::core::string | filename () const |
get filename More... | |
void | filename (const pni::core::string &fname) |
set filename More... | |
Private Member Functions | |
void | _parse_file () |
parse the file More... | |
Private Attributes | |
cbf::vendor_id | _detector_vendor |
string holding the detector vendor ID More... | |
std::vector< image_info > | _image_info |
info structure for data More... | |
std::streampos | _data_offset |
store data offset More... | |
cbf::compression_id | _compression_type |
compression type More... | |
Additional Inherited Members | |
![]() | |
image_reader () | |
default constructor More... | |
image_reader (const image_reader &)=delete | |
copy constructor is deleted More... | |
image_reader (image_reader &&r) | |
move constructor More... | |
image_reader (const pni::core::string &fname, bool binary=false) | |
standard constructor taking the filename as string object More... | |
image_reader & | operator= (const image_reader &r)=delete |
copy assignment is deleted More... | |
image_reader & | operator= (image_reader &&r) |
move assignment operator More... | |
![]() | |
std::ifstream & | _get_stream () const |
get stream More... | |
void | _set_binary () |
set binary mode More... | |
data_reader () | |
default constructor More... | |
data_reader (const pni::core::string &fname, bool binary=false) | |
standard constructor More... | |
data_reader (data_reader &&r) | |
move constructor More... | |
data_reader (const data_reader &r)=delete | |
copy constructor is deleted More... | |
data_reader & | operator= (const data_reader &r)=delete |
copy assigment is deleted More... | |
data_reader & | operator= (data_reader &&r) |
move assignment More... | |
CBFReader is the base class for all readers of data stored in binary CIF format. Although CBF is standardized by the ICUR the guys from Dectris (the vendor of the Pilatus detector) use a kind of dialect which must be treated in a slightly different way. The field _header_convention in the class indicates whether or not the header is in standard CBF format or in the Dectris dialect.
Reading a CBF file is a two step process:
pni::io::cbf_reader::cbf_reader | ( | ) |
pni::io::cbf_reader::cbf_reader | ( | const pni::core::string & | fname | ) |
The name of the CBFFile is passed as a String object. During instantiation of class the file is parsed. Throws an exception if the flavor of the CBF file cannot be deduced from the header.
file_error | if the CBF flavor cannot be deduced |
fname | name of the file |
|
virtual |
|
delete |
|
private |
Parse the file and setup member variables of the class.
|
inlinevirtual |
Reimplemented from pni::io::data_reader.
CTYPE pni::io::cbf_reader::image | ( | size_t | i, |
size_t | c = 0 |
||
) |
CTYPE | container type for storing data |
memory_allocation_error | if container allocation failes |
file_error | in case of IO errors |
i | image number to read |
c | channel to read (default = 0) |
void pni::io::cbf_reader::image | ( | CTYPE & | array, |
size_t | i, | ||
size_t | c = 0 |
||
) |
Reads a single image from a detector file and stores it in an container of type CTYPE. Ths me
file_error | if case of IO errors |
CTYPE | container type holding the image data |
SizeMissmatchError | if container and image size do not match |
array | instance of CTYPE where data will be stored |
i | image number |
c | channel number |
|
inlinevirtual |
Return an instance of ImageInfo with the information of image i in the image stack. This is a virtual function which must be implemented by the concrete reader classes.
i | index of the image |
Implements pni::io::image_reader.
|
inlinevirtual |
Returns the number of images stored in the file. This methods reflects the fact that many image formats can hold more than one image in a single file (CBF, TIFF). Although this feature is hardly used for experiments it should be taken into account. This is a virtual function which must be implemented by the concrete reader classes.
Implements pni::io::image_reader.
|
inlinevirtual |
Opens the file given by filename.
FileError | in case of errors |
Reimplemented from pni::io::data_reader.
cbf_reader & pni::io::cbf_reader::operator= | ( | cbf_reader && | r | ) |
|
delete |
|
private |
|
private |
|
private |
|
private |