Re: True-Color Modis Image [message #67480 is a reply to message #67475] |
Thu, 30 July 2009 20:46   |
jameskuyper
Messages: 79 Registered: October 2007
|
Member |
|
|
David Fanning wrote:
> Folks,
>
> I am trying to create a true-color MODIS image of
> the sort shown on this page:
>
> http://rapidfire.sci.gsfc.nasa.gov/subsets/?mosaic=Arctic
>
> I have been using MODIS bands 1, 4, and 3 to represent
> the R, G, and B components of a 24-bit image. But my
> images don't look like those. In fact, they look almost
> like a gray-scale image. :-(
>
> Am I missing some "mixing" algorithm that combines
> these three channels in some other way? Anyone have
> any insight into this? I am using MOD02 files and
> just scaling each band with BytScl after I regrid
I'm the person responsible for maintenance of the code that creates
those files. I didn't write the original code, and it has required very
little maintenance in the five years I've been responsible for it. I am,
by training, a physicist, not a remote sensing expert, but of necessity
I've learned a few things about this subject.
Simply using BytScl won't work. You have to get each band correctly
scaled relative to the other two bands to make it come out right.
The MOD02 files have HDF Scientific Data Sets (SDSs) with names that end
in "_RefSB" for the reflective bands or "_Emissive" for the emissive
bands, which contain what we call scaled integer values. For each band
there's a scaling factor and an offset that must be applied to those
numbers to get the radiances in Watts/meter^2/micrometer/steradian. The
scaling factors and offsets are stored in SDS attributes named
radiance_scales and radiance_offsets. the formula is:
radiance[frame,scanline,band] = radiance_scales[band]*
(scaled_integer[frame,scanline,band] - radiance_offsets[band])
For the reflective bands, you can also calculate the reflectance product
rho*cos(theta), where rho is the Bidirectional Reflectance Factor, and
theta is the solar incidence angle. For this purpose, you use the
reflectance_scales and reflectance_offsets SDS attributes. The formula is:
reflectance[frame,scanline,band] = reflectance_scales[band]*
(scaled_integer[frame,scanline,band] - reflectance_offsets[band])
Note that these are top-of-atmosphere radiances and reflectances; if you
want surface radiances or reflectances you'll need to apply atmospheric
corrections to these values
Getting the scaling right is just the beginning, it isn't the whole
issue - but it does help. People who are experts in remote sensing have
produced much better pictures than I do from the same data; I'm not sure
how they do it.
For information about this and many other matters of importance for
understanding the MODIS L1B products, see
<http://www.mcst.ssai.biz/mcstweb/L1B/product.html>. In particular,
please look the "MODIS Level 1B Product User's Guide". If you have any
questions about this or any other MODIS Level 1 issues, feel free to
contact me in my official capacity at James.R.Kuyper@nasa.gov.
|
|
|