Analysis Configurations

Configuring analysis workflows with algorithm configs

Analysis Configurations

An Analysis Configuration links each node in your analysis DAG to a specific Algorithm Configuration, allowing you to set parameters for each algorithm in the workflow.

Structure

An Analysis Config consists of:

  • Analysis Version - The DAG structure
  • Algorithm Config Nodes - An Algorithm Config for each node in the DAG

Creating an Analysis Configuration

from elements_api.async_client import ElementsAsyncClient

client = ElementsAsyncClient(host, port, secure=True, token=api_token)

# Define config for each node
config_nodes = []

config_node = client.models.analysis_pb2.AnalysisAlgorithmConfigNode(
    name="device-visits",  # Must match node name in Analysis Version
    algorithm_config_id="algo-config-id-here"
)
config_nodes.append(config_node)

# Create analysis config
analysis_config_request = client.models.analysis_config_pb2.AnalysisConfigCreateRequest(
    name="my-analysis-config",
    analysis_version_id=analysis_version_id,
    algorithm_config_nodes=config_nodes,
)

analysis_config = await client.api.analysis_config.create(analysis_config_request)

Multi-Node Configuration

For an analysis with multiple algorithms:

config_nodes = [
    client.models.analysis_pb2.AnalysisAlgorithmConfigNode(
        name="data-collection",
        algorithm_config_id=config_id_1
    ),
    client.models.analysis_pb2.AnalysisAlgorithmConfigNode(
        name="object-detection",
        algorithm_config_id=config_id_2
    ),
    client.models.analysis_pb2.AnalysisAlgorithmConfigNode(
        name="tracking",
        algorithm_config_id=config_id_3
    )
]

Each node name must match a node in the Analysis Version's DAG.

Managing Analysis Configurations

Get Configuration

config = await client.api.analysis_config.get(
    analysis_config_id=config_id
)

List Configurations

configs = await client.api.analysis_config.list(
    analysis_version_id=version_id
)

Delete Configuration

await client.api.analysis_config.delete(
    analysis_config_id=config_id
)

Sharing Configurations

Once created, Analysis Configurations can be shared with other users, allowing them to run your analysis workflow in the Elements UI.

Next Steps