24 #ifndef SKA_CHEETAH_DATA_SPECTRUM_H 25 #define SKA_CHEETAH_DATA_SPECTRUM_H 27 #include "cheetah/data/TimeFrequency.h" 28 #include "pss/astrotypes/multiarray/MultiArray.h" 34 template<
typename SliceType>
38 typedef typename SliceType::template OperatorSliceType<data::Frequency>::type Channel;
39 typedef typename SliceType::template ConstOperatorSliceType<data::Frequency>::type ConstChannel;
41 using SliceType::SliceType;
44 Channel channel(std::size_t channel_number);
45 ConstChannel channel(std::size_t channel_number)
const;
57 template<
typename DerivedType,
typename NumericalRep,
typename Alloc=std::allocator<NumericalRep>>
59 ,
public panda::DataChunk<DerivedType>
64 typedef typename BaseT::Channel Channel;
65 typedef typename BaseT::ConstChannel ConstChannel;
66 typedef cheetah::utils::ModifiedJulianClock::time_point TimePointType;
69 SpectrumBase(pss::astrotypes::DimensionSize<data::Frequency> size = pss::astrotypes::DimensionSize<data::Frequency>(0));
75 TimePointType
const& start_time()
const;
80 void start_time(TimePointType offset);
83 TimePointType _start_time;
86 template<
typename NumericalRep,
typename Alloc=std::allocator<NumericalRep>>
92 Spectrum(pss::astrotypes::DimensionSize<data::Frequency> size = pss::astrotypes::DimensionSize<data::Frequency>(0));
101 namespace astrotypes {
103 template<
typename T,
typename Alloc>
104 struct has_exact_dimensions<
ska::cheetah::data::Spectrum<T, Alloc>, units::Frequency> :
public std::true_type
108 template<
typename T,
typename Alloc,
typename DerivedType>
109 struct has_exact_dimensions<ska::cheetah::data::SpectrumBase<DerivedType, T, Alloc>, units::Frequency> :
public std::true_type
116 #include "detail/Spectrum.cpp" 118 #endif // SKA_CHEETAH_DATA_SPECTRUM_H
A single dimension representation of a Spectrum.
Some limits and constants for FLDO.
std::size_t number_of_channels() const
return the number of channels in the data structure