Landsat 8 - Reflectance ValuesCalculating albedo from Landsat in ArcGIS Desktop?Different band file format when downloading Landsat 8 from earthexplorerRemote Sensing Landsat Surface Reflectance and AlbedoStrange reflectance values in Sentinel-2 images over sea iceLandsat 7 - 8 surface reflectance bands from ESPA (LEDAPS)How to use Landsat surface reflectance pixel quality band?NDWI Calculation with Surface Reflectance ProductsNegative values in Landsat 8 surface reflectance higher level productLandsat 8 Collection Level 1 and 2Set multiple values to nodata - Erdas Imagine 2015How to Correct Landsat 8 Imagery with TOA Reflectance >1 and <0?
Integer addition + constant, is it a group?
Why not increase contact surface when reentering the atmosphere?
What is the opposite of 'gravitas'?
Is exact Kanji stroke length important?
Proof of work - lottery approach
Lay out the Carpet
What can we do to stop prior company from asking us questions?
How does buying out courses with grant money work?
Is a stroke of luck acceptable after a series of unfavorable events?
Customer Requests (Sometimes) Drive Me Bonkers!
India just shot down a satellite from the ground. At what altitude range is the resulting debris field?
How did Doctor Strange see the winning outcome in Avengers: Infinity War?
How can I get through very long and very dry, but also very useful technical documents when learning a new tool?
Applicability of Single Responsibility Principle
Crossing the line between justified force and brutality
Did Dumbledore lie to Harry about how long he had James Potter's invisibility cloak when he was examining it? If so, why?
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Inappropriate reference requests from Journal reviewers
What is the intuitive meaning of having a linear relationship between the logs of two variables?
Would this custom Sorcerer variant that can only learn any verbal-component-only spell be unbalanced?
What does "I’d sit this one out, Cap," imply or mean in the context?
Where does the Z80 processor start executing from?
Is there a problem with hiding "forgot password" until it's needed?
You cannot touch me, but I can touch you, who am I?
Landsat 8 - Reflectance Values
Calculating albedo from Landsat in ArcGIS Desktop?Different band file format when downloading Landsat 8 from earthexplorerRemote Sensing Landsat Surface Reflectance and AlbedoStrange reflectance values in Sentinel-2 images over sea iceLandsat 7 - 8 surface reflectance bands from ESPA (LEDAPS)How to use Landsat surface reflectance pixel quality band?NDWI Calculation with Surface Reflectance ProductsNegative values in Landsat 8 surface reflectance higher level productLandsat 8 Collection Level 1 and 2Set multiple values to nodata - Erdas Imagine 2015How to Correct Landsat 8 Imagery with TOA Reflectance >1 and <0?
I downloaded some Landsat 8 OLI/TIRS C1 Level-1 images from EarthExplorer. I was hoping to get reflectance data out of the blue, green and red band; however, when I opened those images in ArcMap, the scale does not seem to be reflectance, given that is not in the range between 0 - 1 (theoretical values of reflectance).
The values that I am getting are 0 - 40079 (blue band) and 0 - 40336 (red band). My question is, is there some type of corrections that I need to do? maybe some transformation?
remote-sensing landsat landsat-8 reflectance
add a comment |
I downloaded some Landsat 8 OLI/TIRS C1 Level-1 images from EarthExplorer. I was hoping to get reflectance data out of the blue, green and red band; however, when I opened those images in ArcMap, the scale does not seem to be reflectance, given that is not in the range between 0 - 1 (theoretical values of reflectance).
The values that I am getting are 0 - 40079 (blue band) and 0 - 40336 (red band). My question is, is there some type of corrections that I need to do? maybe some transformation?
remote-sensing landsat landsat-8 reflectance
3
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Thank you @JeffreyEvans
– Perro
yesterday
add a comment |
I downloaded some Landsat 8 OLI/TIRS C1 Level-1 images from EarthExplorer. I was hoping to get reflectance data out of the blue, green and red band; however, when I opened those images in ArcMap, the scale does not seem to be reflectance, given that is not in the range between 0 - 1 (theoretical values of reflectance).
The values that I am getting are 0 - 40079 (blue band) and 0 - 40336 (red band). My question is, is there some type of corrections that I need to do? maybe some transformation?
remote-sensing landsat landsat-8 reflectance
I downloaded some Landsat 8 OLI/TIRS C1 Level-1 images from EarthExplorer. I was hoping to get reflectance data out of the blue, green and red band; however, when I opened those images in ArcMap, the scale does not seem to be reflectance, given that is not in the range between 0 - 1 (theoretical values of reflectance).
The values that I am getting are 0 - 40079 (blue band) and 0 - 40336 (red band). My question is, is there some type of corrections that I need to do? maybe some transformation?
remote-sensing landsat landsat-8 reflectance
remote-sensing landsat landsat-8 reflectance
asked yesterday
PerroPerro
8511
8511
3
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Thank you @JeffreyEvans
– Perro
yesterday
add a comment |
3
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Thank you @JeffreyEvans
– Perro
yesterday
3
3
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Thank you @JeffreyEvans
– Perro
yesterday
Thank you @JeffreyEvans
– Perro
yesterday
add a comment |
2 Answers
2
active
oldest
votes
The values you are getting are NOT real reflectance values like the other comment said. They are actually DN (digital number) values.
You need to go from DN to radiance and then to TOA (Top Of Atmosphere) reflectance. This link shows the necessary steps you need to go through in order to get reflectance values.
New contributor
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
|
show 1 more comment
This information is a bit buried but, if you read the USGS Landsat Surface Reflectance-derived Spectral Indices product guide and the associate processing software guide, you can ascertain that reflectance values are scaled to 16-bit, which is consistent with your observed data range. This processing and rescaling occurs in the LEDAPS (TM4,TM5,ETM+7) or L8SR (OLI) software so, you can track down the USGS documentation for technical details. If you want a 0-1 data range just rescale the data accordingly. One confusing factor is that floating point reflectance values do not always bound 0-1 and when rescaled to 16-bit, in the processing workflow, can end up having large negative numbers. I just bound the lower data range to 0 before rescaling as it is functionally the same as doing this on floating point data.
As @Mouad Alami pointed out, if you did not request reflectance as part of the data archive and are working with the DN values, it is necessary to apply a simple workflow to convert the data to reflectance. It should be noted that the equations are sensor specific.
If you want to operate on the DN values directly, here is an R example of DN to reflectance for OLI data that gives the general code syntax.
oli.reflectance <- function(x, sun.elev = NULL, multiplicative.rescaling = 0.00002,
additive.rescaling = -0.100000)
if(!class(x) %in% c("RasterLayer", "RasterStack"))
stop( "x must be raster class object" )
if(is.null(sun.elev))
stop("Must provide sun elevation angle value from SUN_ELEVATION in metadata")
refl <- function(x, m, a, se)
y <- (x * m + a) / sin(as.numeric(se) * pi /180)
return(y)
return( refl( x, multiplicative.rescaling, additive.rescaling, sun.elev) )
Model parameters (arguments)
m (additive.rescaling) - Additive rescaling factor (REFLECTANCE_MULT_BAND_x)
a (multiplicative.rescaling) - Quantized calibrated standard product pixel values (REFLECTANCE_ADD_BAND_x)
se (sun.elev) - sun elevation angle (SUN_ELEVATION)
The terms "at-sensor" (4,5,7) and "surface" (8) reflectance are synonymous but are used in the context of the specific sensor as the atmospheric correction algorithms are quite different. The tier 2 products are have terrain and radiometric calibration (cross-sensor and temporal) applied making the bands and indices comparable across scenes. However, this type of temporal comparison should always be carried out on the reflectance data.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "79"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f316749%2flandsat-8-reflectance-values%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The values you are getting are NOT real reflectance values like the other comment said. They are actually DN (digital number) values.
You need to go from DN to radiance and then to TOA (Top Of Atmosphere) reflectance. This link shows the necessary steps you need to go through in order to get reflectance values.
New contributor
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
|
show 1 more comment
The values you are getting are NOT real reflectance values like the other comment said. They are actually DN (digital number) values.
You need to go from DN to radiance and then to TOA (Top Of Atmosphere) reflectance. This link shows the necessary steps you need to go through in order to get reflectance values.
New contributor
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
|
show 1 more comment
The values you are getting are NOT real reflectance values like the other comment said. They are actually DN (digital number) values.
You need to go from DN to radiance and then to TOA (Top Of Atmosphere) reflectance. This link shows the necessary steps you need to go through in order to get reflectance values.
New contributor
The values you are getting are NOT real reflectance values like the other comment said. They are actually DN (digital number) values.
You need to go from DN to radiance and then to TOA (Top Of Atmosphere) reflectance. This link shows the necessary steps you need to go through in order to get reflectance values.
New contributor
New contributor
answered 16 hours ago
Mouad AlamiMouad Alami
994
994
New contributor
New contributor
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
|
show 1 more comment
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
If you are working with the level 1 reflectance product it is, in fact, the reflectance values, just scaled to 16 bit. It is a bit confusing but, please make sure that advice that directly contradicts somebody is actually correct. And to compound this issue, the data is not always bounded to 0 so, you can have very large negative numbers resulting from the 16-bit scaling process. A colleague of mine at USGS-EROS has confirmed this.
– Jeffrey Evans
11 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
@JeffreyEvans Check the Standard Processing Parameters section. It is not a simple rescale, but rather a series of conversions using the formulas provided by the USGS.
– Mouad Alami
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
You are referring to converting the standard DN values to reflectance. In earth explorer, you can explicitly request the reflectance product and receive reflectance bands, as well as TOA, in addition to DN. These are scaled to 16 bit just like the DN bands. In the case of DN only data, you indeed must use the solar angle band with the standard coefficients to convert to reflectance but, not if you requested the reflectance data in the archive. I have regularly worked with NASA and USGS for 27 years so, please do not be dogmatic and perhaps admit that somebody may know something that you do not
– Jeffrey Evans
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
@JeffreyEvans I am a total newbie in the fields of remote sensing and GIS. Your years of experience alone exceed how long I've been alive.You are however making a mistake, because the data is in level 1 which means that is it in DN. You sir are talking about level 2 data.
– Mouad Alami
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
Documentation is very confusing and the USGS keeps contradicting itself on what constitutes a processing level and tier. In the indices handbook this would be level 1, tier 2. Honestly, we are both correct but thank you for pointing this discrepancy out because it should likely be referred to as level 2, or even 3. The TIRS collections are really confusing matters in regard to historic terminology. Historically, level 1 was minimally processed, 2 was geometrically corrected and 3 terrain and radiometrically corrected. Ideally now we want L1TP (level 1, tier 1).
– Jeffrey Evans
10 hours ago
|
show 1 more comment
This information is a bit buried but, if you read the USGS Landsat Surface Reflectance-derived Spectral Indices product guide and the associate processing software guide, you can ascertain that reflectance values are scaled to 16-bit, which is consistent with your observed data range. This processing and rescaling occurs in the LEDAPS (TM4,TM5,ETM+7) or L8SR (OLI) software so, you can track down the USGS documentation for technical details. If you want a 0-1 data range just rescale the data accordingly. One confusing factor is that floating point reflectance values do not always bound 0-1 and when rescaled to 16-bit, in the processing workflow, can end up having large negative numbers. I just bound the lower data range to 0 before rescaling as it is functionally the same as doing this on floating point data.
As @Mouad Alami pointed out, if you did not request reflectance as part of the data archive and are working with the DN values, it is necessary to apply a simple workflow to convert the data to reflectance. It should be noted that the equations are sensor specific.
If you want to operate on the DN values directly, here is an R example of DN to reflectance for OLI data that gives the general code syntax.
oli.reflectance <- function(x, sun.elev = NULL, multiplicative.rescaling = 0.00002,
additive.rescaling = -0.100000)
if(!class(x) %in% c("RasterLayer", "RasterStack"))
stop( "x must be raster class object" )
if(is.null(sun.elev))
stop("Must provide sun elevation angle value from SUN_ELEVATION in metadata")
refl <- function(x, m, a, se)
y <- (x * m + a) / sin(as.numeric(se) * pi /180)
return(y)
return( refl( x, multiplicative.rescaling, additive.rescaling, sun.elev) )
Model parameters (arguments)
m (additive.rescaling) - Additive rescaling factor (REFLECTANCE_MULT_BAND_x)
a (multiplicative.rescaling) - Quantized calibrated standard product pixel values (REFLECTANCE_ADD_BAND_x)
se (sun.elev) - sun elevation angle (SUN_ELEVATION)
The terms "at-sensor" (4,5,7) and "surface" (8) reflectance are synonymous but are used in the context of the specific sensor as the atmospheric correction algorithms are quite different. The tier 2 products are have terrain and radiometric calibration (cross-sensor and temporal) applied making the bands and indices comparable across scenes. However, this type of temporal comparison should always be carried out on the reflectance data.
add a comment |
This information is a bit buried but, if you read the USGS Landsat Surface Reflectance-derived Spectral Indices product guide and the associate processing software guide, you can ascertain that reflectance values are scaled to 16-bit, which is consistent with your observed data range. This processing and rescaling occurs in the LEDAPS (TM4,TM5,ETM+7) or L8SR (OLI) software so, you can track down the USGS documentation for technical details. If you want a 0-1 data range just rescale the data accordingly. One confusing factor is that floating point reflectance values do not always bound 0-1 and when rescaled to 16-bit, in the processing workflow, can end up having large negative numbers. I just bound the lower data range to 0 before rescaling as it is functionally the same as doing this on floating point data.
As @Mouad Alami pointed out, if you did not request reflectance as part of the data archive and are working with the DN values, it is necessary to apply a simple workflow to convert the data to reflectance. It should be noted that the equations are sensor specific.
If you want to operate on the DN values directly, here is an R example of DN to reflectance for OLI data that gives the general code syntax.
oli.reflectance <- function(x, sun.elev = NULL, multiplicative.rescaling = 0.00002,
additive.rescaling = -0.100000)
if(!class(x) %in% c("RasterLayer", "RasterStack"))
stop( "x must be raster class object" )
if(is.null(sun.elev))
stop("Must provide sun elevation angle value from SUN_ELEVATION in metadata")
refl <- function(x, m, a, se)
y <- (x * m + a) / sin(as.numeric(se) * pi /180)
return(y)
return( refl( x, multiplicative.rescaling, additive.rescaling, sun.elev) )
Model parameters (arguments)
m (additive.rescaling) - Additive rescaling factor (REFLECTANCE_MULT_BAND_x)
a (multiplicative.rescaling) - Quantized calibrated standard product pixel values (REFLECTANCE_ADD_BAND_x)
se (sun.elev) - sun elevation angle (SUN_ELEVATION)
The terms "at-sensor" (4,5,7) and "surface" (8) reflectance are synonymous but are used in the context of the specific sensor as the atmospheric correction algorithms are quite different. The tier 2 products are have terrain and radiometric calibration (cross-sensor and temporal) applied making the bands and indices comparable across scenes. However, this type of temporal comparison should always be carried out on the reflectance data.
add a comment |
This information is a bit buried but, if you read the USGS Landsat Surface Reflectance-derived Spectral Indices product guide and the associate processing software guide, you can ascertain that reflectance values are scaled to 16-bit, which is consistent with your observed data range. This processing and rescaling occurs in the LEDAPS (TM4,TM5,ETM+7) or L8SR (OLI) software so, you can track down the USGS documentation for technical details. If you want a 0-1 data range just rescale the data accordingly. One confusing factor is that floating point reflectance values do not always bound 0-1 and when rescaled to 16-bit, in the processing workflow, can end up having large negative numbers. I just bound the lower data range to 0 before rescaling as it is functionally the same as doing this on floating point data.
As @Mouad Alami pointed out, if you did not request reflectance as part of the data archive and are working with the DN values, it is necessary to apply a simple workflow to convert the data to reflectance. It should be noted that the equations are sensor specific.
If you want to operate on the DN values directly, here is an R example of DN to reflectance for OLI data that gives the general code syntax.
oli.reflectance <- function(x, sun.elev = NULL, multiplicative.rescaling = 0.00002,
additive.rescaling = -0.100000)
if(!class(x) %in% c("RasterLayer", "RasterStack"))
stop( "x must be raster class object" )
if(is.null(sun.elev))
stop("Must provide sun elevation angle value from SUN_ELEVATION in metadata")
refl <- function(x, m, a, se)
y <- (x * m + a) / sin(as.numeric(se) * pi /180)
return(y)
return( refl( x, multiplicative.rescaling, additive.rescaling, sun.elev) )
Model parameters (arguments)
m (additive.rescaling) - Additive rescaling factor (REFLECTANCE_MULT_BAND_x)
a (multiplicative.rescaling) - Quantized calibrated standard product pixel values (REFLECTANCE_ADD_BAND_x)
se (sun.elev) - sun elevation angle (SUN_ELEVATION)
The terms "at-sensor" (4,5,7) and "surface" (8) reflectance are synonymous but are used in the context of the specific sensor as the atmospheric correction algorithms are quite different. The tier 2 products are have terrain and radiometric calibration (cross-sensor and temporal) applied making the bands and indices comparable across scenes. However, this type of temporal comparison should always be carried out on the reflectance data.
This information is a bit buried but, if you read the USGS Landsat Surface Reflectance-derived Spectral Indices product guide and the associate processing software guide, you can ascertain that reflectance values are scaled to 16-bit, which is consistent with your observed data range. This processing and rescaling occurs in the LEDAPS (TM4,TM5,ETM+7) or L8SR (OLI) software so, you can track down the USGS documentation for technical details. If you want a 0-1 data range just rescale the data accordingly. One confusing factor is that floating point reflectance values do not always bound 0-1 and when rescaled to 16-bit, in the processing workflow, can end up having large negative numbers. I just bound the lower data range to 0 before rescaling as it is functionally the same as doing this on floating point data.
As @Mouad Alami pointed out, if you did not request reflectance as part of the data archive and are working with the DN values, it is necessary to apply a simple workflow to convert the data to reflectance. It should be noted that the equations are sensor specific.
If you want to operate on the DN values directly, here is an R example of DN to reflectance for OLI data that gives the general code syntax.
oli.reflectance <- function(x, sun.elev = NULL, multiplicative.rescaling = 0.00002,
additive.rescaling = -0.100000)
if(!class(x) %in% c("RasterLayer", "RasterStack"))
stop( "x must be raster class object" )
if(is.null(sun.elev))
stop("Must provide sun elevation angle value from SUN_ELEVATION in metadata")
refl <- function(x, m, a, se)
y <- (x * m + a) / sin(as.numeric(se) * pi /180)
return(y)
return( refl( x, multiplicative.rescaling, additive.rescaling, sun.elev) )
Model parameters (arguments)
m (additive.rescaling) - Additive rescaling factor (REFLECTANCE_MULT_BAND_x)
a (multiplicative.rescaling) - Quantized calibrated standard product pixel values (REFLECTANCE_ADD_BAND_x)
se (sun.elev) - sun elevation angle (SUN_ELEVATION)
The terms "at-sensor" (4,5,7) and "surface" (8) reflectance are synonymous but are used in the context of the specific sensor as the atmospheric correction algorithms are quite different. The tier 2 products are have terrain and radiometric calibration (cross-sensor and temporal) applied making the bands and indices comparable across scenes. However, this type of temporal comparison should always be carried out on the reflectance data.
edited 9 hours ago
answered 10 hours ago
Jeffrey EvansJeffrey Evans
22.1k22869
22.1k22869
add a comment |
add a comment |
Thanks for contributing an answer to Geographic Information Systems Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f316749%2flandsat-8-reflectance-values%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
Read the Landsat users manual, it clearly states that level-1 reflectance values are scaled to 16-bit, which is consistent with what your observed data range. If you want a 0-1 just rescale the data.
– Jeffrey Evans
yesterday
Thank you @JeffreyEvans
– Perro
yesterday