Search Results#

Sentinel-1 Search Result#

class models.Sentinel1SearchResult[source]#

Create an instance of the Sentinel-1 Search Result class models.Sentinel1SearchResult

aoi#

A GeoJSON polygon passed from the client.Client.s1_search

data_coverage#

0 to 100 measure of the tile level data coverage for the result

scenes#

S1 scenes found matching the client.Client.s1_search

ok#

Status output of the search, True indicates a valid return of the seach result

reason#

Description of the ‘ok’ status

dataframe#

The search result returned as a dataframe containing various properties (described below)

output_bands#

List of strings specifying the names of output bands from the following list of Sentinel-1 bands.

By default, all bands are selected and fused. If overwriting the default bands, the fused result will keep the order specified in the “output_bands” parameter.

  • VV

  • VH

  • LIA

  • MASK

To learn more about SAR polarization (VV and VH), LIA, and the processing steps we apply, please review our SAR basics page.

The following Sentinel-1 properties are available in the S1 search result, and are identical to those found from the Copernicus Open Access Hub Search:

  • title

  • date

  • relativeorbitnumber

  • lastrelativeorbitnumber

  • producttype

  • sensoroperationalmode

  • acquisitiontype

  • polarisationmode

  • beginposition

  • platformname

  • missiondatatakeid

  • orbitdirection

  • orbitnumber

  • instrumentname

  • lastorbitnumber

  • endposition

  • ingestiondate

  • slicenumber

  • platformidentifier

static concat(search_results)[source]#

Method to combine/concatenate multiple search results into a single models.Sentinel1SearchResult.

Example

>>> from spacesense import Client, Sentinel1SearchResult
>>> client = Client()
>>> res_S1_1 = client.s1_search(aoi, start_date, end_date)
>>> res_S1_2 = client.s1_search(aoi, start_date_2, end_date_2)
>>> res_S1 = Sentinel1SearchResult.concat([res_S1_1, res_S1_2])
filter_duplicate_dates()[source]#

Finds any duplicate dates with the S1 search result and drops (filters) the duplicate item with the less covered orbit. If orbit coverage_percentage is the same in both results, the item that comes second in the dataframe index is dropped.

Sentinel-2 Search Result#

class models.Sentinel2SearchResult[source]#

Create an instance of the Sentinel-2 Search Result class models.Sentinel2SearchResult.

aoi#

A GeoJSON polygon passed from the client.Client.s2_search

item_collection#

S2 scenes found matching the client.Client.s2_search

ok#

Status output of the search, True indicates a valid return of the seach result

reason#

Description of the ‘ok’ status

dataframe#

The search result returned as a dataframe containing various properties (described below)

output_bands#

List of strings specifying the names of output bands from the following list of Sentinel-2 bands.

By default, only B02, B03, B04, B08, and the SCL bands are selected and fused. If overwriting the default bands, the fused result will keep the order specified in the “output_bands” parameter.

  • B01

  • B02

  • B03

  • B04

  • B05

  • B06

  • B07

  • B08

  • B8A

  • B09

  • B11

  • B12

  • SCL

B02, B03, B04 and B08 are also available with their color names:
  • BLUE

  • GREEN

  • RED

  • NIR

Please note, Band 10 is not available for level 2A Sentinel-2 data, as this band is used for atmospheric corrections only.

We also provide several pre-computed vegetation indices (VIs) from Sentinel-2 data. For details about these VIs, please see this page. The following VIs can be selected and fused along with the previously enumerated bands:

  • NDVI

  • LAI

  • NDRE

  • CHI

  • NDWI

  • EVI

The Sentinel-2 data retrieved is L2A, meaning it represents the bottom of the atmosphere (BOA) reflectance values. This link describes Sentinel-2 data levels and products.

To learn about the Sentinel-2 data levels, bands, and scene classifications, to help you select the right data for your use case, please visit our Optial Basics page

The following Sentinel-2 properties are available in the S2 search result:

  • id

  • date

  • tile

  • valid_pixel_percentage

  • platform

  • relative_orbit_number

  • product_id

  • datetime

  • swath_coverage_percentage

  • no_data*

  • cloud_shadows*

  • vegetation*

  • not_vegetated*

  • water*

  • cloud_medium_probability*

  • cloud_high_probability*

  • thin_cirrus*

  • snow*

swath_coverage_percentage is simply the percentage of data covered by the Sentinel-2 swath at the AOI level.

