The new Orthorectification processing algorithm, enabled by Intermap data, is now live on the UP42 platform. This adds to UP42’s existing selection of preprocessing algorithms, enabling users to easily orthorectify data ordered through the UP42 platform, either via our Console UI, API, or Python SDK.
What is Orthorecification?
Orthorectification is the process of correcting aerial or satellite images to remove distortions caused by terrain relief, camera angle, and sensor geometry, so that the resulting image has a uniform scale and accurate geographic positioning. The final product is a geometrically corrected image (often called an orthophoto or orthomosaic) that can be used like a map, with precise measurements of distances, angles, and areas.
Practically speaking, satellite images, in some of their most raw formats (such as ‘Primary’ products offered by Airbus or ‘System Ready’ products offered by Vantor) are provided in a format that is not georeferenced and the pixel scale may vary across the image. By orthorectifying the image, much more sophisticated analysis can be carried out, and the image can be more precisely georeferenced to a specific area of the planet.
The process of orthorectification itself relies upon having an accurate and up-to-date Digital Terrain Model (DTM) of the same area covered by the remotely-sensed image. With this in mind, the quality of the final orthorectified output is partially contingent upon the quality of this input data.
For more info, check out our dedicated article on orthorectification.
The new Orthorectification processing algorithm
Previously, UP42 users who purchased raw satellite data would need to orthorectify their own data, and make use of other datasets such as Copernicus DEM or the Airbus WorldDEM4Ortho offered by UP42 as the input elevation data required to carry out this process. With the new orthorectification algorithm, however, this task is greatly simplified.
Rather than the user having to download both a satellite/aerial image, as well as a DEM covering the same area, all they need to do is select a specific image within their data management storage, and run the process. On the backend, this processing algorithm makes use of the Intermap NEXTMap Digital Terrain Model in an automated fashion, removing the need for the separate download and handling of this data. Once run, it will deliver the orthorectified data to your UP42 storage within a matter of minutes. The price to run the processing algorithm is 250 credits (2.50 EUR) per km2.
Running the processing algorithm
The Orthorectification processing algorithm can be run in three different ways, based on the needs of the user: on our Console UI, via API, or via our Python SDK. The input image to the process must be a primary geometric processing level multispectral image from a CNAM-supported collection that was ordered in 2023 or later. This image must also include an RPC file in its metadata, something included in the majority of multispectral collections at primary processing level that we offer.
On the console, this can be achieved by simply selecting an eligible data item in the data management section of the page, and clicking on the ‘Process’ button. From there, a user needs to select the ‘Orthorectification’ option from the menu of processing algorithms, and then finally hit the button labelled ‘Process data item’.
An input image before Orthorectification
An orthorectified output image
Via the API, it can be achieved through the following call to the ‘Run a process’ endpoint. Note that running this code block will deduct credits from your account.
url = "https://api.up42.com/v2/processing/processes/orthorectification-intermap/execution"
payload = {
"inputs": {
"title": "", #Name for process run
"item": "" #STAC Item ID
}
}
headers = {
"accept": "application/json",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
And using the Python SDK, it can be run with the following code. As above if the commented out sections of this code block are run, credits will be deducted from your account.
# Add a job title, required for all processes
title = "Orthorecification Process Example"
#STAC Item ID for input image
stac_item_id = ""
# Get a single item from the STAC client
stac_client = up42.stac_client()
stac_item = next(stac_client.get_items(stac_item_id))
job_template = processing_templates.Orthorectification(
title=title,
item=stac_item
)
# Assert that the job is valid, print errors if not
if not job_template.is_valid:
for error in job_template.errors:
print(f"{error}\n")
# Verify that the template cost is less than or equal to the price you selected
# This example checks the job estimation is below 1000 credits
acceptable_cost = 1000
if job_template.cost <= acceptable_cost:
print(f"Template cost: {job_template.cost.credits} credits")
print(f"Template strategy: {job_template.cost.strategy}")
print(f"STAC item size: {job_template.cost.size}")
print(f"Unit of measurement: {job_template.cost.unit}")
else:
print(f"Template cost is higher than {acceptable_cost} credits")
# job = job_template.execute()
# print(f"Job details for ID: {job.id}")
# print(f"Process ID: {job.process_id}")
# print(f"Status: {job.status.value}")
# print(f"Price: {job.credits or 'N/A'} credits")
# print(f"Created at: {job.created}")
Got a UP42 order you want to orthorectify? Why not try our new orthorectification processing algorithm today!




