MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Yantra::Granular::AttributeOp Class Referencefinal

Computes a scalar attribute per grain and writes it onto each Region. More...

#include <GranularWorkflow.hpp>

+ Inheritance diagram for MayaFlux::Yantra::Granular::AttributeOp:
+ Collaboration diagram for MayaFlux::Yantra::Granular::AttributeOp:

Public Member Functions

AnalysisType get_analysis_type () const override
 Gets the analysis type category for this analyzer.
 
- Public Member Functions inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
std::vector< std::any > analyze_batch (const std::vector< input_type > &inputs)
 Batch analysis for multiple inputs.
 
std::vector< std::any > analyze_batch (const std::vector< InputType > &inputs)
 
std::any analyze_data (const input_type &data)
 User-facing analysis method - returns analysis results directly.
 
std::any analyze_data (const InputType &data)
 
std::map< std::string, std::any > get_all_parameters () const override
 Retrieves all parameters and their values.
 
AnalysisGranularity get_analysis_granularity () const
 
virtual std::vector< std::string > get_available_methods () const
 Get available analysis methods for this analyzer.
 
std::any get_current_analysis () const
 Access cached analysis from last operation.
 
std::string get_name () const override
 Gets human-readable name for this analyzer.
 
OperationType get_operation_type () const override
 Returns the category of this operation for grammar and registry discovery.
 
std::any get_parameter (const std::string &name) const override
 Retrieves a parameter's current value.
 
template<typename T >
get_parameter_or_default (const std::string &name, const T &default_value) const
 Helper to get typed parameter with default value.
 
bool has_current_analysis () const
 Check if analysis has been performed.
 
void set_analysis_granularity (AnalysisGranularity granularity)
 
void set_parameter (const std::string &name, std::any value) override
 Type-safe parameter management with analysis-specific defaults.
 
virtual bool supports_method (const std::string &method) const
 Check if a specific analysis method is supported.
 
bool validate_input (const input_type &input) const override
 Validates input data meets analyzer requirements.
 
virtual ~UniversalAnalyzer ()=default
 
- Public Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
void add_dependency (std::shared_ptr< ComputeOperation > dep)
 
output_type apply_operation (const input_type &input)
 Public synchronous execution interface.
 
output_type apply_operation_with_dependencies (const input_type &input)
 Applies the operation with dependencies resolved.
 
OutputType apply_to_data (const InputType &data)
 Convenience overload that extracts just the data from result.
 
 ComputeOperation ()
 Constructor with data type validation warnings.
 
output_type execute (const input_type &input)
 OpUnit interface - operations can act as units in dependency graphs.
 
virtual const std::shared_ptr< Kakshya::SignalSourceContainer > & get_container_for_regions () const
 
const auto & get_dependencies () const
 
const ExecutionContextget_last_execution_context () const
 
bool has_gpu_backend () const
 
output_type operator() (const InputType &data)
 Convenience overload for direct data processing (backward compatibility)
 
virtual void set_container_for_regions (const std::shared_ptr< Kakshya::SignalSourceContainer > &container)
 
void set_gpu_backend (std::shared_ptr< GpuExecutionContext< InputType, OutputType > > backend)
 Attach a GPU execution backend.
 
void set_last_execution_context (const ExecutionContext &ctx)
 
void set_post_execution_hook (const OperationHookCallback &hook)
 
void set_pre_execution_hook (const OperationHookCallback &hook)
 
void set_reconstruction_callback (const ReconstructionCallback &callback)
 
virtual ~ComputeOperation ()=default
 Virtual destructor for proper cleanup of derived classes.
 

Protected Member Functions

Datum< Kakshya::RegionGroupanalyze_implementation (const Datum< Kakshya::RegionGroup > &input) override
 
std::string get_analyzer_name () const override
 Get analyzer-specific name (derived classes override this)
 
- Protected Member Functions inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
virtual output_type add_attribution_metadata (const output_type &raw_output)
 Add attribution metadata to results (override for custom attribution)
 
virtual output_type analyze_implementation (const input_type &input)=0
 Pure virtual analysis implementation - derived classes implement this.
 
virtual output_type apply_granularity_formatting (const output_type &raw_output)
 Apply granularity-based output formatting.
 
virtual output_type create_summary_statistics (const output_type &raw_output)
 Create summary statistics from results (override for custom summaries)
 
virtual std::map< std::string, std::any > get_all_analysis_parameters () const
 
