mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-11 06:47:14 +02:00
added roi, noise and gain (#143)
- Moved definitions of Cluster_2x2 and Cluster_3x3 to it's own file - Added optional members for ROI, noise_map and gain_map in ClusterFile **API:** After creating the ClusterFile the user can set one or all of: roi, noise_map, gain_map ```python f = ClusterFile(fname) f.set_roi(roi) #aare.ROI f.set_noise_map(noise_map) #numpy array f.set_gain_map(gain_map) #numpy array ``` **When reading clusters they are evaluated in the order:** 1. If ROI is enabled check that the cluster is within the ROI 1. If noise_map is enabled check that the cluster meets one of the conditions - Center pixel above noise - Highest 2x2 sum above 2x noise - 3x3 sum above 3x noise 1. If gain_map is set apply the gain map before returning the clusters (not used for noise cut) **Open questions:** 1. Check for out of bounds access in noise and gain map? closes #139 closes #135 closes #90
This commit is contained in:
@ -31,26 +31,22 @@ void define_cluster_file_io_bindings(py::module &m) {
|
||||
auto v = new ClusterVector<int32_t>(self.read_clusters(n_clusters));
|
||||
return v;
|
||||
},py::return_value_policy::take_ownership)
|
||||
.def("read_clusters",
|
||||
[](ClusterFile &self, size_t n_clusters, ROI roi) {
|
||||
auto v = new ClusterVector<int32_t>(self.read_clusters(n_clusters, roi));
|
||||
return v;
|
||||
},py::return_value_policy::take_ownership)
|
||||
.def("read_frame",
|
||||
[](ClusterFile &self) {
|
||||
auto v = new ClusterVector<int32_t>(self.read_frame());
|
||||
return v;
|
||||
})
|
||||
.def("set_roi", &ClusterFile::set_roi)
|
||||
.def("set_noise_map", [](ClusterFile &self, py::array_t<int32_t> noise_map) {
|
||||
auto view = make_view_2d(noise_map);
|
||||
self.set_noise_map(view);
|
||||
})
|
||||
.def("set_gain_map", [](ClusterFile &self, py::array_t<double> gain_map) {
|
||||
auto view = make_view_2d(gain_map);
|
||||
self.set_gain_map(view);
|
||||
})
|
||||
.def("close", &ClusterFile::close)
|
||||
.def("write_frame", &ClusterFile::write_frame)
|
||||
// .def("read_cluster_with_cut",
|
||||
// [](ClusterFile &self, size_t n_clusters,
|
||||
// py::array_t<double> noise_map, int nx, int ny) {
|
||||
// auto view = make_view_2d(noise_map);
|
||||
// auto *vec =
|
||||
// new std::vector<Cluster3x3>(self.read_cluster_with_cut(
|
||||
// n_clusters, view.data(), nx, ny));
|
||||
// return return_vector(vec);
|
||||
// })
|
||||
.def("__enter__", [](ClusterFile &self) { return &self; })
|
||||
.def("__exit__",
|
||||
[](ClusterFile &self,
|
||||
|
Reference in New Issue
Block a user