Raw corrected (L1A)
Product description
The L1A Product is a raw, but corrected product from Satellogic’s products family. It is composed by the raw frames that have been radiometrically corrected along with the necessary metadata.
The algorithms applied to the L0 data to convert it into L1A are: - Artifacts removals - PSF Deconvolution - Radiometric correction to Top of the atosmphere units - HDR (combining 2 L0 frames with different exposures, only on Mark V) - Stray light correction - NO-data and cloud mask calculation
Given the nature of our payload design and operations, the L1A product is a set of overlaping frames, each with 4 areas corresponding to each of the RGBNir bands of the sensor.
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 | |
GSD | 1.03m 1 |
0.73m 1 |
|
Swath | 5.2 Km 1 |
6.9 Km 1 |
|
Image bit depth | 16 bit scaled TOA (0-10000) |
| |
Algorithms applied | Artifacts removal, PSF deconvolution, stray light correciton, radiometric correction, HDR (optional) |
| |
Geolocation Accuracy | <= 300m TBC CE90 |
| |
Image format | GeoTiff, LZW loseless compression |
| |
Ancilliary files | Metadata (JSON), preview (PNG), thumbnail (PNG), cloud mask (TIF), cloud_statistics (CSV) |
|
Product presentation
Each of the frames is 16-bit single band Grayscale GeoTIFF. The GeoTiff location is coarsly defined by the onboard satellite telemetry to help with the fine location process. Each of the frames contains 4 regions, corresponding to RGBNIR as depicted in the following image:
The size of each frame varies by platform beign 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.
Product components
Each L1A product, contains a preview, a thumbnail a metadata file, a cloud mask and a cloud_statistics file as well.
Raster, preview and thumbanil
Cloud mask and cloud statistics
The mask is a single band GeoTiff. The values of the raster represent different cloud data as follows:
- 0: nodata
- 1: valid_data
- 128: shadow_data
- 255: cloud r The cloud statistics csv files contains a description of the detected cloud and saturated pixel count for each individual band. For example
scene_id | band | detected_cloud_coverage | saturation |
---|---|---|---|
SL-newsat43-20240527T030147882889Z-micro-L1A-0.14.4 | blue | 0.0 | 7.059575547200715e-05 |
SL-newsat43-20240527T030147882889Z-micro-L1A-0.14.4 | green | 0.0 | 0.00032127568493150685 |
SL-newsat43-20240527T030147882889Z-micro-L1A-0.14.4 | nir | 0.0 | 2.7833692573525483e-07 |
SL-newsat43-20240527T030147882889Z-micro-L1A-0.14.4 | red | 0.0 | 0.00010316780821917808 |
Assets Metadata
Field Name | Description | Example |
---|---|---|
Attachments | Reserved for internal use. |
{ "file_name": "20241001_124204_866_SN30_L1A_MS_burnt_pixels_mask.tif", "metadata": {}, "name": "burnt_pixels_mask", "type": "internal", "url": "../20241001_124204_866_SN30_L1A_MS_burnt_pixels_mask.tif" } |
footprint | The estimated footprint of the individual frame. Each coordinate is a longitude/latitude pair. Together they define a closed loop. |
{ "type": "Polygon", "coordinates": [ [ [15.115170031610152, -23.518794742780624], [15.158185734842615, -23.526282398012047], [15.149905529193973, -23.564663684514922], [15.106889825961508, -23.557178214316675], [15.115170031610152, -23.518794742780624] ] ] } |
last_modified | Timestamp when the product was last processed. | "2024-10-01T13:06:39.789463+00:00" |
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 → binning | Low level configuration for sensor binning. | [1, 1] |
metadata → camera | Internal camera name. | micro |
metadata → clouds_percentage | Percentage of frame covered by clouds. | 0.15674068404990982 |
metadata → exposure_sec | Exposure time in seconds. | 0.00147375 |
metadata → frame_index | Internal assigned index to the individual frame in the capture. | 195 |
metadata → gsd | Ground Sampling Distance (in meters). Greatest value from metadata -> gsd_x and metadata -> gsd_y reported. | 0.8735092299900828 |
metadata → gsd_x | Ground Sampling Distance in x direction (in meters). Average value at the center of the frame. | 0.8735092299900828 |
metadata → gsd_y | Ground Sampling Distance in y direction (in meters). Average value at the center of the frame. | 0.846441786341418 |
metadata → image_dimensions | Dimension of frame in pixels. |
{ "height": 5120, "width": 5120 } |
metadata → incidence_angle | Incidence Angle in degrees. In case this angle cannot be computed, a value of -1 will be reported. | 14.49134335756983 |
metadata → last_modified | Timestamp when the product was last processed. | "2024-10-01T13:04:21.946155+00:00" |
metadata → metrics | Internal Use | ""lsub0": {}" |
metadata → nss_version | Internal satellite specs database version. |
"0.75.0" |
metadata → off_nadir | Offnadir expressed in degrees. In case this angle cannot be computed, a value of -1 will be reported. |
13.649393326775941 |
metadata → parent_scene_id | Scene ID of Parent Item (In this case L0) |
"20241001_124204_866_SN30_L0_MS" |
metadata → payload | Options are MS for multispectral and HS for hyperspectral. |
"MS" |
metadata → product_metadata → bands | Position and information of each of the bands present on the raw frame. Only blue band given as example but all band info has same format. Information is given for "blue" , "green" , "nir" and "red" |
{ "blue": { "band_field_of_view": { "x_fov": 0.6286165523911111, "y_fov": 0.13652765747244444 }, "band_indices": { "y_max": 5075, "y_min": 3964 }, "center_of_band": { "cob_x_px": 2560, "cob_y_px": 4520 } } } |
metadata → product_metadata → category | Internal identification of the capture. Possible values: (production, engineering, no_process) |
"production" |
metadata → product_metadata → frames | Internal Use |
[] |
metadata → product_metadata → rois | Internal data describing the captured ROIs by the sensor. |
[ { "bitmask": "ALL", "coord": [0, 0, 5119, 5119], "roi_id": 0 } ] |
metadata → product_metadata → satellite | Internal satellite serial number. Format: FM<sat_id> |
"FM32" |
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. |
[ 1727786522.420183, 1727786528.019939 ] |
metadata → product_version_L0 | Product Version for L0 aligned with ICD version. |
"1.0.0" |
metadata → product_version_L1A | Product Version for L1A aligned with ICD version. |
"1.0.0" |
metadata → satellite_attitude_calculated_ecef2body | The estimated satellite attitude with respect to ECEF. Same as metadata → telemetry → satellite_attitude_calculated_ecef2body. |
[ 0.6617749437400468, 0.33208852842525194, -0.44960407955915377, -0.49962716576460797 ] |
metadata → satellite_generation | Satellite generation category, mainly to differentiate between MarkIV and MarkV. Same as metadata → model. |
"MarkIV" |
metadata → model | Satellite generation category, mainly to differentiate between MarkIV and MarkV. |
"MarkIV" |
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. |
[ 6012979.7371040005, 1523837.439984, -2681023.48782 ] |
metadata → sensor_position {} | Sensor position for the frame, in millimeters. |
{ "pos_x": 0.0, "pos_y": 0.0, "pos_z": 0.0 } |
metadata → software_version_L0 | Internal software version for L0 parent product used to process the product. |
"0.6.3" |
metadata → software_version_L1A | Internal software version for L1a used to process the product. |
"0.15.1" |
metadata → source_frame_type | Reserved for future internal use. |
"standard" |
metadata → subsampling | Sensor level configuration for subsampling. |
[1, 1] |
metadata → sun_azimuth | Sun Azimuth in degrees. |
302.950614861444 |
metadata → sun_elevation | The estimated sun elevation measured at the target at the moment of the capture. Value in degrees. |
56 |
metadata → telemetry → attitude → ecef2body | Satellite attitude information, currently contains only the ecef2body data. |
[ 0.6617749437400468, 0.33208852842525194, -0.44960407955915377, -0.49962716576460797 ] |
metadata → telemetry → body2sensor_quaternion | The satellite body to sensor quaternion (for MSI / HSI). Default identity value if calibration isn’t performed. |
{ "qi": -0.0012972240863929375, "qj": 0.0009388672449488652, "qk": 0.005374776818772846, "qr": 0.999984273632398 } |
metadata → telemetry → estimated_error {} | The estimated errors of the measurements provided in this document in deg, deg, deg, m, m |
{ "payload_attitude_pitch_error": 0.004539493216154901, "payload_attitude_roll_error": 0.004256778246143252, "payload_attitude_yaw_error": 0.004244614056092482, "satellite_altitude_error": 47.2, "satellite_position_error_xyz": 47 } |
metadata → telemetry → location_calculated | The longitude/latitude/altitude of the boresight, calculated. |
[ 15.137548, -23.54195, 597536 ] |
metadata → telemetry → payload_attitude | LVLH (“Local Vertical Local Horizontal” reference frame) to Payload. The rotation between the Payload Reference Frame and Orbit Reference. |
{ "pitch": 13.57006407602525, "qi": 0.09506036382113325, "qj": 0.0727520162204592, "qk": 0.6818541228632522, "qr": 0.7216270688523518, "roll": 2.2393771906085735, "yaw": 86.48701411730309 } |
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. |
{ "pitch": 15.802253367098107, "qi": -0.32900242113190187, "qj": 0.45068687626615067, "qk": 0.4967473404425208, "qr": 0.6647411723476201, "roll": -66.91502704371982, "yaw": 84.01983057758471 } |
metadata → telemetry → position → gps_ecef_meter | Satellite position information, currently contains only the gps_ecef_meter data (position with respect to ECEF). |
[ 6012979.7371040005, 1523837.439984, -2681023.48782 ] |
metadata → telemetry → satellite_altitude | The satellite altitude at the moment of the capture, in meters. |
382896.60110443924 |
metadata → telemetry → satellite_attitude_calculated_ecef2body {} | The estimated satellite attitude with respect to ECEF. Calculated using internal tools. |
{ "qi": 0.33208852842525194, "qj": -0.44960407955915377, "qk": -0.49962716576460797, "qr": 0.6617749437400468 } |
metadata → telemetry → satellite_nadir | The estimated Nadir point in WGS84 at the moment of the capture. |
{ "latitude": -23.506943305431854, "longitude": 14.220771279251512 } |
metadata → telemetry → satellite_posvel | The position and velocity of the satellite with respect to ECEF. |
{ "pos_x": 6012979.7371040005, "pos_y": 1523837.439984, "pos_z": -2681023.48782, "vel_x": -2544.52083428125, "vel_y": -2224.1147652851564, "vel_z": -6980.149495113282 } |
metadata → valid_pixel | Percentage of pixels that are valid, from 0 to 100. |
87.2265625 |
metadata → viewing_azimuth | Viewing Azimuth in degrees. In case this angle cannot be computed, a value of -1 will be reported. |
168.7509986841136 |
productname | The product name |
"L1A" |
Rasters | Reserved for internal use. |
{ "bands": [ "raw" ], "file_name": "20241001_124204_866_SN30_L1A_MS_analytic.tiff", "source": "internal", "url": "../tmp/output/image_20241001-124204-866_0195.tiff" } |
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" |
scene_id | The ID of the individual frame this metadata file corresponds to. |
"20241001_124204_866_SN30_L1A_MS" |
sceneset_id | The UUID of the entire capture this individual frame is part of. |
"7b4d2542-07ab-47c4-a413-a053bb2aaa51" |
supplier | The name of the supplier of the imagery. |
"Satellogic" |
timestamp | The timestamp of the corresponding individual frame, in ISO8601 |
"2024-09-02T12:51:09.614415+00:00" |
TOA Factors
The L1A product is calibrated into Top Of Atmosphere units. L1A frames are in units of reflectance which are a 0-100% value. In order to fit them in a standard Tiff file, the decimal percentage mapped to 0-10000 units. In order to convert it to radiance, calibration factors are included in the TOA_factors.json file in the radiance_to_reflectance
field as can be seen in the follwoing example.
{
"toa_product": "reflectance",
"dn_to_toa": {
"blue": 0.0005149058136425573,
"green": 0.0005165027088655159,
"nir": 0.0015526813957906338,
"red": 0.0005702470410396718
},
"radiance_to_reflectance": {
"blue": 3.066967270902978,
"green": 3.243146439091673,
"nir": 5.392975659309483,
"red": 3.7239146733710684
},
"vicarious_factors": {
"blue": {
"bias_factor": 0,
"scale_factor": 1.0217194978699562
},
"green": {
"bias_factor": 0,
"scale_factor": 0.9736846793952693
},
"nir": {
"bias_factor": 0,
"scale_factor": 1.1503664715826032
},
"red": {
"bias_factor": 0,
"scale_factor": 0.9820510061971801
}
}
}
Packaging specification
STAC API
The L1A product can be found in our STAC archives. Each frame of a capture is a single Item in the corresponding collection. The following metadata and assets are available for each
The following table shows the description of each field and an example corresponding to the capture used in previous section. (see STAC Common Metadata)
prefiex | Field | Description | Example |
---|---|---|---|
General | GSD | Ground Sampling Distance (GSD) | 0,87350923 m |
General | Time of Data | Timestamp of capture | 2024-10-01 12:42:04 UTC |
General | Platform | The name of the satellite that took this frame. Format: newsat |
newsat30 |
General | Instruments | Name of instrument or sensor used. Values are either ms for multi-spectral instrument or hs for hyper-spectral instrument. | ms |
Electro-Optical | Cloud Coverage | Percentage of Frame covered by Clouds | 15,67 % |
projection | Image Dimensions | Dimension of Image in Pixels. (Height x Width) | 5 120 × 5 120 |
satl | Outcome Id | The UUID of the entire capture this individual frame is part of. | 7b4d2542-07ab-47c4-a413-a053bb2aaa51 |
satl | Nss Version | Internal satellite specs database version. | 0.75.0 |
satl | Valid Pixel | Percentage of pixels that are valid, fro.m 0 to 100. | 87,2265625 |
satl | Exposure Sec | Exposure time of capture in seconds | 0,00147375 |
satl | Product Name | The product name | L1A |
satl | Last Modified | Timestamp when the product was last processed. | 2024-10-01T13:11:18.078632+00:00 |
satl | Transaction Id | Internal processing transaction identifier. | l1a-pipeline-wkhtz |
satl | Product Version | Product Version aligned with ICD version | 1.0.0 |
satl | Software Version | Internal software version used to process the product. | 0.15.1 |
satl | Satellite Altitude | Satellite Altitude in meters. | 382 896,6011044392 |
satl | Satellite Generation | Satellite generation category, mainly to differentiate between MarkIV and MarkV. | MarkIV |
View Geometry | Viewing Azimuth | Viewing Azimuth in degrees | 168,7509986841 ° |
View Geometry | Off-Nadir Angle | Off Nadir Angle in degrees | 13,6493933268 ° |
View Geometry | Sun Azimuth | Sun Azimuth in degrees | 302,9506148614 ° |
View Geometry | Sun Elevation | Sun Elevation in degrees | 56 ° |
View Geometry | Incidence Angle | Incidence angle in degrees | 14,4913433576 ° |
Non documented parameters should be ignored.
Also, each item/tile contains the following assets/components:
STAC Item asset name | Component |
---|---|
cloud | The raster cloud mask |
preview | A small preview of the raster |
analytic | The full resolution raster corresponding to the frame |
metadata | The JSON Metadata file describe above |
thumbnail | A smallthubmnail of the raster. |
toa_factors | A GeoJson file containing the TOA calibration factors |
cloud_statistics | The cloud statistics report file as CSV |
Packaged scene
If delivered as a package scene (via S3, FTP, or Zip download link) an L1A capture is packaged in the following format:
Scenes are delivered as a single folder. The file name follow the following format:
{date_hour_ms}_SN{sn}_{product_name}_{payload}
, for example like "20241001_124204_866_SN30_L1A_MS"
.
Inside each package, a flat structure can be found with all corrsponding frames and their associated ancilliary files.
The following files and folders can be found in a typical scene:
.
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_cloud_mask.tiff
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_preview.png
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_anaytic.tiff
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_metadata.json
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_thumbnail.png
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_toa_factors.json
├── {date_hour_ms}_SN{sn}_{product_name}_{payload}_cloud_statistics.csv
File | Description |
---|---|
*_cloud_mask.tif | The raster cloud mask |
*_preview.png | The preview component of the product for the entire scene |
*_analytic.tiff | The full resolution raster for the individual frame |
*_metadata.json | The metadata JSON attachment |
*_thumbnail.png | A low resolution thumbnail of the scene |
*_toa_factors.json | A GeoJson file containing the TOA calibration factors |
*_cloud_statistics.csv | The cloud statistics report file as CSV |
*.json | A STAC metadata dump of the item in the archive. |
Changelog
[ICD 1.0.0] 03-09-2024
- Initial release