Geosat-2
Geosat-2 L1B, and L1C panchromatic and multispectral EO data products are calibrated using the Optical Products Calibration (OPT-Calib) service. The process applied is the same for PAN and MS acquisitions.

Input
The input is an ingested Geosat-2 Dataset, find details here.
DN to Radiance
For the conversion from \(DN\) (for Digital Numbers) to spectral radiance (or ‘TOA radiance’) \(L \), the following formula is used :
\(L \) in \(W/m^2/steradians/micrometers\) with \(b\) being a band ID.
The gain and bias values are read from the Geosat-2 product annotation.
Radiance to Reflectance
To convert TOA radiance to TOA reflectance, the following formula is used:
where :
-
\(L(b)\) is the spectral radiance for band b
-
\(pi\) is the famous mathematical constant
-
\(d\) is the earth-sun distance (in astronomical units) and depends on the acquisition’s day and month
-
\(ESUN(b)\) is the mean TOA solar irradiance (or solar illumination) in \(W/m^2/micrometers\)
-
\(θ\) is the solar zenith angle in degrees.
The conversion from elevation angle to solar zenith angle \(θ\) (in degrees) is:
The values for the \(ESUN(b)\) are read from the Geosat-2 product annotation:
Output
The output is a STAC item GeoJSON1 including the assets shown below
"assets": {
"blue": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"reflectance",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/blue.tif",
"eo:bands": [
{
"name": "blue",
"description": "Blue Ortho PSH in W*m^-2*µm^-1*str^-1",
"common_name": "blue",
"center_wavelength": 0.496,
"full_width_half_max": 0.06,
"solar_illumination": 1811.593874
}
],
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 408,
"maximum": 9098,
"mean": 1042.9103471788,
"stddev": 538.62633144313,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": 390.960784313725,
"max": 9115.03921568627
}
}
],
"file:size": 569788098
},
"green": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"reflectance",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/green.tif",
"eo:bands": [
{
"name": "green",
"description": "Green Ortho PSH in W*m^-2*µm^-1*str^-1",
"common_name": "green",
"center_wavelength": 0.566,
"full_width_half_max": 0.07,
"solar_illumination": 1794.381858
}
],
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 241,
"maximum": 9516,
"mean": 922.82808710295,
"stddev": 579.99698320548,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": 222.813725490196,
"max": 9534.1862745098
}
}
],
"key": "green",
"file:size": 578973356
},
"red": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"reflectance",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/red.tif",
"eo:bands": [
{
"name": "red",
"description": "Red Ortho PSH in W*m^-2*µm^-1*str^-1",
"common_name": "red",
"center_wavelength": 0.669,
"full_width_half_max": 0.06,
"solar_illumination": 1517.427492
}
],
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 1,
"maximum": 10000,
"mean": 757.82181640197,
"stddev": 675.76024876738,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": -18.6058823529412,
"max": 10019.6058823529
}
}
],
"key": "red",
"file:size": 590897993
},
"nir": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"reflectance",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/nir.tif",
"eo:bands": [
{
"name": "nir",
"description": "NIR Ortho PSH in W*m^-2*µm^-1*str^-1",
"common_name": "nir",
"center_wavelength": 0.831,
"full_width_half_max": 0.12,
"solar_illumination": 1076.885158
}
],
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 230,
"maximum": 10000,
"mean": 2235.1252585774,
"stddev": 1040.5977666174,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": 210.843137254902,
"max": 10019.1568627451
}
}
],
"key": "nir",
"file:size": 638194194
},
"ndvi": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/ndvi.tif",
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": -0.21771217882633,
"maximum": 0.99898582696915,
"mean": 0.47245108311042,
"stddev": 0.24478132204988,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": -0.220097861190635,
"max": 1.00137150933345
}
}
],
"file:size": 1375434843
},
"ndwi": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"data",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/ndwi.tif",
"s_expression": " (where (& (\u003E green 0) (\u003E nir 0)) (norm_diff green nir) nil)",
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": -0.7709447145462,
"maximum": 0.42793294787407,
"mean": -0.3786822484607,
"stddev": 0.22331470151277,
"valid_percent": 71.45
},
"histogram": {
"count": 256,
"min": -0.77329545506075,
"max": 0.43028368838862
}
}
],
"file:size": 1381808538
},
"overview-trc": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"composite",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/overview-trc.tif",
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 33.701694168256,
"stddev": 36.468323402089,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 42.589579402531,
"stddev": 37.962844110727,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 49.33027200036,
"stddev": 40.108608754088,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 255,
"mean": 182.20679225909,
"stddev": 115.16690879207,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
}
],
"file:size": 733347711
},
"overview-civ": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"composite",
"visual"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/overview-civ.tif",
"raster:bands": [
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 108.49893905636,
"stddev": 86.198912862004,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 255,
"mean": 33.701695604502,
"stddev": 36.468332097874,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 42.589579402531,
"stddev": 37.962844110727,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 0.75,
"statistics": {
"minimum": 0,
"maximum": 255,
"mean": 182.20679225909,
"stddev": 115.16690879207,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
}
],
"file:size": 790522634
},
"overview-trc-low-res": {
"type": "image/tiff; application=geotiff; profile=cloud-optimized",
"roles": [
"composite",
"overview"
],
"href": "https://.../calibratedDatasets/DE2_PSH_L1C_000000_20231025T021856_20231025T021859_DE2_50668_5E8E-calibrated/overview-trc-low-res.tif",
"raster:bands": [
{
"spatial_resolution": 15.046875,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 33.706151008606,
"stddev": 36.480609437982,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 15.046875,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 42.593481063843,
"stddev": 37.975516071029,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 15.046875,
"statistics": {
"minimum": 0,
"maximum": 254,
"mean": 49.334037780762,
"stddev": 40.119653774514,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
},
{
"spatial_resolution": 15.046875,
"statistics": {
"minimum": 0,
"maximum": 255,
"mean": 182.19979763031,
"stddev": 115.17023113289,
"valid_percent": 100
},
"histogram": {
"count": 256,
"min": -0.5,
"max": 255.5
}
}
],
"file:size": 2156764
}
}
-
Radiant Earth Foundation, STAC item specifications, a single spatiotemporal asset as a GeoJSON feature plus datetime and links, available at:https://github.com ↩