Step 1. Install dependencies and authenticate
!pip install up42-py --upgrade -q
import up42, geojson, pathlibfrom datetime import date
Fill out the configuration file. Check that the authentication was successful as follows:
up42.authenticate(cfg_file="credentials.json")
Step 2. Find scenes from Sentinel-2
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:
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:
order_references = order_template.place()order = order_references[0].orderorder.track()
Step 4. Stream files
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