# Overview

Welcome to Hydrosat's documentation site! Whether you're getting started with Hydrosat imagery, building advanced workflows, or just curious about thermal data and its applications, here you'll find tutorials, API references, and guides to help you get the most out of our products.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4>Thermal Basics</h4></td><td>Learn the fundamentals of thermal imagery.</td><td><a href="/pages/1iLcB6kwq0zZkto0INvU">/pages/1iLcB6kwq0zZkto0INvU</a></td><td><a href="/files/kbOmIA2JVAvORW5c1moT">/files/kbOmIA2JVAvORW5c1moT</a></td></tr><tr><td><h4>Use Cases</h4></td><td>Explore real case studies with Hydrosat data.</td><td><a href="/pages/JUwC2i8PKFlS1WVsksjJ">/pages/JUwC2i8PKFlS1WVsksjJ</a></td><td><a href="/files/ZRSPA9v3A32M7kMdfdrG">/files/ZRSPA9v3A32M7kMdfdrG</a></td></tr><tr><td><h4>Data Discovery Portal</h4></td><td>See how you can explore our imagery archive.</td><td><a href="/pages/lubpB4kIzEF9w5ad26kp">/pages/lubpB4kIzEF9w5ad26kp</a></td><td><a href="/files/hgxEb17Xyh2hI2btSKN2">/files/hgxEb17Xyh2hI2btSKN2</a></td></tr><tr><td><h4>Product Details</h4></td><td>Find information on our available imagery products.</td><td><a href="/pages/c7JIx2sMMYrvu3Ooj5Dr">/pages/c7JIx2sMMYrvu3Ooj5Dr</a></td><td><a href="/files/ES0LnugAbUIOh7hE0qTl">/files/ES0LnugAbUIOh7hE0qTl</a></td></tr><tr><td><h4>Changelog</h4></td><td>Catch up on recent data processing improvements.</td><td><a href="/pages/malmhvjj1yBpZHMz1IU8">/pages/malmhvjj1yBpZHMz1IU8</a></td><td><a href="/files/1Bov9B7gy2cFDjSL3Z2t">/files/1Bov9B7gy2cFDjSL3Z2t</a></td></tr><tr><td><h4>API Reference</h4></td><td>Read through our STAC API documentation.</td><td><a href="/pages/ld8BA12CEuYFV5O13RpC">/pages/ld8BA12CEuYFV5O13RpC</a></td><td><a href="/files/3emK6HcgCVE0wgShTDqQ">/files/3emK6HcgCVE0wgShTDqQ</a></td></tr></tbody></table>

{% hint style="warning" icon="user-question" %}
Please reach out to us at <support@hydrosat.com> if you have any questions. We’ll get back to you as soon as we can.
{% endhint %}


# Explore Thermal

Understand thermal imagery and how to apply it.

Thermal imagery is unique. By capturing heat emitted directly by the Earth's surface, it reveals physical processes that drive changes across landscapes. Here, we'll build some intuition about how thermal imaging works and why it's fundamentally distinct from other remote sensing techniques.

<div data-with-frame="true"><figure><img src="/files/GTWYE1aKvtleuNi3qjdB" alt=""><figcaption><p>Thermal imagery reveals patterns that are invisible to the human eye. <br><em>Imagery © 2025 Hydrosat.</em></p></figcaption></figure></div>

## Thermal Imaging 101

Every object with a temperature above absolute zero emits electromagnetic radiation. Hotter objects emit more energy, a relationship described by blackbody radiation curves:

<div data-with-frame="true"><figure><img src="/files/iCjviuPEMF72BR5InVJM" alt=""><figcaption><p>Blackbody radiation provides the physical basis for measuring temperature from space.</p></figcaption></figure></div>

Real-world materials aren't perfect blackbodies, but they follow the same fundamental behavior. As temperature increases, the total emitted energy increases. Thermal sensors exploit this relationship by measuring emitted radiation in specific infrared wavelengths.

This means that thermal imagery and traditional optical imagery observe fundamentally different things. Optical sensors measure sunlight reflected from the Earth's surface, just like how our eyes see the world. But thermal sensors directly measure that emitted radiation, providing a unique lens into how landscapes store and release heat, rather than just how they look. By extension, this also means that thermal sensors can operate both day and night, enabling continuous observation even after sunset.

## From Radiance to Temperature

Thermal sensors don't measure temperature directly. Instead, they measure the amount of infrared radiation that reaches the detector. That measured signal depends not only on the temperature of the Earth's surface, but also on the physical properties of the surface, as well as the atmosphere between the surface and the satellite. Let's break down how we account for those factors to translate measurements into meaningful temperature values.

### The Role of Emissivity

Different materials emit thermal radiation with different efficiencies. This is a concept known as emissivity. A perfect blackbody has an emissivity of 1; it emits the maximum possible radiation for its temperature. Real-world materials have lower emissivities, and those emissivities can vary significantly depending on the material type. This means that two surfaces at the same physical temperature can emit very different amounts of thermal radiation. For example, metals are highly reflective, so they absorb less and emit less radiation than vegetation or bare soil does. Without accounting for emissivity, a thermal sensor can't distinguish whether a difference in measured radiation is actually due to temperature or to variability in surface properties.

### The Role of the Atmosphere

As emitted radiation from the surface makes its way to the satellite, it must pass through the atmosphere. Along the way, gases like water vapor and carbon dioxide absorb and re-emit part of the thermal signal. So by the time the radiation reaches the detector, it has already been modified by the atmosphere. Atmospheric correction algorithms estimate and remove these effects to better recover the true surface signal.

