Step 1. Install dependencies and authenticate
Python
!pip install up42-py --upgrade -q
import up42, geojson, pathlib
from datetime import date
Fill out the configuration file. Check that the authentication was successful as follows:
Python
up42.authenticate(cfg_file="credentials.json")
Step 2. Find scenes from Sentinel-2
Python
geometry = {
"type": "Polygon",
"coordinates": [[
[13.369713, 52.452327], [13.369713, 52.470760],
[13.339159, 52.470760], [13.339159, 52.452327],
[13.369713, 52.452327]
]]
}
collections = up42.ProductGlossary.get_collections(
collection_type=up42.CollectionType.ARCHIVE,
sort_by=up42.CollectionSorting.name
)
collection = next(c for c in collections if c.name == "sentinel-2")
data_product = next(p for p in collection.data_products if "sentinel-2-level-2a" in p.name)
host = next(p for p in collection.providers if p.is_host)
scenes = list(host.search(
collections=[collection.name],
intersects=geometry,
start_date="2023-06-01",
end_date="2024-12-31",
query={"cloudCoverage": {"LT": 10}}
))
scene = scenes[0]
Step 3. Create an order
Estimate the price of a potential order in credits:
Python
order_template = up42.BatchOrderTemplate(
data_product_id=data_product.id,
display_name=f"{data_product.name}-{date.today()}",
features=geojson.FeatureCollection(features=[geojson.Feature(geometry=geometry)]),
params={"id": scene.id},
tags=["sdk", data_product.name]
)
order_template.estimate
Create an order and track its status:
Python
order_references = order_template.place()
order = order_references[0].order
order.track()
Step 4. Stream files
Python
UP42_client = up42.stac_client()
filter = {
"op": "=",
"args": [
{"property": "order_id"},
order.id,
],
}
stac_items_search = UP42_client.search(filter=filter)
item = next(stac_items_search.items())
asset = item.assets.get("b02.tiff")
asset.file