See Also: MIAVHRR, GDB, AVHRRAD, AVHRCOR, SST
Name Prompt Count Type FILE Database File Name 1-64 Char DBIC Database Input Channel List 0-2 Integer DBOC Database Output Channel List 1-1 Integer AVHRRSEG AVHRR Calibration/Orbit Text Segment 0-1 Integer
EASI> FILE="filespec"
EASI>DBIC= | Default to 1,2 EASI>DBIC=3,4
EASI> DBOC=6
EASI> AVHRRSEG = 4
The resulting NDVI value is written out to the channel DBOC in the same file. This channel should be of 16 bit, or 32 bit real types to avoid truncating the NDVI result.
The formula used incorporates both time-dependent radiometric calibration and the NDVI computation itself. The NDVI result is then scaled to approximate the results of the GeoComp system, although final results will differ due to different approaches to radiometric calibration. Normally the user should use FIMPORT or MIAVHRR to import the raw AVHRR data. An extra (6th) channel can then be added to the resulting PCIDSK file if desired. Then the NDVI task can be used to compute the NDVI channel. The NDVI task itself is not sensitive to image geometry, and so can be run before or after geometric correction of an AVHRR scene.
The radiometric calibration which is performed requires various coefficients, the values of which change with the satellite, image date, and channel (1 or 2). In particular, the NDVI task has been set up with coefficients which are valid only for NOAA-14 and AVHRR imagery from 1997. However, the NDVI task is implemented as an EASI script, and so it should be easy for users to modify the coefficients and even the equations as desired. The script is $PCIHOME/pro/NDVI.EAS. One of the purposes of this script is to allow users to make modifications where appropriate. It is impractical for PCI to prepare a script which handles every situation because the radiometric calibration coefficients vary over time.
Note that NDVI.EAS reads the input file's AVHRR text segment in order to extract the image year and day-of-year. These quantities are used to compute the number of days since the launch of the satellite for radiometric calibration. If the AVHRR text segment is missing this information, it will be necessary to manually edit the text segment and enter this information before running NDVI. Text segment editing can be achieved using the TEXWRIT and TEXREAD programs. When FIMPORT or MIAVHRR is used to import raw AVHRR data, an AVHRR text segment is automatically created.
The equation for computing apparent sensor radiance is:
Lstar(i) = (D(i) - O(i,t)) / G(i,t)
where: i = channel number (1 or 2)
t = number of days since the launch of the satellite
D(i) = raw digital signal level (counts)
O(i,t) = calibration offset coefficient (counts)
G(i,t) = calibration gain coefficient (counts/W m^-2 sr^-1 um^-1)
Lstar(i) = apparent sensor radiance (W m^-2 sr^-1 um^-1)
The O(i,t) and G(i,t) coefficients can be computed as follows:
G(i,t) = A * t + B
O(i,t) = C * t + D
where: A is in units of counts/radiance/day
B is in units of counts/radiance
C is in units of counts/day
D is in units of counts
The values of the A, B, C, and D coefficients vary with the satellite,
channel number (1 or 2), and year.Note that the NDVI task does not actually have a radiometric calibration step whereby apparent sensor radiances are generated as (intermediate) channel values. Rather, the radiometric calibration computations are embedded directly within the NDVI computation process. This is done to avoid the loss of precision inherent in writing radiance values into channels of integer type.
Radiometric calibration is performed for channels 1 and 2 only. The thermal AVHRR channels (3, 4, and 5) are not processed at all.
References:
Teillet, P.M., "An Algorithm for the Radiometric and Atmospheric Correction of AVHRR Data in the Solar Reflective Channels", Remote Sensing of the Environment 41:185-195, 1992.
Step 1 - Radiometric calibration Assuming that channels 1 and 2 contain raw digital signal level counts, we apply the radiometric calibration procedure described earlier in order to obtain apparent sensor radiances (Lstar(i)). Step 2 - Compute apparent sensor reflectance Given apparent sensor radiance as input, compute apparent sensor reflectance (RHOstar(i)) as follows:
RHOstar(i) = [(PI * Ds^2) / (E0(i) * cos(THETAs))] * Lstar(i)
where: PI = 3.14159...
Ds = Earth-Sun Distance in A.U. (approximately 1)
E0 = exo-atmospheric solar irradiance (W/m^2/str/um)
= 1605.4 for channel 1 (NOAA-14)
= 1028.7 for channel 2 (NOAA-14)
THETAs = solar zenith angle (degrees)
RHOstar(i) = apparent sensor reflectance (%)
Step 3 - Compute NDVI Given apparent sensor reflectance as input, compute the NDVI channel as follows:
NDVI = (RHOstar(2) - RHOstar(1)) / (RHOstar(2) + RHOstar(1))
NDVI values range from -1 to +1. Step 4 - Scale the NDVI values The NDVI values are scaled to the range, 0 to 20000, using this equation:
Scaled NDVI = (1 + NDVI) * 10000
This scaling is used to approximate the GeoComp NDVI pseudo-channel.In NDVI.EAS, steps 2 and 3 are actually combined into a single step using this equation:
NDVI = (E0(1)*Lstar(2)-E0(2)*Lstar(1)) / (E0(1)*Lstar(2)+E0(2)*Lstar(1))Notice that the dependence on the solar zenith angle and the Earth-Sun distance is removed by combining these two steps into a single equation.
More information about the GeoComp system is available on the WWW:
http://www.ccrs.emr.ca/gcnet/guides/geocomp/geocomp.html
Import a scene, add an extra channel, and then compute the NDVI channel.
EASI> fili = "avhrr.raw" EASI> filo = "avhrr.pix" EASI> dbiw = EASI> run fimport | Import AVHRR scene EASI> file = "avhrr.pix" EASI> pcival = 0,0,0,1 EASI> pciop = "ADD" EASI> run pcimod | Add channel for NDVI EASI> dbic = 1,2 EASI> dboc = 6 EASI> avhrrseg = EASI> run ndvi | Compute NDVI into channel 6Example 2
Import a scene, geometrically correct it, and then compute the NDVI channel. Note that NDVI can also be computed before geometric correction.
EASI> fili = "avhrr.raw" EASI> filo = "avhrr.pix" EASI> dbiw = EASI> run fimport | Import AVHRR scene EASI> fili = "avhrr.pix" EASI> filo = "geocorr.pix" EASI> dbic = 1, 2, 3 EASI> dboc = 1, 2, 3 EASI> avhrrseg = 3 EASI> pixres = 4000 EASI> resample = EASI> memsize = 20 EASI> timemult = EASI> run avhrcor | Geometric correction EASI> fili = "avhrr.pix" EASI> filo = "geocorr.pix" EASI> dbsl = 3 EASI> dbos = EASI> run iia | Transfer AVHRR text segment EASI> dbic = 1,2 EASI> dboc = 3 EASI> avhrrseg = EASI> run ndvi | Compute NDVI into channel 3