AARE
Data analysis library for PSI hybrid detectors
|
NumpyFile class to read and write numpy files. More...
#include <NumpyFile.hpp>
Public Member Functions | |
NumpyFile (const std::filesystem::path &fname, const std::string &mode="r", FileConfig cfg={}) | |
NumpyFile constructor. | |
void | write (Frame &frame) override |
write a frame to the file | |
Frame | read () override |
write a vector of frames to the file | |
std::vector< Frame > | read (size_t n_frames) override |
read n_frames from the file at the current position | |
void | read_into (std::byte *image_buf) override |
read one frame from the file at the current position and store it in the provided buffer | |
void | read_into (std::byte *image_buf, size_t n_frames) override |
read n_frames from the file at the current position and store them in the provided buffer | |
size_t | frame_number (size_t frame_index) override |
get the frame number at the given frame index | |
size_t | bytes_per_frame () override |
get the size of one frame in bytes | |
size_t | pixels () override |
get the number of pixels in one frame | |
void | seek (size_t frame_number) override |
seek to the given frame number | |
size_t | tell () override |
get the current position of the file pointer | |
size_t | total_frames () const override |
get the total number of frames in the file | |
ssize_t | rows () const override |
get the number of rows in the file | |
ssize_t | cols () const override |
get the number of columns in the file | |
ssize_t | bitdepth () const override |
get the bitdepth of the file | |
DType | dtype () const |
get the data type of the numpy file | |
std::vector< size_t > | shape () const |
get the shape of the numpy file | |
template<typename T , size_t NDim> | |
NDArray< T, NDim > | load () |
load the numpy file into an NDArray | |
~NumpyFile () | |
Frame | iread (size_t frame_number) |
read one frame from the file at the given frame number | |
std::vector< Frame > | iread (size_t frame_number, size_t n_frames) |
read n_frames from the file starting at the given frame number | |
Data Fields | |
std::string | m_mode |
std::filesystem::path | m_fname |
std::filesystem::path | m_base_path |
std::string | m_base_name |
std::string | m_ext |
int | m_findex |
size_t | m_total_frames {} |
size_t | max_frames_per_file {} |
std::string | version |
DetectorType | m_type |
ssize_t | m_rows {} |
ssize_t | m_cols {} |
ssize_t | m_bitdepth {} |
Private Member Functions | |
void | load_metadata () |
void | get_frame_into (size_t, std::byte *) |
Frame | get_frame (size_t frame_number) |
Private Attributes | |
FILE * | fp = nullptr |
size_t | initial_header_len = 0 |
size_t | current_frame {} |
uint32_t | header_len {} |
uint8_t | header_len_size {} |
size_t | header_size {} |
NumpyHeader | m_header |
uint8_t | major_ver_ {} |
uint8_t | minor_ver_ {} |
NumpyFile class to read and write numpy files.
aare::NumpyFile::NumpyFile | ( | const std::filesystem::path & | fname, |
const std::string & | mode = "r" , |
||
FileConfig | cfg = {} |
||
) |
NumpyFile constructor.
fname | path to the numpy file |
mode | file mode (r, w) |
cfg | file configuration |
aare::NumpyFile::~NumpyFile | ( | ) |
|
inlineoverridevirtual |
|
overridevirtual |
|
inlineoverridevirtual |
get the number of columns in the file
Implements aare::FileInterface.
|
inlineoverridevirtual |
get the frame number at the given frame index
frame_index | index of the frame |
Implements aare::FileInterface.
|
private |
|
private |
|
inlineinherited |
read one frame from the file at the given frame number
frame_number | frame number to read |
|
inlineinherited |
read n_frames from the file starting at the given frame number
frame_number | frame number to start reading from |
n_frames | number of frames to read |
|
inline |
|
private |
|
overridevirtual |
get the number of pixels in one frame
Implements aare::FileInterface.
|
inlineoverridevirtual |
write a vector of frames to the file
frames | vector of frames to write |
read one frame from the file at the current position
Implements aare::FileInterface.
|
overridevirtual |
read n_frames from the file at the current position
n_frames | number of frames to read |
Implements aare::FileInterface.
|
inlineoverridevirtual |
read one frame from the file at the current position and store it in the provided buffer
image_buf | buffer to store the frame |
Implements aare::FileInterface.
|
overridevirtual |
read n_frames from the file at the current position and store them in the provided buffer
image_buf | buffer to store the frames |
n_frames | number of frames to read |
Implements aare::FileInterface.
|
inlineoverridevirtual |
get the number of rows in the file
Implements aare::FileInterface.
|
inlineoverridevirtual |
seek to the given frame number
frame_number | frame number to seek to |
Implements aare::FileInterface.
|
inline |
get the shape of the numpy file
|
inlineoverridevirtual |
get the current position of the file pointer
Implements aare::FileInterface.
|
inlineoverridevirtual |
get the total number of frames in the file
Implements aare::FileInterface.
|
overridevirtual |
write a frame to the file
frame | frame to write |
std::runtime_error | if the function is not implemented |
Implements aare::FileInterface.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
private |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
private |
|
inherited |
|
private |
|
inherited |