Streaming Imagery - WFS
Overview
Use the Web Feature Service (WFS) to find Maxar online imagery features available to stream. This service provides the geometry and metadata associated with features that are part of one of the following imagery layers:
- Global Production Standing Order (The Daily Take)
- FirstLook™ Imagery (Crisis Events)
For Maxar online imagery, use the Feature type "FinishedFeature."
Authentication
All OGC services accept an API key or a bearer token for authentication.
Bearer tokens
Maxar Oauth bearer tokens can also be used to authenticate API requests. Bearer tokens have a brief duration and must be refreshed frequently.
To authenticate with a bearer token, use the Authorization
header:
Authorization: Bearer <Oauth2 token>
Learn about OAuth2 bearer tokens
API keys
API keys can be passed using query parameters or in a custom header. No Authorization
header is needed when using API keys.
To use the query parameter method, include this query parameter in your request:
maxar_api_key=<your API key>
The custom Maxar header takes the form of:
maxar-api-key: <your API key>
API keys expire 180 days from creation by default. A custom expiration date can be set but cannot exceed 180 days.
Learn about API keys
Services
Name | Description | Request URL |
---|---|---|
Get Capabilities | Describes the capabilities available for WFS. | https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=GetCapabilities |
Describe Feature Type | Returns the properties available for each supported feature type. | https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=DescribeFeatureType |
GetFeature | Returns image features and their attributes. | https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=GetFeature |
WFS Get Capabilities
Returns a list of services and operations supported by the WFS.
Request URL
https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=GetCapabilities&version=2.0.0
Query parameters
Name | Required/Optional | Description | Value |
---|---|---|---|
service | required | The requested OGC service | WFS |
request | required | The name of the WFS request type | GetCapabilities |
version | required | WFS version, defaults to 2.0.0 | Accepts 1.0.0 , 1.1.0 , 2.0.0 |
Response
Response output format: XML
Successful status code: 200 OK
Exceptions may also return a 200 OK, with an error in the response body.
WFS Describe Feature Type
Returns a description of feature types supported by the WFS service. To get the description of online imagery features, use the typeName "Maxar:FinishedFeature".
This example shows the "Maxar:FinishedFeature" description from the "DescribeFeatureType" response. Each line is an attribute of the feature type.
Feature Type: FinishedFeature
<xsd:complexType name="FinishedFeatureType">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="featureId" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="cloudCover" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="sunAzimuth" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="sunElevation" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="offNadirAngle" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="groundSampleDistance" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="groundSampleDistanceUnit" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="source" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="bandDescription" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="featureGeometry" nillable="true" type="gml:GeometryPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="isEnvelopeGeometry" nillable="true" type="xsd:boolean"/>
<xsd:element maxOccurs="1" minOccurs="0" name="featureCentroid" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="dataLayer" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="legacyDescription" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="bandConfiguration" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="fullResolutionInitiatedOrder" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="legacyIdentifier" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="crs" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="acquisitionDate" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resolutionX" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="resolutionY" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="createdDate" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="processingLevel" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="earliestAcquisitionTime" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="latestAcquisitionTime" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="companyName" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="orbitDirection" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="beamMode" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="polarisationMode" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="polarisationChannel" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="antennaLookDirection" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="minimumIncidenceAngle" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="maximumIncidenceAngle" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="incidenceAngleVariation" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="md5Hash" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="licenseType" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="isMultiPart" nillable="true" type="xsd:boolean"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ceCategory" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="niirs" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="lastModifiedDate" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="hasCloudlessGeometry" nillable="true" type="xsd:boolean"/>
<xsd:element maxOccurs="1" minOccurs="0" name="deletedDate" nillable="true" type="xsd:dateTime"/>
<xsd:element maxOccurs="1" minOccurs="0" name="deletedReason" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="productName" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="usageProductId" nillable="true" type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ce90Accuracy" nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="bucketName" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="path" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="sensorType" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="classification" nillable="true" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="isPrivate" nillable="true" type="xsd:boolean"/>
Request URL
List all typeNames:
https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=DescribeFeatureType
Describe a specific typeName:
https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=DescribeFeatureType&typenames=Maxar:FinishedFeature
Query parameters
Name | Required/Optional | Description | Value |
---|---|---|---|
service | required | The requested OGC service. | WFS |
request | required | The name of the WFS request type | DescribeFeatureType |
typeNames | optional | The typeName to describe. If not provided, a list of available typeNames will be returned | Maxar:FinishedFeature |
version | optional | WFS version, default is 2.0.0 | 2.0.0 |
Response
Response output format: XML
Successful status code: 200 OK
Exceptions may also return a 200 OK, with an error in the response body.
WFS Get Feature
Search for imagery features in the Maxar online catalog by making a Get Feature request with the following query parameters. Use CQL filters to further refine results by feature attributes.
The feature type Maxar:FinishedFeature includes all imagery layers, including the Daily Take imagery layer and the Vivid basemap layers. To restrict WFS results to the Daily Take, use the cql filter clause productName='DAILY_TAKE'
Request URL
URL path with minimum required parameters:
https://api.maxar.com/streaming/v1/ogc/wfs?service=WFS&request=GetFeature&typeNames=Maxar:FinishedFeature
Query parameters
Name | Required/Optional | Description | Value |
---|---|---|---|
service | required | The requested OGC service. | WFS |
request | required | The service request type. | GetFeature |
version | required | WFS version, defaults to 2.0.0 | Accepts 1.0.0 , 1.1.0 , 2.0.0 |
bbox | optional | The geographic extents of the features to return. The bbox and cql_filter parameters cannot be used together in a request. | Example: 39.7530,-104.9962,39.7580,-104.9912 |
srsName | optional | This parameter is used to specify the spatial reference system to encode output feature geometries in. | An EPSG code, like EPSG:32610 |
typeNames | required | To obtain the detailed metadata for one or more Features contained in a tile, use the WFS getFeature request, with a typeName of FinishedFeature. | Maxar:FinishedFeature |
outputFormat | optional | Response output format. Default is text/xml; subtype=gml/3.1.1. | See Supported Output Formats. |
count | optional | The number of features to return in the response. The default is to show all features that match the request, with a maximum of 1000. | 1 - 1000. |
sortBy | optional | Specify the attribute to sort by and whether to sort in ascending (A) or descending (D) order. | Example: sortBy=acquisitionDate A |
cql_filter | optional | Filter by additional metadata attributes. Cannot be used with the BBox parameter; however, bbox can be queried as a cql filter. | See Using CQL filters. |
The bbox and cql filter parameters cannot be used together in the same request.
Axis Order
The source data are in EPSG:4326 which uses (y,x) axis order. In WFS 1.1.0 and 2.0.0 axis order is enforced so this means the bbox
parameter needs to also follow, i.e. latitude before longitude. For more information, see the Geoserver axis order documentation.
To send a bbox in a different coordinate system, append a coordinate reference system to the bounding box. This syntax looks like bbox=-11683553, 4832655,-11683247, 4832960, EPSG:3857
.
Example WFS Get Feature request URL
https://api.maxar.com/streaming/v1/ogc/wfs?service=wfs&request=GetFeature&version=2.0.0&typeNames=Maxar:FinishedFeature&cql_filter=BBox(featureGeometry, 39.7530,-104.9962,39.7580,-104.9912) AND (cloudCover>.20) AND (source like 'LG%') AND (productName = 'DAILY_TAKE')&count=10&sortBy=acquisitionDate A
Supported output formats
The response to a WFS Get Feature query can be returned in a variety of formats. The default format is text/xml; subtype=gml/3.1.1
.
text/xml; subtype=gml/3.1.1
GML2
KML
SHAPE-ZIP
application/vnd.google-earth.kml xml
application/vnd.google-earth.kml+xml
csv
gml3
gml32
json
text/csv
text/xml; subtype=gml/2.1.2
text/xml; subtype=gml/3.2
The list of supported output formats for a WFS Get Feature request can also be found in the WFS Get Capabilities response.
Using CQL Filters
OGC Streaming services support searching for features using Common Query Language (CQL) filters.
The query format is:
cql_filter=keyname='value'
CQL operators
Operator | Definition | Example |
---|---|---|
= | Equals | source='WV02' |
> | Greater Than | sunElevation>15 |
< | Less Than | cloudCover<.20 |
>= | Greater than or equal to | sunElevation>=15 |
<= | Less than or equal to | cloudCover<=.20 |
<> | Not equal to | dataLayer<>'daily_take' |
% | Wildcard | source LIKE 'LG%' |
CQL search keywords
Use CQL keywords to create a complex query that joins two clauses together. MGP Streaming services support the following keywords:
Keyword | Description | Example |
---|---|---|
AND | The search results will match all clauses in the query. | (acquisitionDate>='2019-01-01')AND(cloudCover<.20) |
OR | The search results will match at least one of the clauses in the query. | (source='WV02') OR (source='WV03_VNIR') |
BETWEEN | The search results will fall between the dates provide. | groundSampleDistance BETWEEN .30 AND .50 |
NOT | The search results will not contain the value listed in the clause or clauses. | NOT (source='WV02') |
LIKE | Use with a % wildcard character in the value to filter for results that match part of a value. | source LIKE 'LG%' |
Query by date range
To filter for items within a date range, use one of the following query formats:
cql_filter=(acquisitionDate>='2020-01-01')AND(acquisitionDate<='2020-03-31')
cql_filter=acquisitionDate between '2019-12-15' AND '2020-01-01'
Query for imagery that does not match the value
Use the NOT
keyword to filter for items that do not match a specified value.
NOT (source='WV02')
NOT (source='WV02') AND NOT(source='WV03_VNIR')
Query for WorldView Legion data
To query for Legion data, use the "source" field.
cql_filter=source='LGO1'
To query for all Legion data, use the LIKE
operator with a wildcard character.
cql_filter=source LIKE 'LG%'
This will return all WorldView Legion imagery that matches the filter criteria.
Imagery metadata
This table describes the metadata associated with feature type Maxar:FinishedFeature. A Feature can be produced from a single image or multiple images. To programmatically get a list of feature metadata, make a WFS "Describe Feature Type" request. Use CQL filters to query by specific attributes.
Field | Description | Allowed Values |
---|---|---|
acquisitionDate | The date and time the satellite acquired the image in Zulu time. | YYYY-MM-DDTHH:MM:SSSZ |
bandConfiguration | Null for panchromatic data; otherwise the order in which the spectral bands occur in the product described by the Feature. | RGB , RGBA , RGBU , GUUU , 631_245_788 |
bandDescription | Describes the band combination for the feature. In the MGP Pro UI this is referred to as ProductType . | MS1 , Pan Sharpened Natural Color , Pan Sharpened Color Infrared , Panchromatic , SWIR 8-Band |
ce90Accuracy | CE90 standard for geolocation accuracy. CE90 is the circular error at the 90th percentile. This means that a minimum of 90 percent of the points measured has a horizontal error less than the stated CE90 value. | Example: 8.4 |
cloudCover | The percentage of the image that is covered by clouds. | 0-90 |
createdDate | The date and time the feature was created, in Zulu time. | YYYY-MM-DDTHH:MM:SSSZ |
crs | The EPSG code for the coordinate reference system. | Examples: EPSG:4326 , EPSG:32638 |
dataLayer | The data layer the feature is part of. | daily_take , sw_sites_eo , crisis_event |
earliestAcquisitionTime | The earliest date and time of acquisition for an image associated with the feature, in Zulu time. | YYYY-MM-DDTHH:MM:SSSZ |
featureCentroid | The center of the feature geometry. | bounding box |
featureGeometry | The geometry for the feature in GeoJSON feature format. | Polygon |
featureId | The unique identifier assigned to the feature. | alphanumeric string |
groundSampleDistance | The spatial resolution of the sensor that acquired the image, stated in meters. | number |
groundSampleDistanceUnit | The unit used to measure ground sample distance. | Meter |
isEnvelopeGeometry | An envelope is a bounding box enclosing other geometry or set of geometries. | true/false |
latestAcquisitionTime | The latest date and time of acquisition for an image associated with the feature, in Zulu time. | YYYY-MM-DDTHH:MM:SSSZ |
legacyDescription | Legacy description retained for backwards compatibility. | string |
legacyIdentifier | The unique identifier for the image in the archive catalog. | alphanumeric string |
niirs | National Imagery Interpretability Rating Scale value | 0 (worst quality) to 9 (best quality). |
offNadirAngle | The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees | 0-90 |
processingLevel | The processing level for the image. | For image features: standard , Ortho - 1:12,000 |
productName | The product name assigned to the feature. | DAILY_TAKE , SW_SITES_EO , CRISIS_EVENT |
resolutionX | The pixel size in the X direction. | Example: 4.5E-6 |
resolutionY | The pixel size in the Y direction. | Example: -4.5E-6 |
source | The satellite that acquired the image. If the feature is comprised of more than one image, the source value will be "multiple". | WV01 WV02 WV03 WV03_VNIR WV03_SWIR GE01 QB02 LG01 LG02 LGO3 LG04 |
sunAzimuth | From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees. | 0-360 |
sunElevation | The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees. | 0-90 |
usageProductID | The usage ID assigned to the product. | number |
Some feature metadata fields will only have a null value. These fields are not included in the table.
The srsName
parameter only supports the value of EPSG:4326
. To request a bounding box in a different projection, add the SRS code to the end of the bounding box (in the CQL filter), like this:
BBOX(featureGeometry,-11683553, 4832655,-11683247, 4832960, 'EPSG:3857')