Instrument Pixel Co-ordinates and Measurement Times from AATSR Products
Because of the conical scanning geometry of the AATSR instrument, measured AATSR instrument pixels lie on a series of curves defined by the intersection of the scan cone with the surface of the Earth. In order to present the data on a rectangular grid, AATSR Level 1B processing includes a regridding stage in which the measured instrument pixels are relocated by migrating each one to a nearby image position. The image pixel positions form a quasi-Cartesian grid centred on the satellite ground track.
As a result, the image pixels in the full resolution products ATS_TOA_1P and ATS_NR__2P are displaced slightly from their measured positions. This displacement does not exceed the 1 km resolution of the instrument in either co-ordinate, and so is not significant for the many applications for which the surface is relatively homogeneous. For example, over the sea the brightness temperatures and sea surface temperature are in general slowly varying on this scale. However, for some applications, in particular studies of land surface temperature in regions where the surface characteristics are highly variable on scales shorter than 1 km, the displacement may be significant.
Historically, the ATSR product set included ungridded products containing the instrument pixel geolocation. The AATSR Prototype Processor still produces ungridded products, but these are not part of the ESA product set. Nevertheless, the information is available in the ESA products, and the purpose of this note is to explain how it can be recovered.
Firstly, we explain how the x and y co-ordinates of the instrument pixels can be recovered from the Scan Pixel x and y Annotation Data Set (ADS). Given these values it is then possible to recover the instrument pixel latitude and longitude by interpolation in the geolocation ADS.
It is also possible to derive an exact measurement time for each pixel. Although each image row in the gridded product includes a time field, this does not refer to the exact time at which the pixels on the row were measured. Owing to the scanning geometry the measurement times of the pixels in an image row cover a finite range, and the time field (dsr_time in EnviView) actually represents the time at which the nadir pixel was measured. In particular the nadir and forward view measurements of a given point on the ground differ in time by up to 150 s, although the dsr_time fields on the corresponding records will be the same. This difference may not be significant for many purposes, but it is as well to be aware of it. This note explains how the exact measurement time can be determined if required along with the x and y co-ordinates.
Table 1 shows the structure of the AATSR Level 1b Gridded Brightness Temperature and Reflectance (GBTR) product. The Data Sets used in the derivation of the instrument pixel co-ordinates are highlighted in colour; the colours correlate with the subsequent diagrams illustrating the steps in the calculation.
2 Derivation of Instrument Pixel Co-ordinates
The instrument pixel geolocation must be reconstructed via the scan pixel x and y co-ordinates. However, the procedure is rather involved, while as explained below a crucial piece of information is not present in the Level 1B and Level 2 gridded products, and must be supplied separately. The outline of the procedure is as follows.
Step 1: Identify the instrument scan and pixel indices from the Scan and Pixel Number ADS for the appropriate (nadir or forward) view.
To begin with, we define the indexing. Define scan and pixel indices s, p for the instrument pixels measured by AATSR. The scan number s is simply the number of the instrument scan (equivalent to the number of the instrument source packet) counting from an origin close to the start of the product. In fact (for a somewhat technical reason that will not be explained here) the first instrument scan contributing to a full orbit product is numbered s = 32.
The absolute pixel number p is the number of the pixel in the measured scan; AATSR measures 2000 pixels per scan. In fact not all of these pixels are telemetered to the ground (because many of them fall inside the instrument housing), but only those corresponding to the nadir and forward views (and to the black body and VISCAL pixels). However, the Scan and Pixel Number ADS contains the absolute pixel number p of the instrument pixels corresponding to the regridded image pixels.
Let us also define indices i, j for the image pixels, where i is the along-track index (essentially the number of the product record, counting from zero) and j (0 to 511) is the index of the pixel in the record. Now the Scan and Pixel Number ADS are sampled once per granule, where a granule is defined as 32 consecutive rows of image data, and so the first record of the ADS corresponds to MDS record 0, the second to MDS record 32, and so on.
Table 1: GBTR Product Structure
Consider a given image pixel i, j. Calculate the granule index ig = integer part of [i/32], and i' = i 32 ig, and find record ig of the relevant ADS (counting from 0). If i is an exact multiple of 32 (so i' = 0) then ADS record ig contains the scan and pixel numbers for the pixels in row i. In the notation used by EnviView (1) s = s0 = instr_scan_num[j] (2) p = pix_num[j] Otherwise (3) s = instr_scan_num[j] + i' (4) p = pix_num[j] Of course use the ADS appropriate to the view. If you are working with a nadir view pixel, use the Scan and Pixel Number Nadir View ADS, or for a forward view pixel use the Scan and Pixel Number Forward View ADS. Figure 1 shows the logical relationship for the nadir view.
Figure 1: Extract instrument scan and pixel indices from the ADS appropriate to the view.
Step 2: Use the indices s and p found in Step 1 to determine the x and y co-ordinates of the instrument pixel from the Scan Pixel x and y ADS.
Each record of this ADS corresponds to one instrument source packet, or instrument scan, and contains the scan number s in the field instr_scan_num at the start of the record. (Throughout we are using the names defined by EnviView for the product fields, but note that we are numbering the data set records from 0, whereas EnviView numbers records from 1.) However, the ADS does not contain every scan, but is sampled once per 32 scans.
Each record of the ADS contains 99 pairs of x-y co-ordinates in 2 arrays tie_pix_x and tie_pix_y of 99 elements each. Essentially (with a slight modification) these represent the co-ordinates of every 10th pixel in the nadir and forward views, arranged according to their relative pixel indices. When the earth view pixels are unpacked from the source packet, they are separated into two sets of buffer arrays, one for each view, and these arrays are indexed by relative indices pn, pf for the nadir and forward views respectively. There are 575 elements in the nadir view array and 391 in the forward view array, so pn runs from 0 to 574 and pf runs from 0 to 390. (In fact the AATSR source packet contains only 555 nadir view pixels and 371 forward view pixels, but the arrays were declared slightly oversize in case of changes in the pixel map.)
The x-y co-ordinates are supplied for every 10th pixel in the scan; that is, for the pixels pn = 0, 10, 20, 570, 574 in the nadir view (note the short interval at the end) and pixels pf = 0, 10, 20, 390 in the forward view. This is (58 + 1 + 40) = 99 pixels in all. Co-ordinates of intermediate pixels must be calculated by interpolation. The above set of indices is available in the specific product header, in the fields xy_tie_points_pixel_num[0:98].
What the product does not define is the relationship between the relative pixel indices pn, pf, and the absolute pixel number p calculated at Step 1. This is the missing piece of information mentioned previously.
The relationship is:
(5) For nadir view pixels, p = pn + first_nadir_pixel_number (pn = 0, 574).
(6) For forward view pixels, p = pf + first_forward_pixel_number (pf = 0, 390). The parameters first_nadir_pixel_number and first_forward_pixel_number can be found in the Level 1B Characterisation File ATS_CH1_AX; their values are
(7) first_nadir_pixel_number = 213
(8) first_forward_pixel_number = 1305
Indices s and p were calculated in Step 1. Given s, then if s0 is the scan number of the first record of the ADS, we expect the tie scan corresponding to or preceding scan s to be at record numbered by sg = integer part of[(s s0)/32] and this should have
(9) instr_scan_num = 32sg + s0.
This should be checked, because it might not be true if there are data gaps, in which case it will be necessary to search for the correct ADS record.
Having identified the correct instrument scan, calculate the relative pixel index from the above equations. For example, if the pixel in question is from the nadir view, calculate
(10) pn = p - first_nadir_pixel_number
then find the x and y co-ordinates by linear interpolation between the adjacent tie pixels. Thus if pn 0 = integer part of pn/10,
(11) pixel_x = (1 w)tie_pix_x[pn 0] + wtie_pix_x[pn 0 + 1]
where w = (pn/10 pn 0), and similarly for tie_pix_y. Note that modification of equation 11 is required for the final short interval between nadir view tie points, when pn > 570. In this case the expression for the weight w should be modified to read w = (pn - 570)/4.0.
If s corresponds to a tie scan (i.e. if the ADS record has instr_scan_num = s) these are the required x, y coordinates of the pixel. If not, repeat the interpolation for ADS record sg + 1 and then interpolate linearly with respect to scan number between the pixel co-ordinates.
The sampling time per pixel can also be derived at this stage; having extracted the instrument scan and pixel number from the relevant ADS the corresponding instrument scan time can be extracted from the scan pixel x and y ADS. If the scan number s corresponds to a granule row the scan time is obtained directly from the dsr_time field of the corresponding record ADS numbered sg as before. If not, then
(12) dsr_time(s) = dsr_time[sg] + 0.15(s 32sg s0)
in seconds, since the period of a single rotation of the scan mirror is 0.15 seconds.
This is the UTC of the start of the scan, and is therefore a good approximation to the measurement time of all the pixels on that scan. An exact expression for the measurement time of the pixel is (scan time) + (absolute pixel number - 1)*0.15/2000 second, with a possible systematic bias if the scan time does not correspond to absolute pixel number 1.
Note: This gives the UTC of the pixel, but it is then a simple matter to convert to local time by correcting for the longitude.
Figure 2: Pixel co-ordinates are derived by interpolation in the Scan Pixel x and y ADS
Step 3: Interpolate latitude and longitude to the x-y co-ordinates just found.
A description of how to interpolate the Geolocation ADS to find the latitude and longitude of an image pixel can be found in Appendix A of the AATSR FAQ document  on the ENVISAT website. Although it was written with the interpolation to image pixel co-ordinates in mind, the generalisation to arbitrary x and y co-ordinates should be obvious.
Figure 3: Pixel latitude and longitude are derived by interpolation in the Geolocation ADS
 AATSR FAQ