MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_pipeline_output()

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = Eigen::VectorXd>
output_type MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::create_pipeline_output ( const input_type &  input,
const StatisticalAnalysis &  analysis_result,
DataStructureInfo &  info 
)
inlineprivate

Create pipeline output for operation chaining.

Definition at line 674 of file StatisticalAnalyzer.hpp.

675 {
676 std::vector<std::vector<double>> channel_stats;
677 channel_stats.reserve(analysis_result.channel_statistics.size());
678 for (const auto& ch : analysis_result.channel_statistics) {
679 channel_stats.push_back(ch.statistical_values);
680 }
681
682 output_type output = this->convert_result(channel_stats, info);
683
684 output.metadata = input.metadata;
685
686 output.metadata["source_analyzer"] = "StatisticalAnalyzer";
687 output.metadata["statistical_method"] = method_to_string(analysis_result.method_used);
688 output.metadata["window_size"] = analysis_result.window_size;
689 output.metadata["hop_size"] = analysis_result.hop_size;
690 output.metadata["num_channels"] = analysis_result.channel_statistics.size();
691
692 if (!analysis_result.channel_statistics.empty()) {
693 std::vector<double> channel_means, channel_maxs, channel_mins, channel_variances, channel_stddevs, channel_skewness, channel_kurtosis, channel_medians;
694 std::vector<size_t> channel_window_counts;
695
696 for (const auto& ch : analysis_result.channel_statistics) {
697 channel_means.push_back(ch.mean_stat);
698 channel_maxs.push_back(ch.max_stat);
699 channel_mins.push_back(ch.min_stat);
700 channel_variances.push_back(ch.stat_variance);
701 channel_stddevs.push_back(ch.stat_std_dev);
702 channel_skewness.push_back(ch.skewness);
703 channel_kurtosis.push_back(ch.kurtosis);
704 channel_medians.push_back(ch.median);
705 channel_window_counts.push_back(ch.statistical_values.size());
706 }
707
708 output.metadata["mean_per_channel"] = channel_means;
709 output.metadata["max_per_channel"] = channel_maxs;
710 output.metadata["min_per_channel"] = channel_mins;
711 output.metadata["variance_per_channel"] = channel_variances;
712 output.metadata["stddev_per_channel"] = channel_stddevs;
713 output.metadata["skewness_per_channel"] = channel_skewness;
714 output.metadata["kurtosis_per_channel"] = channel_kurtosis;
715 output.metadata["median_per_channel"] = channel_medians;
716 output.metadata["window_count_per_channel"] = channel_window_counts;
717 }
718
719 return output;
720 }
Core::GlobalInputConfig input
Definition Config.cpp:42
output_type convert_result(std::vector< std::vector< double > > &result_data, DataStructureInfo &metadata)
Convert processed double data back to OutputType using metadata and optional callback.
static std::string method_to_string(StatisticalMethod method)
Convert statistical method enum to string.

References MayaFlux::Yantra::StatisticalAnalysis::channel_statistics, MayaFlux::Yantra::ComputeOperation< InputType, OutputType >::convert_result(), MayaFlux::Yantra::StatisticalAnalysis::hop_size, input, MayaFlux::Yantra::Datum< T >::metadata, MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::method_to_string(), MayaFlux::Yantra::StatisticalAnalysis::method_used, and MayaFlux::Yantra::StatisticalAnalysis::window_size.

Referenced by MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::analyze_implementation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: