aare/examples/raw_example.cpp
Bechir Braham 68dcfca74e
Feature/reactivate python bindings (#74)
major changes:
- add python bindings for all c++ features except network_io
- changes to cross compile on windows,linux and macos
- fix bugs with cluster_finder
- use Dtype in Frame instead of bitdepth
- remove boost::program_options and replace with our implementation 
- add Transforms class that applies a sequence of functions (c++ or
python functions) on a Frame.
- remove frame reorder and flip from SubFile.cpp. use Transforms instead
- Test clusterFinder and Pedestal results in comparison with
slsDetectorCalibration

---------

Co-authored-by: Bechir <bechir.brahem420@gmail.com>
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
2024-07-04 11:51:48 +02:00

50 lines
1.6 KiB
C++

#include "aare.hpp"
#include "aare/examples/defs.hpp"
#include <iostream>
using namespace aare;
void test(File &f, int frame_number) {
std::cout << "frame number: " << frame_number << '\n';
Frame frame = f.iread(frame_number);
std::cout << *(reinterpret_cast<uint16_t *>(frame.get(0, 0))) << '\n';
std::cout << *(reinterpret_cast<uint16_t *>(frame.get(0, 1))) << '\n';
std::cout << *(reinterpret_cast<uint16_t *>(frame.get(0, 95))) << '\n';
}
int main() {
auto PROJECT_ROOT_DIR = std::filesystem::path(getenv(AARE_ROOT_DIR));
if (PROJECT_ROOT_DIR.empty()) {
throw std::runtime_error("environment variable PROJECT_ROOT_DIR is not set");
}
std::filesystem::path const fpath(PROJECT_ROOT_DIR / "data" / "moench" /
"moench04_noise_200V_sto_both_100us_no_light_thresh_900_master_0.raw");
File file(fpath, "r");
test(file, 0);
test(file, 2);
test(file, 99);
std::filesystem::path const path2("/tmp/raw_example_writing.json");
aare::FileConfig config;
config.version = "1.0";
config.geometry = {1, 1};
config.detector_type = aare::DetectorType::Moench;
config.max_frames_per_file = 100;
config.rows = 1024;
config.cols = 512;
config.dtype = aare::Dtype::UINT16;
File file2(path2, "w", config);
Frame frame(1024, 512, aare::Dtype::UINT16);
for (int i = 0; i < 1024; i++) {
for (int j = 0; j < 512; j++) {
frame.set(i, j, (uint16_t)(i + j));
}
}
sls_detector_header header;
header.frameNumber = 0;
file2.write(frame, header);
file2.set_total_frames(1);
}