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 638 of file EnergyAnalyzer.hpp.
640{
642 return 0.0;
643
644 const auto& ch = analysis.
channels[0];
645 const std::string
q = qualifier.empty() ?
"mean_energy" : qualifier;
646
647 if (
q ==
"mean_energy")
648 return ch.mean_energy;
649 if (
q ==
"max_energy")
650 return ch.max_energy;
651 if (
q ==
"min_energy")
652 return ch.min_energy;
654 return ch.variance;
655 if (
q ==
"dynamic_range")
656 return ch.max_energy - ch.min_energy;
657 if (
q ==
"event_count")
658 return static_cast<double>(ch.event_positions.size());
659 if (
q ==
"window_count")
660 return static_cast<double>(ch.energy_values.size());
661
662 return ch.mean_energy;
663}
std::vector< ChannelEnergy > channels
References MayaFlux::Yantra::EnergyAnalysis::channels, and q.
Referenced by MayaFlux::Yantra::Granular::AttributeOp::compute_grain_attribute().