15 #ifndef BORNAGAIN_DEVICE_DATA_DATAFIELD_H
16 #define BORNAGAIN_DEVICE_DATA_DATAFIELD_H
38 Datafield(
const std::vector<IAxis*>& axes);
40 Datafield(
const std::vector<IAxis*>& axes,
const std::vector<double>& vector);
48 void setAt(
size_t i,
double val);
50 double valAt(
size_t i)
const;
75 void setVector(
const std::vector<double>& data_vector);
91 Datafield*
crop(
double xmin,
double ymin,
double xmax,
double ymax)
const;
94 #ifdef BORNAGAIN_PYTHON
PyObject forward declaration.
Stores radiation power per bin.
std::vector< double > m_vec
PyObject * npArray() const
Returns data as Python numpy array.
const IAxis & axis(size_t k) const
double valAt(size_t i) const
Datafield(Frame *frame)
Constructor that takes ownership of supplied frame.
Datafield(const Datafield &)=delete
bool hasSameShape(const Datafield &other) const
Returns true if objects a) have same dimensions b) bin boundaries of axes coincide.
Datafield * clone() const
Datafield * crop(double xmin, double ymin, double xmax, double ymax) const
std::unique_ptr< Frame > m_frame
void setVector(const std::vector< double > &data_vector)
Sets new values to raw data vector.
Datafield * xProjection()
Project a 2D histogram into 1D histogram along X. The projection is made from all bins along y-axis.
bool hasSameSizes(const Datafield &other) const
Returns true if object have same dimensions and number of axes bins.
std::vector< double > flatVector() const
Returns copy of raw data vector.
const double & operator[](size_t i) const
ied accessor (const)
Datafield(Datafield &&)=default
Datafield * normalizedToMaximum() const
double & operator[](size_t i)
indexed accessor
Datafield * create_yProjection(int xbinlow, int xbinup)
Creates projection along Y. The projections is made by collecting the data in the range between [xbin...
const IAxis & yAxis() const
Datafield * yProjection()
Project a 2D histogram into 1D histogram along Y. The projection is made from all bins along x-axis.
size_t size() const
Returns total size of data buffer (product of bin number in every dimension).
Datafield * create_xProjection(int ybinlow, int ybinup)
Creates projection along X. The projections is made by collecting the data in the range between [ybin...
void setAllTo(const double &value)
Sets content of output data to specific value.
const IAxis & xAxis() const
const Frame & frame() const
void setAt(size_t i, double val)
Abstract base class for one-dimensional axes.