Viewing Results
Accessing and exporting algorithm computation results
Viewing Results
Once an algorithm computation completes, you can access the results through the Result API.
Getting Results
from elements_api.async_client import ElementsAsyncClient
from terrascope_api.models.result_pb2 import Pagination
client = ElementsAsyncClient(host, port, secure=True, token=api_token)
# Get results
result_request = client.models.result_pb2.ResultGetRequest(
algorithm_computation_id=computation_id,
pagination=Pagination(page_size=100),
include_measurements=False
)
result_response = await client.api.result.get(result_request, timeout=30)
# Process results
for result in result_response.results:
print(f"AOI: {result.source_aoi_version}")
for observation in result.observations:
print(f" Time: {observation.observation_start_ts}")
print(f" Values: {observation.observation_values}")Exporting Results
Export results to CSV or Parquet files:
# Export request
export_request = client.models.result_pb2.ResultExportRequest(
algorithm_computation_id=computation_id,
file_type=client.models.result_pb2.ResultExportRequest.FileType.CSV,
export_type=client.models.result_pb2.ResultExportRequest.ExportType.STANDARD
)
export_response = await client.api.result.export(export_request, timeout=300)
download_url = export_response.download_url
print(f"Download: {download_url}")Downloading Exported Results
import wget
import zipfile
import pandas as pd
import glob
# Download archive
zip_file = wget.download(download_url)
# Extract files
with zipfile.ZipFile(zip_file, 'r') as zip_ref:
zip_ref.extractall('./results')
# Load data
csv_files = glob.glob('./results/**/*.csv', recursive=True)
df = pd.concat([pd.read_csv(f) for f in csv_files])
print(f"Loaded {len(df)} result rows")Result Structure
Results contain:
- source_aoi_version - Which AOI generated this result
- data_type - Output Data Type
- observations - List of time-based observations
- observation_start_ts - Timestamp (Unix epoch)
- observation_values - Summary metrics
- measurement_path - Path to detailed result file (if applicable)
Including Detailed Measurements
To get detailed measurement data:
result_request = client.models.result_pb2.ResultGetRequest(
algorithm_computation_id=computation_id,
include_measurements=True # Include detailed data
)
result_response = await client.api.result.get(result_request, timeout=30)Next Steps
- Learn about Creating Analyses to chain multiple algorithms
- Review the Results API Reference for detailed documentation
Updated 5 months ago