Algorithms

The building blocks that convert input data into useful insights

Algorithms

Algorithms are the heart of the Elements Platform. They convert input data into useful insights that help organizations better understand the world. They encompass a single piece of functionality - examples include land use classification, object detection, etc.

Key Characteristics

  • Process geospatial data to answer specific questions
  • Versatile capabilities including object detection (cars, ships, planes), foot traffic analysis, land use classification, and much more
  • Versioned to maintain backwards compatibility and reproducible results
  • Parallelizable by location (AOI) and time for efficient processing

Algorithm Flow

1. Input Data (filtered by AOI + TOI)
         ↓
2. Algorithm Container reads data
         ↓
3. Algorithm processes data
         ↓
4. Results stored and available

Versioning

An Algorithm can have one or more versions as shown in the following diagram:

Algorithm Versions

Once a version is registered it is immutable. This ensures:

  • Consistency: Results generated by an Algorithm for the same input data don't change over time
  • Reproducibility: Users can compare results across different time periods with confidence
  • Flexibility: Multiple versions of the same Algorithm can be active simultaneously
  • Control: Users specify which version their Analysis should use

Elements can maintain multiple versions of the same Algorithm. Computations are tied to specific Algorithm versions.

For example, this is an example of how a Foot Traffic Algorithm could evolve over time:

Algorithm Example

Built In Algorithms

Elements ships with a library of pre-built algorithms.

Object Detection

Detect and count vehicles, ships, planes, or buildings in satellite imagery.

Foot Traffic Analysis

Analyze device location data to understand visitor patterns and foot traffic.

Land Use Classification

Classify areas into categories like residential, commercial, agricultural, or natural.

Change Detection

Identify changes in landscapes, infrastructure, or other features over time.

Execution Environment

Algorithm containers run in a secure, isolated environment:

  • No network access - Containers cannot make external API calls
  • No host access - Cannot access the underlying host system
  • Self-contained - Must include all dependencies, models, and data
  • Resource-constrained - Must specify CPU, memory, and GPU requirements

This ensures:

  • Security and isolation between computations
  • Reproducible results
  • Predictable resource usage
  • Protection of platform integrity

Parallelization

Algorithms can be parallelized in various dimensions to ensure maximum performance. Common parallelization strategies include::

By Location

  • Each AOI in a collection can be processed independently
  • Enables horizontal scaling across multiple containers
  • Ideal for analyzing large geographic areas

By Time

  • Time periods can be processed independently
  • User specifies grouping (hourly, daily, weekly, etc.)
  • Combined with location parallelization for maximum efficiency

Example: An analysis of Manhattan with hourly grouping over a full day could run 24 parallel instances (one per hour) if all data is available simultaneously.

Next Steps

  • Learn how to combine algorithms into Analyses
  • Understand how to define geographic regions with AOIs
  • Define temporal parameters using TOIs
  • Execute algorithms through Computations