Raster Analytics API
Raster Analytics API provides direct, scalable, high-performance access to imagery with dynamic on-the-fly processing. The service presents available images as a virtual GeoTIFF. The images are virtual in that they are created just-in-time upon service request. This allows the Raster Analytics API to support a multitude of ouput representations for a given collect, providing users the exact image data they need.
Raster Analytics API renders imagery on demand from IPE scripts and serves it as a virtual GeoTIFF that is read with tile-aligned HTTP byte-range requests.
What defines an image
Every image endpoint (/{script_id}/metadata, /{script_id}/geotiff,
/{script_id}/rpc) identifies an image by the parameters used.
Send the same parameters, on every request, for that image.
- Script id (path
{script_id}): a stored, immutable IPEScript, for exampleortho. - Function (query
function): the entry point inside that script to evaluate, for examplepansharp_ortho. - Parameters (repeated query
p=key=value): the inputs to that function. Each value is parsed as JSON: string values are quoted, booleans and numbers are not. Quotes must be URL-encoded, for examplep=collect_identifier=%2210400100655F5400%22&p=crs=%22UTM%22&p=bands=%22rgb%22&p=dra=true. The collect identifier selects the source imagery; the remaining parameters shape the output, for examplecrs(output projection),bands(band selection or combination),dra(dynamic range adjustment).
Together these three values fully determine the image the service presents: its extent, pixel size, coordinate system, band count and data type, and therefore its tile grid and GeoTIFF byte layout. Changing any parameter, even one that only alters pixel values, defines a different image with its own tile grid. Never mix byte ranges across different parameter sets.
Inspecting versus downloading
GET /{script_id}/metadata exists to inspect an image: dimensions, tile
size, spatial transform, band descriptions, histogram and statistics. It is
purely informational and is not part of the download path. To download an
image you do not need to call /metadata at all. The required first step
is a single HEAD /{script_id}/geotiff, which returns everything a client
needs to compute the tile grid and per-tile byte ranges.
/metadata and /rpc are rate limited far more restrictively than
/geotiff to keep them from being used as a per-tile, per-worker or
polling call. Call them at most once per image, from one place, and never
from inside a download loop. Exceeding the limit returns 429 with
Retry-After.
How to download a whole image efficiently
- Request one TIFF tile per byte-range request against
GET /{script_id}/geotiff, aligned to the tile grid. Read the TIFF header first (HEAD /{script_id}/geotiff) to get the tile grid and each tile's byte range. Never request arbitrary byte ranges that span or split tiles. - Use ONE shared queue and ONE bounded worker pool per image. Up to 16 concurrent tile requests per image is fine, provided the queue is ordered with spatially bounded mixed ordering: divide the tile grid into parts of about 128x128 tiles, visit parts row-major, randomize tile order within each part, and let workers flow across part boundaries.
- Anti-pattern, do not do this: splitting the image into large granules, strips or chunks and processing those granules in parallel, with each granule running its own concurrent tile fetches. Nested parallelism of this kind multiplies the service's active working set, spreads requests across the whole image at once, defeats server-side prefetch, and makes the service less efficient for everyone. It does not make your download faster.
- On
429or503, honourRetry-Afterand retry with exponential backoff and jitter. Do not re-issue the same request immediately and do not add workers in response.
Authentication
- OAuth 2.0: OAuth2
- API Key: API Key
Bearer token from Oauth2 Password Flow
Security Scheme Type: | oauth2 |
|---|---|
OAuth Flow (password): | Scopes: |
API Key in header
Security Scheme Type: | apiKey |
|---|---|
Header parameter name: | MAXAR-API-KEY |
Contact
Terms of Service
https://www.maxar.com/legal/informationLicense
License