Running Analyses
Executing analysis computations
Running Analyses
Analysis Computations execute your complete workflow, running each algorithm in the DAG in the correct order.
Creating an Analysis Computation
from elements_api.async_client import ElementsAsyncClient
client = ElementsAsyncClient(host, port, secure=True, token=api_token)
# Create computation
analysis_computation_request = client.models.analysis_computation_pb2.AnalysisComputationCreateRequest(
analysis_config_id=analysis_config_id,
aoi_collection_id=aoi_collection_id,
toi_id=toi_id,
)
analysis_computation = await client.api.analysis_computation.create(
analysis_computation_request
)
print(f"Analysis computation created: {analysis_computation.id}")Running the Computation
# Start execution
run_request = client.models.analysis_computation_pb2.AnalysisComputationRunRequest(
ids=[analysis_computation.id]
)
await client.api.analysis_computation.run(run_request)
print("Analysis computation started")How Analysis Computations Work
When you run an Analysis Computation:
- First nodes execute as Algorithm Computations
- Platform waits for first nodes to complete
- Dependent nodes start once their inputs are ready
- Results flow from one algorithm to the next
- Final results are available once all nodes complete
Monitoring Progress
# Get status
computation = await client.api.analysis_computation.get(
analysis_computation_id=analysis_computation.id
)
print(f"Status: {computation.status}")
# View history
history = await client.api.analysis_computation.history(
analysis_computation_id=analysis_computation.id
)
for event in history:
print(f"{event.timestamp}: {event.status}")Managing Analysis Computations
Pause
pause_request = client.models.analysis_computation_pb2.AnalysisComputationPauseRequest(
ids=[analysis_computation.id]
)
await client.api.analysis_computation.pause(pause_request)Resume
resume_request = client.models.analysis_computation_pb2.AnalysisComputationResumeRequest(
ids=[analysis_computation.id]
)
await client.api.analysis_computation.resume(resume_request)Delete
delete_request = client.models.analysis_computation_pb2.AnalysisComputationDeleteRequest(
ids=[analysis_computation.id]
)
await client.api.analysis_computation.delete(delete_request)Viewing Results
Results from each node in the analysis are available through the Result API:
# Get results for final node
result_request = client.models.result_pb2.ResultGetRequest(
analysis_computation_id=analysis_computation.id
)
result_response = await client.api.result.get(result_request)Next Steps
- Review Creating Analyses for the complete workflow
- See Algorithm Input Schema for technical details
- Review the Analysis API Reference
Updated 5 months ago