virtual std::any get_analysis_parameter (const std::string &name) const
 
output_type operation_function (const input_type &input) override
 Core analysis implementation - must be overridden by derived classes.
 
virtual output_type organize_into_groups (const output_type &raw_output)
 Organize results into hierarchical groups (override for custom grouping)
 
virtual void set_analysis_parameter (const std::string &name, std::any value)
 Analysis-specific parameter handling (override for custom parameters)
 
template<typename AnalysisResultType >
void store_current_analysis (AnalysisResultType &&result) const
 
virtual bool validate_analysis_input (const input_type &) const
 Input validation (override for custom validation logic)
 
- Protected Member Functions inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
output_type apply_hooks (const input_type &input, const ExecutionContext &context)
 
virtual std::future< output_typeapply_operation_async (const input_type &input)
 Optional async implementation - default delegates to operation_function.
 
virtual output_type apply_operation_chained (const input_type &input, const ExecutionContext &ctx)
 Optional chain-aware implementation - default delegates to operation_function.
 
virtual output_type apply_operation_internal (const input_type &input, const ExecutionContext &context)
 Internal execution method - ComputeMatrix can access this.
 
virtual output_type apply_operation_parallel (const input_type &input, const ExecutionContext &ctx)
 Optional parallel-aware implementation - default delegates to operation_function.
 
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.
 

Private Member Functions

double compute_grain_attribute (const Kakshya::Region &grain, const std::shared_ptr< Kakshya::SignalSourceContainer > &container, uint32_t channel, const ExecutionContext &ctx) const
 Resolve and execute attribution for a single grain.
 

Static Private Member Functions

static double extract_scalar (const std::any &analysis_result, AnalysisType type, const std::string &qualifier)
 Extract a named scalar from a typed analysis result.
 
static std::shared_ptr< RegionGroupAnalyzer< Kakshya::RegionGroup > > make_default_analyzer (AnalysisType type)
 Construct a default-configured analyzer for the given AnalysisType.
 

Private Attributes

VariantEnergyAnalyzer m_energy_analyzer
 
VariantStatisticalAnalyzer m_stat_analyzer
 

Additional Inherited Members

- Public Types inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
using base_type = ComputeOperation< InputType, OutputType >
 
using input_type = Datum< InputType >
 
using output_type = Datum< OutputType >
 
- Public Types inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
using input_type = Datum< InputType >
 
using output_type = Datum< OutputType >
 
- Protected Attributes inherited from MayaFlux::Yantra::UniversalAnalyzer< InputType, OutputType >
std::any m_current_analysis
 
output_type m_current_output
 
- Protected Attributes inherited from MayaFlux::Yantra::ComputeOperation< InputType, OutputType >
std::shared_ptr< Kakshya::SignalSourceContainerm_container
 
ExecutionContext m_last_execution_context
 

Detailed Description

Computes a scalar attribute per grain and writes it onto each Region.

Attribution is resolved in the following priority order:

  1. Span lambda : set via set_parameter("attribute_executor", AttributeExecutor) or present in ExecutionContext. For fully custom math.
  2. Direct analyzer : set via set_parameter("analyzer", shared_ptr<UniversalAnalyzer<...>>) paired with set_parameter("analyzer_qualifier", std::string). Any existing concrete analyzer can be supplied pre-configured.
  3. Analysis type : set via set_parameter("analysis_type", AnalysisType) with optional set_parameter("analyzer_qualifier", std::string). AttributeOp constructs a default-configured analyzer internally.

Parameters common to all paths:

  • feature_key std::string attribute name written on each grain (default "feature")
  • channel uint32_t source channel index (default 0)

Qualifier strings map directly to scalar fields of the analysis result struct. The alias "rms" is accepted for FEATURE and resolves to "mean_energy". The alias "mean" is accepted for STATISTICAL and resolves to "mean_stat".

FEATURE qualifiers (EnergyAnalysis):

  • "mean_energy" (default, alias: "rms")
  • "max_energy"
  • "min_energy"
  • "variance"
  • "dynamic_range"
  • "event_count"
  • "window_count"

STATISTICAL qualifiers (StatisticalAnalysis):

  • "mean_stat" (default, alias: "mean")
  • "max_stat"
  • "min_stat"
  • "variance"
  • "std_dev"
  • "skewness"
  • "kurtosis"
  • "median"
  • "window_count"

Definition at line 183 of file GranularWorkflow.hpp.


The documentation for this class was generated from the following files: