Simple Image Access (SIA)#
The Simple Image Access v2 (SIAv2) service allows you to search for Rubin images by sky position, time, filter, or calibration level.
The RSP Portal (Firefly) includes an SIA interface to discover images, and the same service is available for direct programmatic access.
Queries return metadata about matching images rather than the images themselves. Each result includes an access_url you can use to download the file or follow a DataLink to related data products.
Note
Access to the SIA service requires an RSP token with the read:image scope.
For internal access from the Notebook aspect this token is provided automatically.
For external access, see Creating user tokens.
SIA endpoint#
The SIA service is organised by data collection.
The base URL for a given collection is https://data.lsst.cloud/api//sia/{collection}, where {collection} identifies the data release, for example, dp1.
Querying with PyVO#
PyVO is the recommended Python client for the SIA service and is pre-installed in the RSP Notebook environment. Inside the RSP Notebook aspect, connect using the pre-authenticated convenience function:
from lsst.rsp.service import get_siav2_service
sia_service = get_siav2_service("dp1")
For external access from outside the RSP, see External access below.
Searching by position#
Positions are ICRS RA and Dec in degrees, and the third value is the search radius:
results = sia_service.search(pos=(53.01, -28.35, 0.05))
table = results.to_table()
You can also combine parameters to narrow results. For example, to filter by calibration level and dataset type:
results = sia_service.search(
pos=(53.01, -28.35, 0.05),
calib_level=3,
dpsubtype="lsst.deep_coadd",
).to_table()
Working with results#
Each row in the results table contains an access_url field.
When access_format is application/fits, this URL is a direct link to a FITS image.
When access_format is application/x-votable+xml;content=datalink, the URL points to a DataLink endpoint listing available data products for that image:
from pyvo.dal.adhoc import DatalinkResults
# Pick a result row
row = results[0]
if "datalink" in row.access_format:
dl = DatalinkResults.from_result_url(row.access_url)
image_url = dl.getrecord(0).get("access_url")
else:
image_url = row.access_url
External access#
The SIA service is accessible from outside the RSP using an RSP token as a password with the username x-oauth-basic:
import requests
from pyvo.dal import SIA2Service
token = "your-rsp-token"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {token}"
sia_service = SIA2Service("SIA_URL", session=session)
Query parameters#
The SIA service accepts the following query parameters. All parameter names are case-insensitive.
Parameter |
Description |
|---|---|
|
Sky position and search region in ICRS degrees. Formats: |
|
Time interval to search, as MJD values. Use |
|
Wavelength range in metres. |
|
Calibration level: |
|
Exposure time range in seconds. |
|
Instrument name. |
|
Data product type, e.g. |
|
Rubin-specific dataset type, e.g. |
|
Maximum number of rows to return. Set to |
|
Dataset identifier. |
SIA sub-endpoints#
Path |
Purpose |
|---|---|
|
Execute an SIAv2 query. Supports both GET and POST. |
|
Check whether the service and underlying data repository are available (VOSI). |
|
Describe service capabilities and supported parameters (VOSI). |
Questions? Get support.