Extract a named scalar from an EnergyAnalysis result.
Maps qualifier strings to scalar fields of the first channel in analysis. All scalar-valued fields of ChannelEnergy are addressable.
Supported qualifiers:
- "mean_energy" mean energy across analysis windows
- "max_energy" maximum window energy
- "min_energy" minimum window energy
- "variance" variance of window energy values
- "dynamic_range" max_energy - min_energy
- "event_count" number of detected energy events (peaks, zero crossings, etc.)
- "window_count" number of analysis windows
An empty qualifier resolves to "mean_energy". Unknown qualifiers fall back to mean_energy.
- Parameters
-
| analysis | Result produced by EnergyAnalyzer. |
| qualifier | Name of the scalar to extract. |
- Returns
- Extracted double value, or 0.0 if channels is empty.
Definition at line 683 of file EnergyAnalyzer.hpp.
685{
687 return 0.0;
688
689 const auto& ch = analysis.
channels[0];
690 const std::string
q = qualifier.empty() ?
"mean_energy" : qualifier;
691
692 if (
q ==
"mean_energy")
693 return ch.mean_energy;
694 if (
q ==
"max_energy")
695 return ch.max_energy;
696 if (
q ==
"min_energy")
697 return ch.min_energy;
699 return ch.variance;
700 if (
q ==
"dynamic_range")
701 return ch.max_energy - ch.min_energy;
702 if (
q ==
"event_count")
703 return static_cast<double>(ch.event_positions.size());
704 if (
q ==
"window_count")
705 return static_cast<double>(ch.energy_values.size());
706
707 return ch.mean_energy;
708}
std::vector< ChannelEnergy > channels
References MayaFlux::Yantra::EnergyAnalysis::channels, and q.
Referenced by MayaFlux::Yantra::Granular::AttributeOp::compute_grain_attribute().