PlanetScope

logo

PlanetScope is one of the satellite constellation operated by Planet. It is now possible to purchase, order and access PlanetScope data using Sentinel Hub (SH).

About PlanetScope data

Highlights

  • Almost daily coverage worldwide
  • 3.7-4.1 m pixel size (resampled to 3 m)
  • Blue, Green, Red, Near Infrared (+Red Edge and more in near future)

Mission information

PlanetScope satellite constellation consists of more than 130 small satellites called Doves. Each Dove satellite is a CubeSat made of three cubic units and thus measures only 10 cm x 10 cm x 30 cm. The satellites are launched in groups, which constantly improves mission's characteristics such as revisit times, spatial and spectral resolutions. The constellation is constantly "on" and does not require an acquisition planning.

PlanetScope data is an excellent source for vegetation monitoring. It complements Sentinel-2 data with better spatial resolution and better temporal coverage, which is especially important in cloudy areas as it increases the chance of acquiring a cloudless image.

Basic facts

PropertyInfo
Spatial resolution3 m (resampled)
SensorFour-band frame Imager: Blue, Red, Green and Near-Infrared band
Revisit time1 day
Spatial coverageglobal
Data availabilitySince 2009
MeasurementTop of the atmosphere (TOA) reflectance
Common usage/purposeLand-cover maps, land-change detection maps, vegetation monitoring

More information:

Attribution and use

The PlanetScope products are released under the license available here.

Purchasing the data

Note: If you already have you Planet's api key you can skip this section and continue with Ordering PlanetScope Data.

The process of purchasing of PlanetScope data in Sentinel Hub goes as follows:

  • Check the pricing and conditions. If you would like to buy bigger area send us an e-mail and we will prepare a custom offer.
  • Go to the "Billing" section in your SH Dashboard and buy the Planet Scope plan.
  • You will get an invitation from Planet to sign EULA, after which you will receive your Planet's api key.

Once you have your Planet's api key you can proceed to Ordering PlanetScope Data.

Additional info

  • Vouchers for non-commercial use available, sponsored by ESA, follow this link.
  • Volume discounts possible for large users. Contact us.
  • Existing Planet users can use the data through Sentinel Hub using their own credentials.
  • Minimum area per order is 0.01 km2.

Constraints

Limited use for agriculture until 31.12.2020 in Argentina, Armenia, Australia, Azerbaijan, Belarus, Brazil, Chile, Kazakhstan, Kyrgyzstan, Moldova, North America, Paraguay, Russia, South Africa, Tajikistan, Turkmenistan, Ukraine, Uruguay, Uzbekistan.

Ordering PlanetScope Data

For ordering of PlanetScope data you will need your Planet api key. To order PlanetScope data, please use our Third Party Import Data API.

SH uses the following settings when ordering PlaneScope data:

Provider's parameter / toolThe values used by SH for ordering
item typePSScene4Band
asset typeanalytic
Top of Atmosphere Reflectance (toar) toolis applied
toar scale factor10000
Clip toolis applied

More information:

Note: If you would need any other PlanetScope product, please contact us.

Once your order is successfully finished the ordered data will be available in one of your BYOC collections. The tiles in the collection will correspond to PlanetScope scenes. To access the data you will need the id of this collection.

Accessing PlanetScope Data

Accessing of the PlanetScope data is similar to accessing any other BYOC data. All processing and filtering options listed there can be used. However, the settings specific for accessing of PlantScope data are listed below.

Endpoint Locations

ServiceNotes
https://services.sentinel-hub.com/Contains the data purchased by individual user

Filtering Options

collectionId

Use the id of the BYOC collection into which your PlanetScope data was delivered as a value of parameter input.data.dataFilter.collectionId in the process API requests. See BYOC data access for more information.

Available Bands and Data

This chapter will explain the bands and data which can be set in the evalscript input object:

  • Any string listed in the column Name can be an element of the input.bands array in your evalscript.
NameDescriptionResolutionUnits
B1Blue, 455 - 515 nm3mDN
B2Green, 500 - 590 nm3mDN
B3Red, 590 - 670 nm3mDN
B4Near Infrared, 780 - 860 nm3mDN
dataMaskThe mask of data/no data pixels (more).N/A*0 - no data
1 - data

*dataMask has no source resolution as it is calculated for each output pixel.

Mosaicking

All mosaicking types are supported.

DN values

Sentinel Hub gets Planet data in 16 bit digital numbers in the range 0-10000. Therefore, make sure to divide the values by 10000 if you wish to work with the reflectance range 0-1.

Examples

The following example of Planet data returns true color image. The bands are divided by 10000 to bring the 16-bit DNs to reflectance values and multiplied by 2.5 to increase the brightness.

True color image

//VERSION=3
function setup() {
return {
input: ["B1", "B2", "B3"],
output: { bands: 3}
}
}
function evaluatePixel(sample) {
return [2.5 * sample.B3 / 10000,
2.5 * sample.B2 / 10000,
2.5 * sample.B1 / 10000];
}

NDVI visualization

The following example of Planet data returns a visualized NDVI using red and NIR bands. The bands are divided by 10000 to bring them to reflectance values.

//VERSION=3
function setup() {
return {
input: ["B3", "B4"],
output: { bands: 3}
}
}
function evaluatePixel(sample) {
var NDVI = index(sample.B4 / 10000, sample.B3 / 10000)
return colorBlend(NDVI,
[0.0, 0.5, 1.0],
[
[1,0,0],
[1,1,0],
[0.1,0.31,0],
]);
}

Using UINT8 format

In this example 8-bit UINT8 output format is specified and a false color visualization returned. First we divide the numbers by 10000 to bring them to reflectance values, and then multiply by 255 to bring them to an (unsigned) integer 8-bit range. Additionally, the bands were multiplied by 2.5 to increase the brightness. To learn how to use other sampleType formats, such as UINT16, read the documentation here.

//VERSION=3
function setup() {
return {
input: ["B2", "B3", "B4"],
output: { bands: 3,
sampleType: "UINT8" }
};
}
function evaluatePixel(sample) {
return [2.5 * sample.B4 / 10000 * 255,
2.5 * sample.B3 / 10000 * 255,
2.5 * sample.B2 / 10000 * 255];
}