Builders
elements.sdk.builder
To construct some of the more complex API calls, the Elements SDK provides a number of "builders" that make creating request objects simpler. These builders include methods to build request objects step-by-step and enums that map keys to API-compatible values.
Below is an example how a builder can simplify a request for constructing an Analysis Version:
API:
from elements_api import ElementsSyncClient
from elements_api.models.analysis_version_pb2 import AnalysisManifest, AnalysisAlgorithmNode, AnalysisVersionCreateRequest
analysis_manifest = AnalysisManifest(
manifest_version="0.0.5",
metadata=AnalysisManifest.Metadata(version="0.0.3",
description="Analyze before and after locations of pings that visted an AOI",
tags=['traceability', 'device', 'movement', 'ais', 'adsb']),
algorithm_nodes=[
AnalysisAlgorithmNode(
name="device-visits",
algorithm_version_id="5ee03b8e-ab45-4553-b5f4-a5029254a9de",
children=["device-tracks"]
),
AnalysisAlgorithmNode(
name="device-tracks",
algorithm_version_id="6f7cff18-c2a2-4246-b0d4-21be09673a6b",
children=[]
)
]
)
client = ElementsSyncClient()
request = AnalysisVersionCreateRequest(
analysis_id="96b49764-007d-4166-9a5f-600b9bfa9ba6",
analysis_manifest=analysis_manifest
)
await client.api.analysis_version.create(request)SDK:
from elements.sdk.elements_sdk import TerraScopeSDK
from elements.sdk.builder.analysis import AnalysisManifestFactory
analysis_manifest = AnalysisManifestFactory()
analysis_manifest.metadata(manifest_version="0.0.5",
description="Analyze before and after locations of pings that visted an AOI",
version="0.0.3", tags=['traceability', 'device', 'movement', 'ais', 'adsb'])
analysis_manifest.add_node(name="device-visits", algorithm_version_id="5ee03b8e-ab45-4553-b5f4-a5029254a9de")
analysis_manifest.add_node(name="device-tracks", algorithm_version_id="6f7cff18-c2a2-4246-b0d4-21be09673a6b")
analysis_manifest.add_node_edge(node_index=0, child_node_index=1)
sdk = ElementsSDK()
await sdk.analysis_version.create(
analysis_id="96b49764-007d-4166-9a5f-600b9bfa9ba6",
analysis_manifest=movement_device_manifest
)Updated 6 months ago