Raw (L0)

Product description
The L0 Product is the rawest product from Satellogic’s products family. It is composed of the raw frames coming directly from the sensor of the payloads without any modification or processing, along with the necessary metadata. The frames are simply packaged in a standardized format to create the L0 product. The units of each raster are in DNs directly from the sensor.
Given the nature of our payload design and operations, the L0 product is a set of overlapping frames, each with 4 areas corresponding to each of the RGB+NIR bands of the sensor.
There can also be a 2x (almost identical) overlap for MarkV satellites due to the HDR capture strategy.
Each of the frames is 16-bit or 8-bit single band Grayscale GeoTIFF. The GeoTiff location is coarsely defined by the onboard satellite telemetry to help with the fine location process. Each of the frames contains 4 regions, corresponding to RGB+NIR as depicted in the following image:
| Mark IV | Mark V |
|---|---|
![]() |
![]() |
The size of each frame varies by platform being 5120x5120 for Mark IV and 9344x7000 for Mark V.
The position of each band varies slightly between satellites and the exact position is defined in the metadata file for each frame.
Technical characteristics
| Parameter | Mark IV |
Mark V |
|---|---|---|
| Spectral bands | Blue : 450 - 510 nm |
Blue : 450 - 517 nm |
| Frame size | 5120 x 5120 pix |
7000 x 9344 pix |
| GSDa | 1.0 m |
0.7 m |
| Swatha | 5.1 km |
6.5 km |
| Image bit depth | 8 bit DNs |
16 bit DNs |
| Algorithms applied | None |
|
| Geolocation Accuracy | 350m CE90 |
|
| Image format | GeoTiff, LZW lossless compression |
|
| Ancillary files | Metadata (JSON), preview (PNG), and thumbnail (PNG) |
|
\(^a\) Varies with the altitude of the satellites and the off-nadir angle.
Packaging specification
An L0 capture is delivered as a package scene (via S3, FTP, or Zip download link) and packaged as a single folder with a flat structure containing all frames together with their corresponding ancillary files.
File names follow the following format:
{DATE}_{TIME}_{SECOND_DECIMALS}_SN{SATELLITE}_{PRODUCT}_{PAYLOAD}_{SUFFIX}.{EXTENSION}, where
DATE: Year(4 digits)month(2 digits)day(2 digits)TIME: Hour(2 digits)minute(2 digits)second(2 digits)SECOND_DECIMALS: All the decimal part from the timestamp secondsSATELLITE: Satellite numberPRODUCT: L0PAYLOAD: MS for multispectral (4 bands)SUFFIX: depends on the assetEXTENSION: depends on the asset type
For instance, you can get the following file 20240902_125109_614_SN30_L0_MS_analytic.tiff. All time values refer to the capture time in UTC. Hence the string 20220619_153346_938represent actually 2022-06-19 15:33:46.938.
The list of files for each frame is:
Images
For each frame, we provide the full resolution analytic raster as a single band GeoTiff as well as downsampled .png versions named preview and thumbnail (20x and 80x downsampling, respectively).
![]()
Capture metadata
A first metadata files is provided for each frame: a capture-specific JSON containing metadata about the satellite, the payload and the capture at the moment of taking that specific frame. The SUFFIX is metadata and format is json.
The following parameters are expected in a JSON metadata file of an L0 product:
| Field Name | Description | Example |
|---|---|---|
| supplier | The name of the supplier of the imagery. | Satellogic |
| productname | The product name | L0 |
| scene_id | The ID of the individual frame this metadata file corresponds to. | 20240902_125109_614_SN30_L0_MS |
| sceneset_id | The UUID of the entire capture this individual frame is part of. | f1c8eeb1-f5fc-4a17-b107-2e5174c25b68 |
| satellite_class | The satellite class this individual frame is from. | NewSat |
| satellite_name | The name of the satellite that took this frame. Format: newsat<N>, with N>0 | newsat30 |
| timestamp | The timestamp of the corresponding individual frame, in ISO8601 | 2024-09-02T12:51:09.614415+00:00 |
| footprint | The estimated footprint of the individual frame. Each coordinate is a longitude/latitude pair. Together they define a closed loop. |
{
"type": "Polygon",
"coordinates": [
[
[20.54603184801816, 50.891245456320085],
[20.619985731541103, 50.885050659712675],
[20.602281516301147, 50.83972901918288],
[20.528327632778204, 50.84592984054603],
[20.54603184801816, 50.891245456320085]
]
]
}
|
| metadata → telemetry → estimated_error | The estimated errors of the measurements provided in this document in deg, deg, deg, m, m |
{
"payload_attitude_roll_error": 0.003702757106596987,
"payload_attitude_pitch_error": 0.004066871556403458,
"payload_attitude_yaw_error": 0.00370383974827634,
"satellite_position_error_xyz": 47,
"satellite_altitude_error": 47.2
}
|
| metadata → telemetry → payload_attitude | LVLH (“Local Vertical Local Horizontal” reference frame) to Payload. The rotation between the Payload Reference Frame and Orbit Reference. |
{
"roll": -17.462713685533394,
"pitch": -18.067429384447212,
"yaw": 86.52986737766115,
"qi": -0.21553685507321207,
"qj": -0.010262212318849226,
"qk": 0.6863838826293411,
"qr": 0.6944895368327322
}
|
| metadata → telemetry → payload_attitude_ecef | The estimated payload attitude with respect to ECEF. Roll/pitch/yaw are angles in degrees; qi/qj/qk/qr are the attitude quaternion. |
{
"roll": -156.61375353315677,
"pitch": 23.59771692117737,
"yaw": 67.4330283878286,
"qi": 0.7743188266460452,
"qj": -0.5665504480556272,
"qk": 0.056430855917892694,
"qr": -0.2761639060591265
}
|
| metadata → telemetry → satellite_attitude_calculated_ecef2body | The estimated satellite attitude with respect to ECEF. Calculated using internal tools. |
{
"qr": 0.27514077557430466,
"qi": 0.7782452895749822,
"qj": -0.5617941488731234,
"qk": 0.054946857623027784
}
|
| metadata → telemetry → body2sensor_quaternion | The satellite body to sensor quaternion (for MSI / HSI). Default identity value if calibration isn’t performed. |
{
"qr": 0.999984273632398,
"qi": -0.0012972240863929375,
"qj": 0.0009388672449488652,
"qk": 0.005374776818772846
}
|
| metadata → telemetry → satellite_altitude | The satellite altitude at the moment of the capture, in meters. | 404433.6369 |
| metadata → telemetry → satellite_nadir | The estimated Nadir point in WGS84 at the moment of the capture. |
{
"latitude": 51.726390395199196,
"longitude": 22.905864473166723
}
|
| metadata → telemetry → satellite_posvel | The position and velocity of the satellite with respect to ECEF. |
{
"pos_x": 3877487.1114285714,
"pos_y": 1638382.3979910715,
"pos_z": 5301508.870535714,
"vel_x": 6158.478503069196,
"vel_y": 540.6382928030831,
"vel_z": -4662.158263462611
}
|
| metadata → telemetry → location_calculated | The longitude/latitude/altitude of the boresight of the satellite. |
{
"latitude": 50.86553282927114,
"longitude": 20.57425280453569,
"altitude": -0.1888151979073882
}
|
| metadata → telemetry → attitude | Satellite attitude information, currently contains only the ecef2body data. |
{
"ecef2body": [
0.27514077557430466,
0.7782452895749822,
-0.5617941488731234,
0.054946857623027784
]
}
|
| metadata → telemetry → position | Satellite position information, currently contains only the gps_ecef_meter data (position with respect to ECEF). |
{
"gps_ecef_meter": [
3877487.1114285714,
1638382.3979910715,
5301508.870535714
]
}
|
| metadata → sun_elevation | The estimated sun elevation measured at the target at the moment of the capture. Value in degrees. | 39 |
| metadata → frame_index | Internal assigned index to the individual frame in the capture. | 195 |
| metadata → exposure_sec | Exposure time in seconds. | 0.0018245 |
| metadata → binning | Low level configuration for sensor binning. | [1, 1] |
| metadata → subsampling | Sensor level configuration for subsampling. |
[1, 1] |
| metadata → advance_vector | The advance vector of the satellite. Either 1 (when the satellite advances with its body +Y face) or -1 (when the satellite advances with its body -Y face). |
1 |
| metadata → off_nadir | The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90). In case this angle cannot be computed, a value of -1 will be reported. |
24.9490357122 |
| metadata → viewing_azimuth | Viewing azimuth angle. The angle measured from the sub-satellite point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360). |
166.1138701133 |
| metadata → sun_azimuth | Sun azimuth angle. From the scene center point on the ground, this is the angle between true north and the sun. Measured clockwise in degrees (0-360). | 72.333 |
| metadata → incidence_angle | The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90). In case this angle cannot be computed, a value of -1 will be reported. | 26.55467459 |
| metadata → payload | Options are MS for multispectral and HS for hyperspectral. |
MS |
| metadata → gsd | Ground Sampling Distance (in meters). Greatest value from metadata -> gsd_x and metadata -> gsd_y reported. | 1.024893091 |
| metadata → gsd_x | Ground Sampling Distance in x direction (in meters). Average value at the center of the frame. | 1.024893091 |
| metadata → gsd_y | Ground Sampling Distance in y direction (in meters). Average value at the center of the frame. | 1.015058561 |
| metadata → product_version_L0 | Product Version aligned with ICD version. | 1.0.0 |
| metadata → software_version_L0 | Internal software version used to process the product. | 0.6.22 |
| metadata → sensor_position | Sensor position for the frame, in millimeters. |
{
"pos_x": 0.0,
"pos_y": 0.0,
"pos_z": 0.0
}
|
| metadata → nss_version | Internal satellite specs database version. | 0.71.0 |
| metadata → last_modified | Timestamp when the product was last processed. | 2024-09-02T14:34:07.826922+00:00 |
| metadata → image_dimensions | Dimension of frame in pixels. |
{
"height": 5120,
"width": 5120
}
|
| metadata → valid_pixel | Percentage of pixels that are valid (non 0-valued), from 0 to 100. | 100 |
| metadata → product_metadata → satellite_serial_number | Internal satellite serial number. Format: FM<sat_id> | FM32 |
| metadata → product_metadata → time_range | Start and end timestamps, in Unix time format, for the entire associated capture. |
[ 1725281465.564875, 1725282199.607398 ] |
| metadata → product_metadata → rois | Internal data describing the captured ROIs by the sensor. |
[
{
"bitmask": "MSB",
"coord": [0, 0, 5119, 5119],
"roi_id": 0
}
]
|
| metadata → product_metadata → category | Internal identification of the capture. Possible values: (production, engineering, no_process) | production |
| metadata → product_metadata → bands | Position and information of each of the bands present on the raw frame. |
"blue": {
"band_field_of_view": {
"x_fov": 0.6286165523911111,
"y_fov": 0.13652765747244444
},
"band_indices": {
"y_max": 5075,
"y_min": 45
},
"center_of_band": {
"cob_x_px": 2560,
"cob_y_px": 1899
}
}
|
| metadata → product_metadata → satellite | Internal satellite serial number. Format: FM<sat_id> | FM32 |
| metadata → camera | Internal camera name. | micro |
| metadata → satellite_model | Satellite generation category, mainly to differentiate between MarkIV and MarkV. | MarkIV |
| metadata → satellite_attitude_calculated_ecef2body | The estimated satellite attitude with respect to ECEF. Same as metadata → telemetry → satellite_attitude_calculated_ecef2body. | [ 0.27514077557430466, 0.7782452895749822, -0.5617941488731234, 0.054946857623027784 ] |
| metadata → satellite_position_calculated_ecef | The position of the satellite with respect to ECEF. Values are X/Y/Z positions in meters. See also: metadata → telemetry → satellite_posvel. | [ 3877487.1114285714, 1638382.3979910715, 5301508.870535714 ] |
| metadata → source_frame_type | Reserved for future internal use. | standard |
| metadata → satellite_generation | Satellite generation category, mainly to differentiate between MarkIV and MarkV. Same as metadata → model. | MarkIV |
| Attachments | Reserved for internal use. | [
{
"file_name": "20240902_125109_614_SN30_L0_MS_thumbnail.tiff",
"metadata": {},
"url": "../image_20240902-125109-614_0221_thumbnail.tiff",
"source": "internal"
}
] |
| Rasters | Reserved for internal use. | [
{
"file_name": "20240902_125109_614_SN30_L0_MS_analytic.tiff",
"bands": ["raw"],
"url": "../image_20240902-125109-614_0221.tiff",
"source": "internal"
}
] |
Note
Non documented files or parameters should be ignored.
STAC metadata
The L0 frames are internally stored in our STAC catalog. Each frame of a capture is a single item in the corresponding collection. In the packaging we also deliver a second json file with the corresponding STAC item metadata (see STAC Common metadata). The filename format takes the product version as SUFFIX.
The following table shows the description of each field provided in the file:
| Prefix | Field Name | Description | Example |
|---|---|---|---|
| n/a | id | Unique identifier for the STAC item | 20250930_025801_143_SN45_L0_MS_1_0_0 |
| n/a | bbox | Item bounding box | [ 119.56896495671906, 23.62805912936759, 119.65730868533569, 23.690097800133774 ], |
| n/a | assets | List of the assets available for a given item | {
"preview": {
"href": "link to the file",
"type": "image/png",
"roles": [
"overview"
]
},
"analytic": {...},
"metadata": {...},
"thumbnail": {...}
}
|
| n/a | collection | Collection name | l0 |
| properties | gsd | Ground sample distance in meters | 0.90 |
| properties | proj : shape | Dimension of image in pixels (Height x Width) | [7000, 9344] |
| properties | instruments | Options are MS for multispectral and HS for hyperspectral | ms |
| properties | platform | Satellite name | newsat45 |
| properties | view : azimuth | Viewing azimuth angle. The angle measured from the sub-satellite point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360) | 166.1138 |
| properties | view : off_nadir | The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90). In case this angle cannot be computed, a value of -1 will be reported | 24.9490 |
| properties | view : sun_elevation | The estimated sun elevation measured at the target at the moment of the capture. Value in degrees. | 60 |
| properties | view : sun_azimuth | Sun azimuth angle. From the scene center point on the ground, this is the angle between true north and the sun. Measured clockwise in degrees (0-360) | 72.3332 |
| properties | view : incidence_angle | The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90). In case this angle cannot be computed, a value of -1 will be reported. | 26.55467459 |
| properties | satl : outcome_id | The UUID of the entire capture this individual frame is part of | ffbabb4f-3a97-45ec-bca3-0e4d56608c1c |
| properties | satl : satellite_generation | Satellite generation category, mainly to differentiate between MarkIV and MarkV | MarkV |
| properties | satl : nss_version | Internal satellite specs database version | 0.89.6 |
| properties | satl : valid_pixel | Percentage of pixels that are valid, from 0 to 100 | 100 |
| properties | satl : exposure_sec | Exposure time of capture in seconds | 0.002769 |
| properties | satl : product_name | The product name | L0 |
| properties | satl : last_modified | Timestamp when the product was last processed | 2025-09-30T04:30:38.122305+00:00 |
| properties | satl : transaction_id | Internal processing transaction identifier | l0-pipeline-cw5td |
| properties | satl : product_version | Product Version aligned with ICD version | 1.0.0 |
| properties | satl : software_version | Internal software version used to process the product | 0.6.22 |
| properties | satl : satellite_altitude | Satellite altitude in meters | 498240.1195991831 |
| properties | satl-qa : dr_blue | Dynamic Range for the blue bandc, In case this metric cannot be computed, a value of -999 will be reported | 96.728 |
| properties | satl-qa : dr_green | Dynamic Range for the green bandc, In case this metric cannot be computed, a value of -999 will be reported | 123.545 |
| properties | satl-qa : dr_red | Dynamic Range for the red bandc, In case this metric cannot be computed, a value of -999 will be reported | 150.386 |
| properties | satl-qa : dr_nir | Dynamic Range for the NIR bandc, In case this metric cannot be computed, a value of -999 will be reported | 81.207 |
| properties | satl-qa : snr_blue | Signal To Noise Ratio for the blue band, In case this metric cannot be computed, a value of -999 will be reported | 64.353 |
| properties | satl-qa : snr_green | Signal To Noise Ratio for the green band, In case this metric cannot be computed, a value of -999 will be reported | 56.291 |
| properties | satl-qa : snr_red | Signal To Noise Ratio for the red band, In case this metric cannot be computed, a value of -999 will be reported | 38.133 |
| properties | satl-qa : snr_nir | Signal To Noise Ratio for the NIR band, In case this metric cannot be computed, a value of -999 will be reported | 23.073 |
| properties | satl-qa : burnt_blue | Burnt pixels percentage for the blue band, In case this metric cannot be computed, a value of -999 will be reported | 0 |
| properties | satl-qa : burnt_green | Burnt pixels percentage for the green band, In case this metric cannot be computed, a value of -999 will be reported | 0 |
| properties | satl-qa : burnt_red | Burnt pixels percentage for the red band, In case this metric cannot be computed, a value of -999 will be reported | 0 |
| properties | satl-qa : burnt_nir | Burnt pixels percentage for the NIR band, In case this metric cannot be computed, a value of -999 will be reported | 0 |
| properties | satl-qa : sharpness_fwhm_act_blue | Full Width Half Maximum across-track value in pixels for blue bandb, In case this metric cannot be computed, a value of -999 will be reported | -999 |
| properties | satl-qa : sharpness_fwhm_act_green | Full Width Half Maximum across-track value in pixels for green bandb, In case this metric cannot be computed, a value of -999 will be reported | 3.675 |
| properties | satl-qa : sharpness_fwhm_act_red | Full Width Half Maximum across-track value in pixels for red bandb, In case this metric cannot be computed, a value of -999 will be reported | 3.241 |
| properties | satl-qa : sharpness_fwhm_act_nir | Full Width Half Maximum across-track value in pixels for NIR bandb, In case this metric cannot be computed, a value of -999 will be reported | -999 |
| properties | satl-qa : sharpness_fwhm_alt_blue | Full Width Half Maximum along-track value in pixels for blue bandb, In case this metric cannot be computed, a value of -999 will be reported | -999 |
| properties | satl-qa : sharpness_fwhm_alt_green | Full Width Half Maximum along-track value in pixels for green bandb, In case this metric cannot be computed, a value of -999 will be reported | 3.008 |
| properties | satl-qa : sharpness_fwhm_alt_red | Full Width Half Maximum along-track value in pixels for red bandb, In case this metric cannot be computed, a value of -999 will be reported | 2.846 |
| properties | satl-qa : sharpness_fwhm_alt_nir | Full Width Half Maximum along-track value in pixels for NIR bandb, In case this metric cannot be computed, a value of -999 will be reported | -999 |
| properties | satl-qa : qa_software_version | Quality Control project SW version | 2.11.2 |
| properties | satl-insights : lulc_snow | Land use/land cover percentage for snow | 0 |
| properties | satl-insights : lulc_urban | Land use/land cover percentage for urban areas | 8.1 |
| properties | satl-insights : lulc_water | Land use/land cover percentage for water | 77.3 |
| properties | satl-insights : lulc_forest | Land use/land cover percentage for forest | 12.6 |
| properties | satl-insights : lulc_bareland | Land use/land cover percentage for bare land | 0.5 |
| properties | satl-insights : lulc_cropland | Land use/land cover percentage for cropland | 0 |
| properties | satl-insights : lulc_grassland | Land use/land cover percentage for grassland | 1.5 |
\(^b\) See Sharpness. Due to the provisional use of a feature mask that may fail to mask textured clouds, the reported sharpness metric should be considered fully reliable only in frames without cloud cover. A proper cloud mask implementation is pending.
\(^c\) Detailed documentation pending.
Note
Non documented files or parameters should be ignored.
Digital signature
Additionally, every L0 package includes a digital signature to ensure data authenticity and integrity. Each package contains a manifest file and cryptographic signature that allows verification that the delivered data has not been tampered with. Learn more about Digital Signature verification.
Known issues
No issue to be reported here
Changelog
| Version | Release date | Change log |
|---|---|---|
| 1.1.1 | 01/06/2026 |
|
| 1.1.0 | 17/11/2025 |
|
| ICD 1.0.0 | 03/09/2024 |
|
Imagery End User Rights Agreement and Terms of Use
All imagery products are delivered under Satellogic Imagery End User License Agreement. The terms and conditions of the agreement are available to customers and accessible online on the website under License Agreement.

