|
| 1 | +<!-- |
| 2 | + ~ Copyright (C) 2010 Brockmann Consult GmbH ([email protected]) |
| 3 | + ~ |
| 4 | + ~ This program is free software; you can redistribute it and/or modify it |
| 5 | + ~ under the terms of the GNU General Public License as published by the Free |
| 6 | + ~ Software Foundation; either version 3 of the License, or (at your option) |
| 7 | + ~ any later version. |
| 8 | + ~ This program is distributed in the hope that it will be useful, but WITHOUT |
| 9 | + ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 10 | + ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| 11 | + ~ more details. |
| 12 | + ~ |
| 13 | + ~ You should have received a copy of the GNU General Public License along |
| 14 | + ~ with this program; if not, see http://www.gnu.org/licenses/ |
| 15 | + --> |
| 16 | + |
| 17 | +<html> |
| 18 | +<head> |
| 19 | + <title>SNAP Data Processors - IdePix AATSR Cloud Shadow</title> |
| 20 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| 21 | + <link rel="stylesheet" href="../style.css"> |
| 22 | +</head> |
| 23 | + |
| 24 | +<body> |
| 25 | +<table class="header"> |
| 26 | + <tr class="header"> |
| 27 | + <td class="header"> |
| 28 | + IdePix AATSR Cloud Shadow Algorithm |
| 29 | + </td> |
| 30 | + <td class="header" align="right"><a |
| 31 | + href="nbdocs://org.esa.snap.snap.help/org/esa/snap/snap/help/docs/general/overview/SnapOverview.html"><img |
| 32 | + src="../images/snap_header.jpg" border=0></a> |
| 33 | + </td> |
| 34 | + </tr> |
| 35 | +</table> |
| 36 | + |
| 37 | +<h3>Algorithm Description</h3> |
| 38 | +<h4>North Direction</h4> |
| 39 | +<p>As all calculations of the shadow are translated to the geometry of the pixel grid, it is necessary to calculate the |
| 40 | + north direction (also called orientation or bearing) for each pixel individually. |
| 41 | + The orientation for a pixel (i,j) is derived from the neighboring pixel (i, j-1) and (i, j+1) from pixel-geocoded |
| 42 | + location:</p> |
| 43 | +<p><img src="images/eq001_orientation.png"></p> |
| 44 | +<h4>Defining a cloud mask</h4> |
| 45 | +The following cloud flags have been combined in a cloud mask: <br> |
| 46 | +Cloud_in.visible (bit 0), cloud_in.gross_cloud (bit 7), cloud_in.thin_cirrus (bit 8) and the cloud_in.medium_high (bit |
| 47 | +9). |
| 48 | +<h4>Adjustment of Sun Zenith Angle for Elevated Objects</h4> |
| 49 | +Under tilted view (view zenith angle > 0°) elevated objects of unknown height like clouds are projected along the line |
| 50 | +of view on the surface, so that their apparent location differs from the actual position over ground (nadir view). |
| 51 | +If view and sun azimuth angle are positioned in the same halfspace, both left or right of the nadir line (center line of |
| 52 | +grid) in the projected grid, <code>x_tx>0 (VAA<sup>*</sup>180°)</code>, <code>SAA<sup>*</sup>>180°</code> or <code>x_tx<0 |
| 53 | + (VAA<sup>*</sup><180°)</code>, |
| 54 | +<code>SAA*<180°</code> (angles are corrected by |
| 55 | +orientation), the geometry of the apparent sun zenith angle which causes the shadow position can be described in the |
| 56 | +following way: |
| 57 | +From |
| 58 | +<p><img src="images/eq002_apparentSza_1.png"></p> |
| 59 | +follows |
| 60 | +<p><img src="images/eq002_apparentSza_2.png"></p> |
| 61 | +<p>For view and sun direction in opposite directions <code>(x_tx>0 (VAA<sup>*</sup>>180°)</code>, <code>SAA<sup>*</sup><180°</code> |
| 62 | + or |
| 63 | + <code>x_tx<0 (VAA<sup>*</sup><180°)</code>, <code>SAA<sup>*</sup>>180°</code>, angles corrected for orientation) |
| 64 | + follows accordingly:</p> |
| 65 | +<p><img src="images/eq002_apparentSza_3.png"></p> |
| 66 | + |
| 67 | +<p>The sun azimuth angles are corrected by the orientation (North direction) at the current cloud pixel, so that they |
| 68 | + represent the azimuth angle in the projected grid coordinates with 0° in upwards direction on the grid. The view |
| 69 | + azimuth angle is replaced by the tie point grid x_tx, which gives the distance from the nadir line at the center |
| 70 | + position of a pixel. It changes its sign from left of nadir x_tx <0 to right of nadir x_tx>0. This is the easiest |
| 71 | + way to find the viewing direction (without interpolation and corrections), and it allows the algorithm to process |
| 72 | + subsets of the swath width.</p> |
| 73 | +<table align="center"> |
| 74 | + <tr> |
| 75 | + <td><img src="images/geoCorrSZA_1.png"></td> |
| 76 | + <td><img src="images/geoCorrSZA_2.png"></td> |
| 77 | + </tr> |
| 78 | + <tr> |
| 79 | + <td align="center">Geometrical correction for apparent sun zenith angle (VAA>180°, SAA<180° or VAA<180°, |
| 80 | + SAA>180°) |
| 81 | + </td> |
| 82 | + <td align="center">Geometrical correction for apparent sun zenith angle (VAA>180°, SAA>180° or VAA<180°, |
| 83 | + SAA<180°) |
| 84 | + </td> |
| 85 | + </tr> |
| 86 | +</table> |
| 87 | + |
| 88 | +<h4>Determining the search path in illumination direction</h4> |
| 89 | +<p>Starting from a cloud pixel, which is defined by the cloud flag expression, the illumination path is projected on the |
| 90 | + grid and all pixels up to a maximum distance are identified which are intersected by this path.</p> |
| 91 | +<p>With the adjusted sun zenith angle θ<sup>*</sup><sub>S</sub> and the azimuth angles adjusted for North |
| 92 | + direction, so that they represent |
| 93 | + the azimuth on the grid against the Y-direction, the geometry of the illumination path on the projection grid can be |
| 94 | + fully described.</p> |
| 95 | +<p>Orientation (North direction) at pixel [i, j] is calculated by the positions at neighboring pixels<br> |
| 96 | + <code>p[i, j-1] = (lon1, lat1) and p[i, j+1]= (lon2, lat2)</code>. </p> |
| 97 | +<p align="center"><img src="images/eq003_searchPath_1.png"></p> |
| 98 | +<p>The theoretical maximum length of the projected path in grid coordinates is defined by the range of surface elevation |
| 99 | + and the adjusted angles in x and y direction (spatial resolution 1km in AATSR products):</p> |
| 100 | +<p align="center"><img src="images/eq003_searchPath_2.png"></p> |
| 101 | +<p>The relative grid coordinates of the start point at the cloud pixel at set to <code>(x0, y0) = (0, 0)</code>.</p> |
| 102 | +<p>As the spatial resolution of the grid is quite coarse with regard to the expected cloud top heights, which are |
| 103 | + currently fixed at 6km, the maximum extent of the search path is defined as </p> |
| 104 | +<p align="center"><img src="images/eq003_searchPath_3.png"></p> |
| 105 | +<p>With <code>sign(x)</code> defined as: for <code>x>=0, sign(x)=1; for x<0, sign(x)=-1</code>.<br> |
| 106 | + For all integer value combinations between <code>(x0,y0)</code> and <code>(x1,y1)</code>, the center position of the |
| 107 | + pixel is set to relative grid coordinates <code>+ (0.5, 0.5)</code>. The distance from each pixel center to the |
| 108 | + theoretical line of illumination is calculated. If the distance is smaller than <code>0.5*√2</code>, the pixel |
| 109 | + area is intersected by the line, and the pixel is potentially a shadow pixel.</p> |
| 110 | +<p align="center"><img src="images/eq003_searchPath_4.png"></p> |
| 111 | +<p>For the intersected pixels (distance < <code>0.5*√2</code>, relative grid coordinates x, y) the theoretical |
| 112 | + height of the illumination path is calculated as:</p> |
| 113 | +<p align="center"><img src="images/eq003_searchPath_5.png"></p> |
| 114 | +<p>Where the theoretical line intersects the surface defined by its altitude, the shadow can be found. The discreet |
| 115 | + nature of the grid calls for a height threshold, so that shadow pixels can be identified:</p> |
| 116 | +<p align="center"><img src="images/eq003_searchPath_6.png"></p> |
| 117 | +<p>The cloud shadow flag is raised for all the pixels of the path, which are not masked as cloud and the theoretical |
| 118 | + height intersects with the surface elevation:</p> |
| 119 | +<p align="center"><img src="images/eq003_searchPath_7.png"></p> |
| 120 | + |
| 121 | +<h3>Algorithmic Limitations</h3> |
| 122 | +<h4>Cloud Top Height</h4> |
| 123 | +<p>The AATSR Level-1 product does not provide clooud top height information. Therefor this values is predefined to a |
| 124 | + value of 6000 meter. The processor interface allows to adjust this value for each processed scene.</p> |
| 125 | + |
| 126 | +<h4>Limited to Daytime</h4> |
| 127 | +<p>The cloud shadow calculation is limited to the daytime. As daytime is the part of the orgbit considered where SZA<85° |
| 128 | + and the confidence_in flag day (bit value 10) is raised.</p> |
| 129 | +<br> |
| 130 | +<hr> |
| 131 | +</body> |
| 132 | +</html> |
0 commit comments