### Deriving Surface Temperature

We've seen that thermal sensors measure emitted infrared radiation, not temperature directly. Since many users require knowledge of Earth's surface temperature (LST), LST retrieval algorithms, like the one implemented by Hydrosat, work backward from radiance. These physics-based models correct for atmospheric effects, account for surface emissivity, and apply the principles of thermal radiation to produce a physically meaningful estimate of LST that can be compared across different locations and over time.

<div data-with-frame="true"><figure><img src="/files/aLlsCSDplx3ukwt9Oq77" alt=""><figcaption><p>Surface temperature changes dynamically from day to day. Users can leverage this signal to understand how landscapes respond to different environmental conditions.</p></figcaption></figure></div>

Unlike many landscape characteristics that change gradually over the course of weeks or months (e.g., vegetation greenness), LST is one of the most dynamic properties of the Earth's surface. Adjacent agricultural fields might differ by several degrees because of differences in vegetation or moisture levels. A single location may experience large temperature swings throughout the day as it absorbs and releases heat. Frequent, high-resolution LST observations capture these dynamics help users identify anomalies, monitor environmental conditions, and better understand the processes driving change across ecosystems.


# Data Discovery Portal

The [Discovery Portal](https://discover.hydrosat.com/) is a web interface for visually browsing and downloading Hydrosat's satellite imagery catalog and complements the [Discovery STAC API](/stac-api-documentation).

Interested in getting access to the Hydrosat Discovery Platform? Fill out the [Request Access form on our website](https://hydrosat.com/data-discovery-platform/).

<div data-with-frame="true"><figure><img src="/files/TYP3B6a8o5091l5SQ9TU" alt=""><figcaption></figcaption></figure></div>


# Getting Access

To access the Discovery Portal or use the API, you will need an account.

{% stepper %}
{% step %}

#### Request an account and get approved for access.

Fill out the [Request Access form on our website](https://hydrosat.com/data-discovery-platform/).
{% endstep %}

{% step %}

#### Receive your invitation email.

Once your account has been created, you will receive an email from <support@hydrosat.com> with your username and temporary password. Check your spam folder if you don't see your invitation email.
{% endstep %}

{% step %}

#### Reset your password.

Follow the instructions in the email to log in with the temporary password and choose a new password. You have 7 days to log in and reset your password. If your temporary password expires, contact [Hydrosat Support](mailto:support@hydrosat.com) to get a new temporary password.
{% endstep %}

{% step %}

#### You're all set!

Once you've reset your password, you will be able to use your new account to log into the [Discovery Portal](https://discover.hydrosat.com/). If you need to generate API credentials for use with our [STAC API](https://stac.hydrosat.com/), follow the instructions for [managing API clients](/discovery-portal/managing-api-clients).

<figure><img src="/files/slMDgVeg5RodUOnBelu7" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


# Locating Downloadable Data

If your Discovery Platform account is configured to allow data downloads, your access is based on areas of interest and/or specific scene IDs. The Discovery Portal includes some helpful tools to help you locate, search, and understand your downloadable data.

For help locating downloadable data via the STAC API, check out this [separate article](/stac-api-documentation/locating-downloadable-data).

### Viewing Downloadable Data

#### Imagery Searches

If you have access to downloadable data, the `Downloadable` toggle is available on the imagery search bar. Combine the `Downloadable` toggle with additional search filters, such as `Acquisition Date` or `Cloud Cover` , to find results for a subset of your downloadable data.

A Downloadable search includes results based on area of interest and specific scene ID, depending on how your account is configured.

<figure><img src="/files/Ph35k5ZLWoYE5e5d4EFp" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If the Downloadable toggle is not interactive, this means you don't yet have access to downloadable data. Contact our [sales](mailto:sales@hydrosat.com) team for access.
{% endhint %}

#### Download Access Areas

For accounts with area of interest-based download access, you can view your Download Access Areas on the map. When using the `Downloadable` search toggle, as discussed above, the search automatically looks for results matching your Download Access Areas.

<figure><img src="/files/iompvVFmPGL8IA0fDIGL" alt=""><figcaption></figcaption></figure>


# Managing API Clients

Creating an API client is required to use Hydrosat's [Discovery STAC API](/stac-api-documentation). This article covers the workflow for managing API Clients in the Discovery Portal.

## Viewing the API Clients Management Interface

The API Clients management interface is available only to users on your account with the `Org Admin` role. If there is already an `Org Admin` on your account, this person can generate API clients for you to use the API.

To view the Client ID interface, click your user avatar in the top right corner of [Discovery Portal](https://discover.hydrosat.com/) and select `Account`.

Users with the requisite permissions will see the API Clients section on the Account page.

<figure><img src="/files/RPNl7jdtieC7l2KMBdX6" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/67ejiRz1tzIPoRLTguaV" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you don't know who your team's Org Admin is, and you need access to the Client ID management interface, contact <support@hydrosat.com> for assistance.
{% endhint %}

## Creating an API Client

Each account is limited to 4 total API clients, so consider this limit when creating new API clients.

1. Click `New API Client` on the right side of the API Clients section.
2. Provide a name for the API client that is easily recognizable to you and other Org Admins. Name is required.
3. (Optional) Provide a description.
4. Click `Create API Client`
5. Immediately upon creation, the client secret for the API client is displayed. **This display is only temporary.** Store the client secret in a safe and secure location in your environment as you will not be able to retrieve it from Discovery Portal in the future.

<figure><img src="/files/rZieovHlivIMT5xTcT05" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you've lost the secret for your API client, Hydrosat is unable to retrieve it for you for security reasons. Instead, create a new API client, at which time a secret for the new API client will be provided to you. Delete any API clients you can no longer use.
{% endhint %}


# STAC API

Hydrosat's Data Discovery STAC API is available at <https://stac.hydrosat.com/>. The STAC API requires [authentication](/stac-api-documentation/authentication) using a bearer token.

## SpatioTemporal Asset Catalog (STAC) API

This page includes high-level information on the basic features of the API and provides examples for a few methods of working with it.

{% hint style="info" %}
For more details, please review the STAC API specifications provided at <https://github.com/radiantearth/stac-api-spec>.
{% endhint %}

Through Hydrosat's STAC API, you can search for data that meets your needs. Data are stored as Cloud-Optimized GeoTIFFs (COGs), which means you can either download the full files or stream only the parts you need using standard web requests.

{% hint style="warning" %}
Once you’re authenticated, you can browse Hydrosat's STAC items and view thumbnail previews. However, only users who have ordered specific data can download the full COGs for their selected areas.
{% endhint %}

Learn more:

* STAC (SpatioTemporal Asset Catalog): [stacspec.org](https://stacspec.org)
* Cloud-Optimized GeoTIFFs (COGs): [cogeo.org](https://cogeo.org)

***

While you can use the STAC API directly, we recommend using one of the following tools to make it easier:

* Python library: [pystac-client documentation](https://pystac-client.readthedocs.io/en/stable/)

## STAC API Endpoints

<table><thead><tr><th width="350">Request</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:green;"><code>GET</code></mark> <code>/collections</code></td><td>Return list of available collections</td></tr><tr><td><mark style="color:green;"><code>GET</code></mark> <code>/collections/{collection_id}</code></td><td>Return metadata for a single collection</td></tr><tr><td><mark style="color:green;"><code>GET</code></mark> <code>/collections/{collection_id}/items</code></td><td>Return list of items in the specified collection</td></tr><tr><td><mark style="color:green;"><code>GET</code></mark> <code>/collections/{collection_id}/items/{item_id}</code></td><td>Retrieve a specific item in a specific collection</td></tr><tr><td><mark style="color:green;"><code>POST</code></mark> <code>/search</code></td><td>Search for items using filters (e.g., date, location)</td></tr></tbody></table>

## STAC Catalog Structure

Hydrosat's STAC catalog is organized into four collections.

<table data-header-hidden><thead><tr><th width="162"></th><th></th></tr></thead><tbody><tr><td><strong>Collection Name</strong></td><td><strong>Description</strong></td></tr><tr><td><code>vz-viri-l1a</code></td><td>Level-1A radiance data from the visible and near-infrared sensor (VIRI)</td></tr><tr><td><code>vz-liri-l1a</code></td><td>Level-1A radiance data from the longwave infrared thermal sensor (LIRI)</td></tr><tr><td><code>vz-l1b</code></td><td>Level-1B data: top-of-atmosphere reflectance (VIRI) and brightness temperature (LIRI) aligned and resampled to same resolution</td></tr><tr><td><code>vz-l2</code></td><td>Level-2 data: surface reflectance and surface temperature</td></tr></tbody></table>

Each collection contains a series of items representing individual scenes. Within each item, you will find metadata and links to associated imagery.

<figure><img src="/files/wwNkxPm8zW9tmokNggxn" alt="" width="563"><figcaption><p>Simplified structure of Hydrosat's STAC catalog.</p></figcaption></figure>

## STAC Query Examples

### pystac-client

We recommend using the `pystac-client` Python library. This library is specifically designed to interact with STAC catalogs and APIs. Complete documentation for this library can be found [here](https://pystac-client.readthedocs.io/en/latest/). More examples with `pystac` are included in our full [Github examples](broken://pages/sU1nSCvOYj1kpI6Q9vG4).

```python
import pystac
from pystac_client import Client

# Connect to the STAC catalog.
# See our page on authentication for how to set up your headers.
catalog = Client.open('https://stac.hydrosat.com/', headers=headers)

# Search for Level-2 data intersecting southern Australia from 19 April 2026
search = catalog.search(
        collections = ['vz-l2'],
        bbox = [140.173825, -37.63983, 149.28178, -34.929824],
        datetime = ["2026-01-19T00:00:00Z", "2026-04-19T00:00:00Z"]
    )

# Print a list of STAC items returned from the search    
items = list(search.items())
print(items)
```

### curl

The STAC server can also be queried directly from your terminal using `curl`. For example, you can use a POST request to perform a query, specifying the search parameters as JSON-formatted raw data. For more information, please see the curl [docs](https://curl.se/docs/manpage.html).

```sh
curl -X POST \
--header 'Content-Type: application/json' \
--data '{
    "collections": ["vz-l2"],
    "bbox": [140.173825, -37.63983, 149.28178, -34.929824],
    "datetime": "2026-04-01T00:00:00Z/2025-05-01T00:00:00Z"
}' \
https://stac.hydrosat.com/
```


# Authentication

Hydrosat's Discovery STAC API requires a bearer token for authentication and authorization.

This article covers the process of using a client ID and secret pair to generate a bearer token and then including that bearer token in requests to the STAC API.

For documentation on how to create an API client ID and secret, view the [Managing API Clients](/discovery-portal/managing-api-clients) article for Discovery Portal. If you don't already have access to Discovery Portal, see [here](/discovery-portal/getting-access).

### Using a Client ID and Secret to get a Token

When creating an API client in the Discovery Portal, you will be issued a `client ID` and `client secret` for that API client.

The client ID and secret are unique credentials that allow the client to generate a temporary bearer token which provides access to use the API with any permissions provided to that client.

The client can request a valid token by submitting its client ID and secret in a form POST payload to the following token url:

```
https://auth.hydrosat.com/oauth2/token
```

The response contains the values shown below, including the amount of time the token will live before expiring, in seconds. Because a token is only temporarily valid, the client must manage getting refreshed tokens regularly in order to have consistent access to the API.

```
{
    "access_token": "<token_value>",
    "expires_in": 3600,
    "token_type": "Bearer"
}
```

#### 'Get Token' Example

The example below assumes that the user has stored their API client ID and secret in a separate file called `creds.json` with the following structure:

```json
{
"client_id":"<clientID>",
"client_secret":"<clientsecret>"
}
```

For security, we suggest setting credential file permissions to 600 (`chmod 600 creds.json`) so that only the owner has read and write access. Consult with your organization's security team to ensure you are complying with preferred methods for storing and accessing API client credentials.

The Python example below covers using the credentials stored in `creds.json` to generate a new token for use with the Hydrosat Discovery STAC API and storing the resulting token in the `access_token` variable.

```python
tokenUrl = "https://auth.hydrosat.com/oauth2/token"

with open('creds.json') as f:
    creds = json.loads(f.read())

client_id = creds["client_id"]
client_secret = creds["client_secret"]

payload = f'grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
}

token_response = requests.request("POST", tokenUrl, headers=headers, data=payload)
token_data = token_response.json()
access_token = token_data["access_token"]

```

### Using the Token to Make a STAC Request

Once the client has a valid token, it can make requests to the [STAC API](/stac-api-documentation) as normal.

In the below example, the token is stored in the `access_token` variable from the previous code example and is used to make a request to the `/collections` endpoint using the `requests` Python library.

```python
STACheaders = {"Authorization":f"Bearer {access_token}"}
collection_response = requests.request("GET", 'https://stac.hydrosat.com/collections', headers=STACheaders)
collection_data = collection_response.json()
print(collection_data)
```

### Unauthenticated Requests

Unauthenticated requests to the STAC API will return an error (`401 Unauthorized Error)`

***

For lengthier examples and next steps, please see our [code examples in Github](/stac-api-documentation/example-code-github-repo).


# Locating Downloadable Data (STAC API)

If your Discovery Platform account is configured to allow data downloads, your download entitlements are based on areas of interest and/or specific scene IDs. If you already know what your entitlement areas of interest ([Download Access Areas](/discovery-portal/locating-downloadable-data#download-access-areas)) or scene IDs are, you can use that information to query data via the STAC API.

For help locating downloadable data in the Discovery Portal, check out this [separate article](/discovery-portal/locating-downloadable-data).

If you don't know what your download entitlements are, you can look them up using Hydrosat's Accounts API.

If you would like to get access to downloadable data, contact our [sales](mailto:sales@hydrosat.com) team.

### Using Accounts API

Accounts API uses the same bearer token [Authentication](/stac-api-documentation) and [API credentials](/stac-api-documentation/authentication#using-a-client-id-and-secret-to-get-a-token) as the STAC API.

Use the following endpoint to GET the active access policy for your account, which includes information about your download entitlements.

```
https://accounts.hydrosat.com/v2/me/access-policies
```

The polygons for area of interest-based download entitlements are listed within `product_entitlements` and scene ID-based entitlements are listed within `scene_entitlements`. The `product_entitlements` and `scene_entitlements` also include information about which STAC collections are you entitled to download from.

```
meResponse = requests.request("GET",'https://accounts.hydrosat.com/v2/me/access-policies', headers=myheaders)
meContent = meResponse.json()
access_policy = meContent.get("access_policies", [])[0]
scene_entitlements = access_policy.get("scene_entitlements", [])
product_entitlements = access_policy.get("product_entitlements", [])
```

### Response Examples

A `product_entitlements` example with a single polygon `areas_of_interest` is shown below.

```
[
   {
      "id":"d1ab374b-7623-416d-9dc9-b62df7866625",
      "access_policy_id":"98ab1aa0-02a2-4a75-b5bf-19e95f5eb08e",
      "product_name":"archive",
      "configuration":{
         "product_name":"archive",
         "collections":[
            "vz-liri-l1a",
            "vz-viri-l1a",
            "vz-l1b",
            "vz-l2"
         ],
         "restrict_search":false,
         "restrict_items":true,
         "restrict_properties":true
      },
      "areas_of_interest":[
         {
            "id":"448e8a88-0c56-4406-b9ba-a64b2c946584",
            "product_entitlement_id":"d1ab374b-7623-416d-9dc9-b62df7866625",
            "name":"Lake",
            "geometry":{
               "type":"Polygon",
               "coordinates":[
                  [
                     [
                        -94.0733085212435,
                        31.98981826138629
                     ],
                     [
                        -93.82521380712805,
                        31.113313105933432
                     ],
                     [
                        -93.41658721917305,
                        31.01958485756203
                     ],
                     [
                        -93.38010270239135,
                        31.275556307422413
                     ],
                     [
                        -93.5260407695181,
                        31.704771952854895
                     ],
                     [
                        -93.82521380712805,
                        31.97125515504588
                     ],
                     [
                        -94.0733085212435,
                        31.98981826138629
                     ]
                  ]
               ]
            },
            "created":"2026-07-10T23:12:25.815575Z",
            "updated":"2026-07-10T23:12:25.815575Z"
         }
      ],
      "created":"2026-07-10T23:12:25.587717Z",
      "updated":"2026-07-10T23:12:25.587717Z"
   }
]
```

A `scene_entitlements` example containing 2 `scene_id`s is shown below.

```
[
   {
      "id":"5d756296-38d0-4c61-a256-1cfc4eeee411",
      "access_policy_id":"ffdf58c5-c527-4c32-98cf-933a2114f0c5",
      "collections":[
         "vz-liri-l1a",
         "vz-viri-l1a",
         "vz-l1b",
         "vz-l2"
      ],
      "scene_id":"VZ01_20260306_050940",
      "created":"2026-07-10T21:54:04.501632Z",
      "updated":"2026-07-10T21:54:04.501632Z"
   },
   {
      "id":"e9377d49-6342-4530-ad87-325cd3a04989",
      "access_policy_id":"ffdf58c5-c527-4c32-98cf-933a2114f0c5",
      "collections":[
         "vz-liri-l1a",
         "vz-viri-l1a",
         "vz-l1b",
         "vz-l2"
      ],
      "scene_id":"VZ02_20260514_073333",
      "created":"2026-07-10T21:54:04.391214Z",
      "updated":"2026-07-10T21:54:04.391214Z"
   }
]
```


# Example Code Github Repo

Visit our example code [Github repo](https://github.com/Hydrosat/vz-tutorials) for helpful tutorials for using our STAC API and imagery.


# API Status

Visit our [status page](https://status.hydrosat.com/) and sign up for notifications to get the latest information on our STAC API availability.

<figure><img src="/files/VGAcJzyFxYOK2wZJYGxp" alt=""><figcaption></figcaption></figure>


# Product Details

Learn more about the different data products Hydrosat provides.

## Level-1 Imagery

The Level-1A data product is the least processed of the available imagery. It includes processing applied onboard the instrument, such as time delay integration and non-uniformity corrections, as well as co-registration of sensor bands and georegistration. The full swath data is provided to users in image space with no resampling. Level-1A pixel values represent top-of-atmosphere (TOA) radiance \[W/m<sup>2</sup>/sr/μm].

The Level-1B product includes converting the radiance values to TOA reflectance (VIRI) or brightness temperature (LIRI), clipping the VIRI data to the extent of the LIRI swath, generation of a cloud mask, and orthorectification.

<table data-header-hidden><thead><tr><th width="221">Item</th><th valign="top">Details</th></tr></thead><tbody><tr><td><strong>L1 Product Granule Size</strong></td><td valign="top"><p>L1A VIRI: 122 km x 70 km</p><p>L1A LIRI: 70 km x 70 km</p><p>L1B: Combined 70 km x 70 km</p></td></tr><tr><td><strong>L1 Pixel Size</strong></td><td valign="top"><p>L1A VIRI: 29.9 m</p><p>L1A LIRI: 68.8 m</p><p>L1B: 30 m</p></td></tr><tr><td><strong>Resampling Method</strong></td><td valign="top">Bilinear (L1B only)</td></tr><tr><td><strong>Bit Depth</strong></td><td valign="top">16-bit</td></tr><tr><td><strong>Map Projection</strong></td><td valign="top"><p>L1A VIRI &#x26; LIRI: EPSG 4326 (RPCs included in metadata)</p><p>L1B: Universal Transverse Mercator (UTM)</p></td></tr><tr><td><strong>No Data Value</strong></td><td valign="top">0</td></tr><tr><td><strong>Scaling Factor</strong></td><td valign="top">L1A VIRI: 0.01<br>L1A LIRI: 0.001<br>L1B VIRI: 0.0001<br>L1B LIRI: 0.01</td></tr><tr><td><strong>Conversion Factors</strong></td><td valign="top">Coefficients for conversion between radiance and TOA reflectance or BT provided in companion metadata file</td></tr></tbody></table>

### Level-1 Assets

Each STAC item includes several assets representing the individual data and metadata files associated with the scene. Items from different collections contain a different set of assets, as defined below.

<details>

<summary>vz-viri-l1a</summary>

<table><thead><tr><th width="214">Asset</th><th width="392">Description</th><th data-type="number">Center Wavelength (nm)</th><th>File Type</th></tr></thead><tbody><tr><td>BLUE</td><td>Blue radiance</td><td>490.5</td><td>COG</td></tr><tr><td>GREEN</td><td>Green radiance</td><td>560.5</td><td>COG</td></tr><tr><td>RED</td><td>Red radiance</td><td>665</td><td>COG</td></tr><tr><td>REDEDGE1</td><td>Red edge 1 radiance</td><td>705.5</td><td>COG</td></tr><tr><td>REDEDGE2</td><td>Red edge 2 radiance</td><td>740.5</td><td>COG</td></tr><tr><td>REDEDGE3</td><td>Red edge 3 radiance</td><td>783</td><td>COG</td></tr><tr><td>NIR</td><td>NIR radiance</td><td>842.5</td><td>COG</td></tr><tr><td>QUALITY_ASSURANCE</td><td>Radiometric saturation mask</td><td>null</td><td>COG</td></tr><tr><td>PREVIEW</td><td>Full-resolution RGB preview image</td><td>null</td><td>COG</td></tr><tr><td>THUMBNAIL</td><td>Low-resolution RGB thumbnail</td><td>null</td><td>PNG</td></tr><tr><td>METADATA</td><td>Ancillary metadata file</td><td>null</td><td>JSON</td></tr></tbody></table>

</details>

<details>

<summary>vz-liri-l1a</summary>

<table><thead><tr><th width="214">Asset</th><th width="392">Description</th><th data-type="number">Center Wavelength (µm)</th><th>File Type</th></tr></thead><tbody><tr><td>LWIR1</td><td>LWIR 1 radiance</td><td>10.895</td><td>COG</td></tr><tr><td>LWIR2</td><td>LWIR 2 radiance</td><td>12.005</td><td>COG</td></tr><tr><td>QUALITY_ASSURANCE</td><td>Radiometric saturation mask</td><td>null</td><td>COG</td></tr><tr><td>PREVIEW_LWIR</td><td>Full-resolution LWIR preview image</td><td>null</td><td>COG</td></tr><tr><td>THUMBNAIL</td><td>Low-resolution thumbnail</td><td>null</td><td>PNG</td></tr><tr><td>METADATA</td><td>Ancillary metadata file</td><td>null</td><td>JSON</td></tr></tbody></table>

</details>

<details>

<summary>vz-l1b</summary>

<table><thead><tr><th width="214">Asset</th><th width="392">Description</th><th>File Type</th></tr></thead><tbody><tr><td>BLUE</td><td>Blue TOA reflectance</td><td>COG</td></tr><tr><td>GREEN</td><td>Green TOA reflectance</td><td>COG</td></tr><tr><td>NIR</td><td>NIR TOA reflectance</td><td>COG</td></tr><tr><td>RED</td><td>Red TOA reflectance</td><td>COG</td></tr><tr><td>REDEDGE1</td><td>Red edge 1 TOA reflectance</td><td>COG</td></tr><tr><td>REDEDGE2</td><td>Red edge 2 TOA reflectance</td><td>COG</td></tr><tr><td>REDEDGE3</td><td>Red edge 3 TOA reflectance</td><td>COG</td></tr><tr><td>LWIR1</td><td>LWIR 1 brightness temperature</td><td>COG</td></tr><tr><td>LWIR2</td><td>LWIR 2 brightness temperature</td><td>COG</td></tr><tr><td>QUALITY_ASSURANCE</td><td>Radiometric saturation mask</td><td>COG</td></tr><tr><td>CLOUD_MASK</td><td>Mask indicating cloud, cloud shadow, and snow or ice</td><td>COG</td></tr><tr><td>PREVIEW</td><td>Full-resolution RGB preview image</td><td>COG</td></tr><tr><td>PREVIEW_LWIR</td><td>Full-resolution LWIR preview image</td><td>COG</td></tr><tr><td>THUMBNAIL</td><td>Low-resolution RGB thumbnail</td><td>PNG</td></tr><tr><td>METADATA</td><td>Ancillary metadata file</td><td>JSON</td></tr></tbody></table>

</details>

### Conversions

#### Level-1A VIRI

L1A VIRI TOA radiance values can be converted to TOA reflectance by applying the per-band `LEVEL1_REFLECTANCE_SCALING` coefficient in the companion L1A metadata (MTA) file.

#### Level-1A LIRI

L1A LIRI TOA radiance values can be converted to brightness temperature using the following equation:

```
BT = K2 / ln(K1 / L + 1)
```

where K<sub>1</sub> and K<sub>2</sub> are per-band `LEVEL1_THERMAL_CONSTANTS` from the L1A MTA file, and L represents scaled radiance.

#### Level-1B VIRI

L1B VIRI reflectance data can be converted back to TOA radiance by applying the per-band `LEVEL1_RADIANCE_SCALING` coefficient in the companion L1B MTA file.

#### Level-1B LIRI

L1B LIRI BT values can be converted back to TOA radiance using the following equation:

```
L = K1 / (e(K2 / BT) - 1)
```

where K<sub>1</sub> and K<sub>2</sub> are per-band `LEVEL1_BT_TO_RADIANCE_CONSTANTS` from the L1B MTA file.

## Level-2 Imagery

The Level-2 product includes radiometric terrain corrections and conversion to surface reflectance (SR) and land surface temperature (LST).

<table data-header-hidden><thead><tr><th width="221">Item</th><th valign="top">Details</th></tr></thead><tbody><tr><td><strong>L2 Product Granule Size</strong></td><td valign="top">70 km x 70 km</td></tr><tr><td><strong>L2 Pixel Size</strong></td><td valign="top">30 m</td></tr><tr><td><strong>Map Projection</strong></td><td valign="top">UTM</td></tr><tr><td><strong>Bit Depth</strong></td><td valign="top">16-bit</td></tr><tr><td><strong>No Data Value</strong></td><td valign="top">0</td></tr><tr><td><strong>Scaling Factor</strong></td><td valign="top"><p>LST, LST uncertainty: 0.01</p><p>SR, emissivity: 0.0001</p></td></tr></tbody></table>

### Level-2 Assets

Level-2 assets include per-band SR and LST COGs (and more).

<details>

<summary>vz-l2</summary>

<table><thead><tr><th width="214">Asset</th><th width="392">Description</th><th>File Type</th></tr></thead><tbody><tr><td>BLUE_SR</td><td>Blue band surface reflectance</td><td>COG</td></tr><tr><td>GREEN_SR</td><td>Green band surface reflectance</td><td>COG</td></tr><tr><td>NIR_SR</td><td>NIR band surface reflectance</td><td>COG</td></tr><tr><td>RED_SR</td><td>Red band surface reflectance</td><td>COG</td></tr><tr><td>REDEDGE1_SR</td><td>Red edge 1 band surface reflectance</td><td>COG</td></tr><tr><td>REDEDGE2_SR</td><td>Red edge 2 band surface reflectance</td><td>COG</td></tr><tr><td>REDEDGE3_SR</td><td>Red edge 3 band surface reflectance</td><td>COG</td></tr><tr><td>LWIR1_EMIS</td><td>LWIR 1 band emissivity</td><td>COG</td></tr><tr><td>LWIR2_EMIS</td><td>LWIR 2 band emissivity</td><td>COG</td></tr><tr><td>LST</td><td>Land surface temperature</td><td>COG</td></tr><tr><td>LST_UNCERTAINTY</td><td>Land surface temperature uncertainty</td><td>COG</td></tr><tr><td>QUALITY_ASSURANCE</td><td>Radiometric saturation mask</td><td>COG</td></tr><tr><td>CLOUD_MASK</td><td>Mask indicating cloud, cloud shadow, and snow or ice</td><td>COG</td></tr><tr><td>PREVIEW</td><td>Full-resolution RGB preview image</td><td>COG</td></tr><tr><td>PREVIEW_LST</td><td>Full-resolution LST preview image</td><td>COG</td></tr><tr><td>THUMBNAIL</td><td>Low-resolution RGB thumbnail</td><td>PNG</td></tr><tr><td>THUMBNAIL_LST</td><td>Low-resolution LST thumbnail</td><td>PNG</td></tr><tr><td>METADATA</td><td>Ancillary metadata file</td><td>JSON</td></tr></tbody></table>

</details>


# Changelog

A list of satellite data product updates, including release dates and key features.

{% updates format="full" %}
{% update date="2026-05-21" tags="processing" %}

## Footprint Geometry Correction

We've deployed a minor fix to ensure representativeness of STAC item footprint geometries with actual imaged area.
{% endupdate %}

{% update date="2026-03-31" tags="processing" %}

## Coregistration Improvements

We've refined our mutual information-based coregistration workflow for improved feature matching between the LWIR and VNIR data.
{% endupdate %}

{% update date="2026-02-24" tags="processing" %}

## Geometric Processing Improvements

We've updated our georeferencing and VNIR band alignment workflows to improve geolocation accuracy and band-to-band registration. This release includes:

1. An enhanced optical distortion correction to reduce residual along-track offsets
2. Use of a digital elevation model (DEM) to improve band-to-band registration over complex terrain
   {% endupdate %}

{% update date="2026-02-05" tags="product-update" %}

## Level-1 Unit Changes

We've modified the units for our Level-1A and Level-1B data products.

#### Before The Change

Previously, L1A and L1B imagery assets contained per-band digital number data. To arrive at radiance, the user needed to apply gain and offset coefficients provided in product metadata.

#### After The Change

**Level-1A Products**

* L1A imagery assets now natively contain per-band top-of-atmosphere (TOA) radiance values. Gain and offset coefficients are applied as part of Hydrosat's data processing.
  * Units: W/m<sup>2</sup>/sr/μm
  * Scaling factor: 0.01 (VNIR), 0.0001 (LWIR)

**Level-1B Products**

* L1B imagery assets contain per-band TOA reflectance data (for VNIR bands) and brightness temperature data (for LWIR bands).
  * Units: Unitless (VNIR); Kelvin (LWIR)
  * Scaling factor: 0.0001 (VNIR); 0.01 (LWIR)

**Conversions**

* Hydrosat provides a full suite of coefficients in product metadata for conversion between TOA radiance and reflectance (or brightness temperature). For more information on usage, see [this page](https://satdocs.hydrosat.com/product-details#conversions) or our product guide.
  {% endupdate %}

{% update date="2026-01-27" tags="thumbnails" %}

## Thumbnail Colorization Improvements (LWIR)

We've improved the contrast and visual consistency in our L1B and L2 thermal thumbnails and previews. This includes:

* Consistent scaling across the full imaging strip rather than within individual scenes.
* A switch from the `inferno` color ramp to a modified `RdYlBu_r` color ramp, where cooler pixels are shown in blue and warmer ones in red. These colors map to predictable temperatures; the breakpoint from blue to yellow occurs at approximately 0 degrees Celsius.

This change has no impacts on the underlying data.
{% endupdate %}

{% update date="2026-01-20" tags="processing" %}

## Noise Mitigation

We've implemented a minor correction for noise in the thermal products.
{% endupdate %}

{% update date="2026-01-14" tags="thumbnails" %}

## Thumbnail Colorization Improvements (RGB)

We've released a color curve approach that improves the visual contrast in our true color thumbnails. This change has no impacts on the underlying data.
{% endupdate %}

{% update date="2025-12-17" tags="cloud-mask" %}

## Updated Cloud Mask

We've released an improved cloud mask, which uses a U-Net convolutional neural network architecture. The new model outperforms our baseline Fmask approach across several key metrics.
{% endupdate %}
{% endupdates %}


# FAQs

Here are our answers to some frequently asked questions from users.

<details>

<summary>I didn't receive my Discovery Platform invitation email. What should I do?</summary>

Please check your spam inbox. If you still don't see the invitation email, reach out to <support@hydrosat.com> for assistance.

</details>

<details>

<summary>Can I browse the catalog even if I haven't ordered any data?</summary>

Yes! Fill out the More Information form on [our website](https://hydrosat.com/data-discovery-platform/) in order to request browse access to our catalog.

You can also check out our Open Data Program, which you won't need an account to access.

</details>

<details>

<summary>What is STAC?</summary>

STAC stands for "SpatioTemporal Asset Catalog". It's a standardized framework for indexing, cataloging, and describing geospatial data. It makes Hydrosat data easier to work with, especially if you're integrating it with data from other sources.

</details>

<details>

<summary>What do the different assets in a STAC item represent?</summary>

Each STAC item includes several assets representing the individual data and metadata files associated with the scene. Items from different collections have different assets, as defined on our [Product Details](/product-details) page.

</details>

<details>

<summary>I can only download thumbnail assets for certain scenes. Where's the rest of the data?</summary>

You have full access to the scenes you've ordered and thumbnail-only access to the rest of the catalog.

</details>

<details>

<summary>What do the different values in the cloud mask mean?</summary>

The cloud mask encodes information about clear or cloudy conditions present within each pixel.

Specifically, the cloud mask contains bit-packed pixel values; each pixel value is a decimal representation of binary strings, in which each bit represents a different condition.

For simplicity, we recommend using the look-up table below. The table displays common pixel values and their meanings.

<table><thead><tr><th data-type="number">Value</th><th data-type="checkbox">Clear</th><th data-type="checkbox">No data</th><th data-type="checkbox">Cloud</th></tr></thead><tbody><tr><td>0</td><td>true</td><td>false</td><td>false</td></tr><tr><td>1</td><td>false</td><td>true</td><td>false</td></tr><tr><td>2</td><td>false</td><td>false</td><td>true</td></tr></tbody></table>

If you see a value of 2 in the cloud mask, for example, this would indicate cloudy conditions.

You can also review our how-to guide on using the cloud mask for additional information.

</details>

<details>

<summary>Where can I check the online status of the STAC API, Accounts API, or Discovery Portal?</summary>

Check out our [status page](https://status.hydrosat.com/) for information about whether our services are online. You can even subscribe to notifications about the online status.

If you are having issues with access, or you notice the services are offline for a prolonged period, don't hesitate to contact our [support team](mailto:support@hydrosat.com).

</details>

<details>

<summary>I want to learn more about Hydrosat's data products. Where can I find more information?</summary>

You can find additional details in our product guide. Please reach out to your organization point of contact if you don't already have this document.

</details>

<details>

<summary>Can I use the STAC API with QGIS?</summary>

Though we recommend using [Discovery Portal](/discovery-portal) for a superior browsing experience, it is possible to connect to our STAC API from QGIS.

Begin by [getting access to a client ID and secret](/stac-api-documentation/authentication). Then right-click the `STAC` option in the QGIS browser add a `New STAC Connection` . Fill out the Authentication form as shown to set up the connection and click `Save`. The `Token URL` is `https://auth.hydrosat.com/oauth2/token`

{% hint style="info" %}
If you do not see the Grant flow: Client Credentials option, update your installation of QGIS. The necessary authentication configuration is only supported on newer versions of QGIS.
{% endhint %}

<figure><img src="/files/oDSFhAFHNUQhLc9qywLB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4lG5en7BNtRpE9qgnUtS" alt=""><figcaption></figcaption></figure>

</details>


# Use Cases

Learn how thermal imagery can be applied to real-world challenges.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Agriculture</strong></td><td><a href="/files/lvOEIcxr9jCV0czoUdil">/files/lvOEIcxr9jCV0czoUdil</a></td></tr><tr><td><strong>Urban Heat</strong></td><td><a href="/files/08ctvrdPi5FcIfDAoxae">/files/08ctvrdPi5FcIfDAoxae</a></td></tr><tr><td><strong>Wildfire</strong></td><td><a href="/files/LKQJ1cmQDM5F14oBXIfF">/files/LKQJ1cmQDM5F14oBXIfF</a></td></tr><tr><td><strong>Energy</strong></td><td><a href="/files/HslUS3KMAl8tR3xaKaVV">/files/HslUS3KMAl8tR3xaKaVV</a></td></tr><tr><td><strong>Oceans</strong></td><td><a href="/files/rAFcswk9Awpez0i3j0os">/files/rAFcswk9Awpez0i3j0os</a></td></tr><tr><td><strong>Defense &#x26; Intelligence</strong></td><td><a href="/files/k4wp8VDPj3XhGSxweepc">/files/k4wp8VDPj3XhGSxweepc</a></td></tr><tr><td><strong>Weather Forecasting</strong></td><td><a href="/files/MNdVLWsTkpeYxl7NWRY0">/files/MNdVLWsTkpeYxl7NWRY0</a></td></tr><tr><td><strong>Forestry</strong></td><td><a href="/files/pCuQ5rxA7VzaCVG0eDHa">/files/pCuQ5rxA7VzaCVG0eDHa</a></td></tr><tr><td><strong>Biodiversity</strong></td><td><a href="/files/IsP9ssnIGmcYskAM8Ran">/files/IsP9ssnIGmcYskAM8Ran</a></td></tr></tbody></table>

{% hint style="warning" icon="spinner" %}

#### This page is under construction. Check back soon for detailed examples and case studies!

{% endhint %}


