Landsat 5 tm reflectance product images are delivered as signed 16 bit images, why is this preferred to unsigned 8 bit that the DN's are stored as level 1 products for the same satellite? Look at table 6-1 on page 19 of the following document: https://landsat.usgs.gov/sites/default/files/documents/ledaps_product_guide.pdf.
-
1$\begingroup$ It may be nice to possibly edit your question to include a link to a Landsat page showing this usage... it's likely not 100% vital, but it provides background for casual users wishing to understand your question better (also, you could consider even adding links/reasoning about signed/unsigned ints... I certainly understand why you ask the question, but because this community is for people interested in earth sciences, it may see folks who aren't as computer-oriented, and so could make the question more approachable/wide-reaching) :-) Wish I knew the answer, it's an interesting question $\endgroup$– JeopardyTempestNov 6, 2018 at 10:39
-
1$\begingroup$ Not knowing a ton about the topic, I wonder if maybe they use -999 or such to indicate some kind of errors or extra information? And after all... the data types are the same size aren't they? If so, perhaps it was just a random choice of the more typical int, overlooking the "clearer" option of making it unsigned? $\endgroup$– JeopardyTempestNov 6, 2018 at 10:41
-
1$\begingroup$ Thanks, added in some edits as you suggested. $\endgroup$– Chayan LahiriNov 7, 2018 at 0:09
-
1$\begingroup$ What is DN? Please expand the abbreviation. I'd then have to ask whether two different hardware components are used to capture reflectance images versus DNs? $\endgroup$– Jeffrey J WeimerNov 10, 2018 at 23:27
-
1$\begingroup$ The file format used to deliver the data are geotiff files. $\endgroup$– Chayan LahiriNov 11, 2018 at 1:39
1 Answer
Because the surface or top-of-the-atmosphere products are not raw data. Atmospheric corrections have been applied to the raw data and those corrections have been done with a precision that can't be properly captured in 8-bit numbers. You can round data outputs to 8-bits, but there would be information loss. Some bands, like atmospheric opacity can be calculated by the model with high precision, and you need a 16-bit number to store such precise values. Although the values are stored as 16-bit integers they are floating point numbers, and the scale factor is provided in the same table you mention.
I also think that it have to do with having a coherent data format across all the Landsat derived products, including Landsat 8 that have the OLI sensor with a spectral resolution (or bit depth) of 12-bit, that means that the intensity of each pixel is recorded with a number between 0 and 4095, something that provides much more information than the traditional 8-bit (Used by Landsat 7 and before), were intensity is recorded with values between 0 and 255. Additional bits give more information and is specially useful to distinguish details in areas with low contrast, like shadows, water or snow fields. For example, all the shades of white in a snow field that corresponded to just one color in Landsat 7, can correspond to 16 different colors in Landsat 8.
Data is distributed in 16-bit files because computers are optimized to deal with 8, 16 or 32 bit numbers, and most software reads images with those bit depths. Therefore, a 12-bit file would not be very compatible, and the smaller standard file that can store all the information of a 12-bit image is a 16-bit data file.
The bands that use 8-bits in the table 6-1 that you mention are quality control bands, that contain information that can be stored in 8 bits without any loss in performance.
-
1$\begingroup$ Absolutely correct. I would just add that integer is preferred to floating point as the float16 would store around 3 decimal digits (11b), thus to represent a 12 bit precision recorded signal, you would need to use a float32, which is at least double the size of an int16 in memory. $\endgroup$ Mar 2, 2019 at 2:29