valid_pixel_percentage is defined as a percentage of the combination of pixels, at the AOI level, NOT classified as no_data, cloud_shadows, cloud_medium_probability, cloud_high_probability, and snow. This is a very useful property to use when determining if a Sentinel-2 scene clear of clouds and snow for vegetation and infrastructure monitoring.

“*” denotes that the property is a direct calculation of the percent coverage of the associated SCL bands over the AOI.

static concat(search_results)[source]#

Method to combine/concatenate multiple search results into a single models.Sentinel2SearchResult.

Example

>>> from spacesense import Client, Sentinel2SearchResult
>>> client = Client()
>>> res_S2_1 = client.s1_search(aoi, start_date, end_date)
>>> res_S2_2 = client.s1_search(aoi, start_date_2, end_date_2)
>>> res_S2 = Sentinel2SearchResult.concat([res_S2_1, res_S2_2])
filter_duplicate_dates()[source]#

Finds any duplicate dates with the S2 search result and drops (filters) the duplicate item with the lowest valid_pixel_percentage (if different). If valid_pixel_percentage is the same in both results, the item that comes second in the dataframe index is dropped.

Landsat Search Result#

class models.LandsatSearchResult[source]#

Create an instance of the Landsat Search Result class models.LandsatSearchResult.

aoi#

A GeoJSON polygon passed from the client.Client.landsat_search

item_collection#

Landsat scenes found matching the client.Client.landsat_search

ok#

Status output of the search, True indicates a valid return of the seach result

reason#

Description of the ‘ok’ status

dataframe#

The search result returned as a dataframe containing various properties (described below)

output_bands#

List of strings specifying the names of output bands from the following list of Landsat bands.

By default, only RED GREEN BLUE and NIR08 bands are selected and fused. If overwriting the default bands, the fused result will keep the order specified in the “output_bands” parameter.

  • coastal

  • blue

  • green

  • red

  • nir08

  • swir16

  • swir22

  • qa_aerosol

  • qa_pixel

  • qa_radsat

The Landsat data retrieved is c2l2-sr

The following Sentinel-2 properties are available in the S2 search result:

  • id

  • platform

  • tile

  • date

  • datetime

  • wrs_path

  • wrs_row

  • wrs_type

  • scene_id

  • sun_azimuth

  • sun_elevation

  • instruments

  • off_nadir

  • collection_category

  • collection_number

  • correction

  • card4l:specification

  • card4l:specification_version

  • fill*

  • dilated*

  • cirrus*

  • cloud*

  • shadow*

  • snow*

  • clear*

  • water*

  • swath_coverage_percentage*

  • valid_pixel_percentage*

swath_coverage_percentage is simply the percentage of data covered by the Landsat swath at the AOI level.

valid_pixel_percentage is defined as a percentage of the combination of pixels, at the AOI level, NOT classified as no_data, cloud_shadows, cloud_medium_probability, cloud_high_probability, and snow. This is a very useful property to use when determining if a Landsat scene clear of clouds and snow for vegetation and infrastructure monitoring.

“*” denotes that the property is a direct calculation of the percent coverage of the associated QA_PIXEL bands over the AOI.

static concat(search_results)[source]#

Method to combine/concatenate multiple search results into a single models.LandsatSearchResult.

Example

>>> from spacesense import Client, LandsatSearchResult
>>> client = Client()
>>> res_LS_1 = client.landsat_search(aoi, start_date, end_date)
>>> res_LS_2 = client.landsat_search(aoi, start_date_2, end_date_2)
>>> res_LS = LandsatSearchResult.concat([res_LS_1, res_LS_2])
filter_duplicate_dates()[source]#

Finds any duplicate dates with the Landsat search result and drops (filters) the duplicate item with the lowest valid_pixel_percentage (if different). If valid_pixel_percentage is the same in both results, the item that comes second in the dataframe index is dropped.

ERA5 Weather Search Results#

class models.WeatherSearchResult[source]#

Create an instance of the Weather Search Result class models.WeatherSearchResult

aoi#

A GeoJSON polygon passed from the client.Client.weather_search

ok#

Status output of the search, True indicates a valid return of the seach result

reason#

Description of the ‘ok’ status

dataframe#

The search result returned as a dataframe containing various properties (described below)

By default, all bands are selected and fused. If overwriting the default bands, the fused result will keep the order specified in the “variables” parameter.

  • MAXTEMP

  • MINTEMP

  • AVGTEMP

  • PREC

  • VWIND

  • UWIND

  • LAILOW

  • LAIHIGH

  • DEWTEMP

To learn more the weather variables please visit ERA5 Copernicus Climate Data Store.