Previously, I discussed this problem in this platform, but I am unable to short out this problem as per discussion directive.Right now, I am specifying the persisting problem for further solutions.
I am trying to write simple trigonometric calculation (code line 297-324) using numpy but it gave me one error.
Traceback (most recent call last):
File "F:\DB_test_data\python_script\FINAL_DB.py", line 297, in <module>
cosSenZ = np.cos(senzen * np.pi / 180)
AttributeError: 'Raster' object has no attribute 'cos'
Here uploading MY_CODE( trigonometric calculation(code line 297-324)) and test data for further checking. Please look at this matter.
<SPAN class="comment token">#-------------------------------------------------------------------------------</SPAN>
<SPAN class="comment token"># Name: module1</SPAN>
<SPAN class="comment token"># Purpose:</SPAN>
<SPAN class="comment token">#</SPAN>
<SPAN class="comment token"># Author: HONEY</SPAN>
<SPAN class="comment token">#</SPAN>
<SPAN class="comment token"># Created: 18-06-2019</SPAN>
<SPAN class="comment token"># Copyright: (c) HONEY 2019</SPAN>
<SPAN class="comment token"># Licence: <your licence></SPAN>
<SPAN class="comment token">#-------------------------------------------------------------------------------</SPAN>
<SPAN class="keyword token">import</SPAN> datetime
start <SPAN class="operator token">=</SPAN> datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>now<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'start run: %s\n'</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN>start<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">import</SPAN> arcpy <SPAN class="punctuation token">,</SPAN>os <SPAN class="punctuation token">,</SPAN>sys<SPAN class="punctuation token">,</SPAN>csv<SPAN class="punctuation token">,</SPAN>errno
<SPAN class="keyword token">from</SPAN> arcpy <SPAN class="keyword token">import</SPAN> env
<SPAN class="keyword token">from</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>sa <SPAN class="keyword token">import</SPAN> <SPAN class="operator token">*</SPAN>
<SPAN class="keyword token">import</SPAN> datetime
<SPAN class="keyword token">import</SPAN> re
<SPAN class="keyword token">import</SPAN> glob
<SPAN class="keyword token">import</SPAN> itertools
<SPAN class="keyword token">import</SPAN> math
<SPAN class="keyword token">import</SPAN> numpy <SPAN class="keyword token">as</SPAN> np
arcpy<SPAN class="punctuation token">.</SPAN>CheckOutExtension<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Spatial'</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
cellsize <SPAN class="operator token">=</SPAN> <SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip\\MOD02HKM_A2017001_0530_NDVI_AA.img"</SPAN>
<SPAN class="comment token">#Call cloud mask images from directory</SPAN>
d1<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip"</SPAN>
CLDMASK <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d1 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.Aerosol_Cldmask_Land_Ocean-Aerosol_Cldmask_Land_Ocean.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
CLDMASK<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>CLDMASK<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the CLDMASK raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The CLDMASK raster files was opened successfully'</SPAN>
<SPAN class="comment token">#Call AOD images from directory</SPAN>
d2 <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip"</SPAN>
AOD <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d2 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*Corrected_Optical_Depth_Land_2-Corrected_Optical_Depth_Land.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
AOD<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>AOD<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the AOD raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The AOD raster files was opened successfully'</SPAN>
<SPAN class="comment token">#Call MOD02HKM_TOA-B1_TOA-B2 images from directory</SPAN>
d3<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip"</SPAN>
TOA_B1 <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d3 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*EV_500_RefSB_1-EV_500_RefSB.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
TOA_B1<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>TOA_B1<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the TOA_B1 raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The TOA_B1 raster files was opened successfully'</SPAN>
TOA_B2 <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d3 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*EV_500_RefSB_2-EV_500_RefSB.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
TOA_B2<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>TOA_B2<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the TOA_B2 raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The TOA_B2 raster files was opened successfully'</SPAN>
<SPAN class="comment token">#Call MOD03 (Height,SenZen,SenAzm,SolZen,SolAzm) images from directory</SPAN>
d4<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip"</SPAN>
Height <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d4 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.Height-Height.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
Height<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>Height<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the Height raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The Height raster files was opened successfully'</SPAN>
SenZen <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d4 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.SensorZenith-SensorZenith.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
SenZen<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>SenZen<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the SenZen raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The SenZen raster files was opened successfully'</SPAN>
SenAzm <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d4 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.SensorAzimuth-SensorAzimuth.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
SenAzm<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>SenAzm<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the SenAzm raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The SenAzm raster files was opened successfully'</SPAN>
SolZen <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d4 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.SolarZenith-SolarZenith.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
SolZen<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>SolZen<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the SolZen raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The SolZen raster files was opened successfully'</SPAN>
SolAzm <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d4 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.SolarAzimuth-SolarAzimuth.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
SolAzm<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>SolAzm<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the SolAzm raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The SolAzm raster files was opened successfully'</SPAN>
<SPAN class="comment token">#Call MOD09 images from directory</SPAN>
d5<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip"</SPAN>
Sur_B1 <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d5 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.500m_Surface_Reflectance_Band_1-500m_Surface_Reflectance_Band_1.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
Sur_B1<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>Sur_B1<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the Sur_B1 raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The Sur_B1 raster files was opened successfully'</SPAN>
Sur_B2 <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d5 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.500m_Surface_Reflectance_Band_2-500m_Surface_Reflectance_Band_2.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
Sur_B2<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>Sur_B2<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the Sur_B2 raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The Sur_B2 raster files was opened successfully'</SPAN>
Sur_B3 <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>d5 <SPAN class="operator token">+</SPAN> os<SPAN class="punctuation token">.</SPAN>sep <SPAN class="operator token">+</SPAN> <SPAN class="string token">"*.500m_Surface_Reflectance_Band_3-500m_Surface_Reflectance_Band_3.tif"</SPAN><SPAN class="punctuation token">)</SPAN>
Sur_B3<SPAN class="punctuation token">.</SPAN>sort<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>Sur_B3<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the Sur_B3 raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The Sur_B3 raster files was opened successfully'</SPAN>
Land_cover<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip\\LAND_COVER_TYPE_1_Grid_2D.img"</SPAN>
<SPAN class="keyword token">if</SPAN> len<SPAN class="punctuation token">(</SPAN>Land_cover<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">==</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Could not open the Land_cover raster files'</SPAN>
sys<SPAN class="punctuation token">.</SPAN>exit<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'The Land_cover raster files was opened successfully'</SPAN>
outdir<SPAN class="operator token">=</SPAN><SPAN class="string token">"F:\\DB_test_data\\TEST_RAY\\TEST1\\c\\d\\"</SPAN>
cellsize <SPAN class="operator token">=</SPAN> <SPAN class="string token">"F:\\DB_test_data\\VAR2\\TEST_DATA\\Clip\\MOD02HKM_A2017001_0530_NDVI_AA.img"</SPAN>
<SPAN class="keyword token">for</SPAN> i <SPAN class="keyword token">in</SPAN> range<SPAN class="punctuation token">(</SPAN>len<SPAN class="punctuation token">(</SPAN>CLDMASK<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
AA<SPAN class="operator token">=</SPAN>CLDMASK<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">114</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_a:"</SPAN><SPAN class="operator token">+</SPAN> AA<SPAN class="punctuation token">)</SPAN>
BB<SPAN class="operator token">=</SPAN>AOD<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">9</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">120</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_b:"</SPAN><SPAN class="operator token">+</SPAN> BB<SPAN class="punctuation token">)</SPAN>
CC<SPAN class="operator token">=</SPAN>TOA_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">88</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_c:"</SPAN><SPAN class="operator token">+</SPAN> CC<SPAN class="punctuation token">)</SPAN>
DD<SPAN class="operator token">=</SPAN>TOA_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">88</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_d:"</SPAN><SPAN class="operator token">+</SPAN> DD<SPAN class="punctuation token">)</SPAN>
EE<SPAN class="operator token">=</SPAN>Height<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">71</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_e:"</SPAN><SPAN class="operator token">+</SPAN> EE<SPAN class="punctuation token">)</SPAN>
FF<SPAN class="operator token">=</SPAN>SenZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">83</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_f:"</SPAN><SPAN class="operator token">+</SPAN> FF<SPAN class="punctuation token">)</SPAN>
GG<SPAN class="operator token">=</SPAN>SenAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">85</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_g:"</SPAN><SPAN class="operator token">+</SPAN> GG<SPAN class="punctuation token">)</SPAN>
HH<SPAN class="operator token">=</SPAN>SolZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">81</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_h:"</SPAN><SPAN class="operator token">+</SPAN> HH<SPAN class="punctuation token">)</SPAN>
II<SPAN class="operator token">=</SPAN>SolAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">83</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_i:"</SPAN><SPAN class="operator token">+</SPAN> II<SPAN class="punctuation token">)</SPAN>
JJ<SPAN class="operator token">=</SPAN>Sur_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">121</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_j:"</SPAN><SPAN class="operator token">+</SPAN> JJ<SPAN class="punctuation token">)</SPAN>
KK<SPAN class="operator token">=</SPAN>Sur_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">121</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_k:"</SPAN><SPAN class="operator token">+</SPAN> KK<SPAN class="punctuation token">)</SPAN>
LL<SPAN class="operator token">=</SPAN>Sur_B3<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\\"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">121</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="string token">"processing_l:"</SPAN><SPAN class="operator token">+</SPAN> LL<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#######################################################################</SPAN>
<SPAN class="comment token">#Cloud Mask scalling</SPAN>
Scale_factor1 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1.0</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset1 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE <= 0"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>CLDMASK<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> CLDMASK<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
cldmask<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull<SPAN class="operator token">-</SPAN>add_offset1<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor1
<SPAN class="comment token">#AOD scalling</SPAN>
Scale_factor2 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0010000000474974513</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset2 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause<SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -9999"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull2 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>AOD<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>AOD<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
aod<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull2<SPAN class="operator token">-</SPAN>add_offset2<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor2
aod_1 <SPAN class="operator token">=</SPAN> Con<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>aod <SPAN class="operator token">>=</SPAN> <SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">&</SPAN> <SPAN class="punctuation token">(</SPAN>aod <SPAN class="operator token"><=</SPAN> <SPAN class="number token">0.1</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#TOA_B1 Scalling</SPAN>
Scale_factor3 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.000053811826</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset3 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause<SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = 65535"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull3 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>TOA_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>TOA_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
toa_b1<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull3<SPAN class="operator token">-</SPAN>add_offset3<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor3
<SPAN class="comment token">#TOA_B2 Scalling</SPAN>
Scale_factor4 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.00003255546</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset4 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause<SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = 65535"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull4 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>TOA_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>TOA_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
toa_b2<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull4<SPAN class="operator token">-</SPAN>add_offset4<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor4
<SPAN class="comment token">#Height</SPAN>
Scale_factor5 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">1.0</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset5 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -32767"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull5 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>Height<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>Height<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
height<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull5<SPAN class="operator token">-</SPAN>add_offset5<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor5
<SPAN class="comment token">#Sensor Zenith angle</SPAN>
Scale_factor6 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.01</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset6 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -32767"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull6 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>SenZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>SenZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
senzen<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull6<SPAN class="operator token">-</SPAN>add_offset6<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor6
<SPAN class="comment token">#Sensor azimuth angle</SPAN>
Scale_factor7 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.01</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset7 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -32767"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull7 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>SenAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>SenAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
senazm<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull7<SPAN class="operator token">-</SPAN>add_offset7<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor7
<SPAN class="comment token">#solar Zenith angle</SPAN>
Scale_factor8 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.01</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset8 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -32767"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull8 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>SolZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>SolZen<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
solzen<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull8<SPAN class="operator token">-</SPAN>add_offset8<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor8
<SPAN class="comment token">#solar azimuth angle</SPAN>
Scale_factor9 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.01</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset9 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -32767"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull9 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>SolAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>SolAzm<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
solazm<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull9<SPAN class="operator token">-</SPAN>add_offset9<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor9
<SPAN class="comment token"># OutRaster = os.path.join(outdir,'MOD04_L22.{0}.tif'.format("solazm"))</SPAN>
<SPAN class="comment token"># solazm.save(OutRaster)</SPAN>
<SPAN class="comment token">#(MODO9)surface reflectance band 1</SPAN>
Scale_factor_10 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0001</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset_10 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -28672"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull10 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>Sur_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>Sur_B1<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
sur_b1<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull10<SPAN class="operator token">-</SPAN>add_offset_10<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor_10
<SPAN class="comment token">#(MODO9)surface reflectance band 2</SPAN>
Scale_factor_11 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0001</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset_11 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -28672"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull11 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>Sur_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>Sur_B2<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
sur_b2<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull11<SPAN class="operator token">-</SPAN>add_offset_11<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor_11
<SPAN class="comment token">#(MODO9)surface reflectance band 3</SPAN>
Scale_factor_12 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0001</SPAN><SPAN class="punctuation token">)</SPAN>
add_offset_12 <SPAN class="operator token">=</SPAN> float<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">)</SPAN>
whereClause <SPAN class="operator token">=</SPAN> <SPAN class="string token">"VALUE = -28672"</SPAN>
<SPAN class="comment token"># Execute SetNull</SPAN>
outSetNull12 <SPAN class="operator token">=</SPAN> SetNull<SPAN class="punctuation token">(</SPAN>Sur_B3<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>Sur_B3<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> whereClause<SPAN class="punctuation token">)</SPAN>
sur_b3<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">(</SPAN>outSetNull12<SPAN class="operator token">-</SPAN>add_offset_12<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">*</SPAN>Scale_factor_12
<SPAN class="comment token"># Process: Extract by Cloud_Mask</SPAN>
tempEnvironment0 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize <SPAN class="operator token">=</SPAN> <SPAN class="string token">"MAXOF"</SPAN>
toa_bb1<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>toa_b1<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
toa_bb2<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>toa_b2<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
heightt<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>height<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
senzenn<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>senzen<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
senazmm<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>senazm<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
solzenn<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>solzen<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
solazmm<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>solazm<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
sur_b11<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b1<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
sur_b22<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b2<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
sur_b33<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b3<SPAN class="punctuation token">,</SPAN> cldmask<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize <SPAN class="operator token">=</SPAN> tempEnvironment0
<SPAN class="comment token"># # Process: Extract by Mask using AOD less than 0.1 value</SPAN>
tempEnvironment0 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize <SPAN class="operator token">=</SPAN> cellsize
toa_b1<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>toa_bb1<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
toa_b2<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>toa_bb2<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
height<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>heightt<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
senzen<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>senzenn<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
senazm<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>senazmm<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
solzen<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>solzenn<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
solazm<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>solazmm<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
sur_b1<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b11<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
sur_b2<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b22<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
sur_b3<SPAN class="operator token">=</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>sa<SPAN class="punctuation token">.</SPAN>ExtractByMask<SPAN class="punctuation token">(</SPAN>sur_b33<SPAN class="punctuation token">,</SPAN> aod_1<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>cellSize <SPAN class="operator token">=</SPAN> tempEnvironment0
<SPAN class="comment token">#############################################################################</SPAN>
<SPAN class="comment token">#Calculate the scattering angle from Resample MOD03 products</SPAN>
cosSenZ <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>cos<SPAN class="punctuation token">(</SPAN>senzen <SPAN class="operator token">*</SPAN> np<SPAN class="punctuation token">.</SPAN>pi <SPAN class="operator token">/</SPAN> <SPAN class="number token">180</SPAN><SPAN class="punctuation token">)</SPAN>
cosSolZ <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>cos<SPAN class="punctuation token">(</SPAN>solzen <SPAN class="operator token">*</SPAN> np<SPAN class="punctuation token">.</SPAN>pi <SPAN class="operator token">/</SPAN> <SPAN class="number token">180</SPAN><SPAN class="punctuation token">)</SPAN>
sinSenZ <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>sin<SPAN class="punctuation token">(</SPAN>senzen <SPAN class="operator token">*</SPAN> np<SPAN class="punctuation token">.</SPAN>pi <SPAN class="operator token">/</SPAN> <SPAN class="number token">180</SPAN><SPAN class="punctuation token">)</SPAN>
sinSolZ <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>sin<SPAN class="punctuation token">(</SPAN>solzen <SPAN class="operator token">*</SPAN> np<SPAN class="punctuation token">.</SPAN>pi <SPAN class="operator token">/</SPAN> <SPAN class="number token">180</SPAN><SPAN class="punctuation token">)</SPAN>
RelAzm <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>abs<SPAN class="punctuation token">(</SPAN>senazm <SPAN class="operator token">-</SPAN> solazm<SPAN class="punctuation token">)</SPAN>
index <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>where<SPAN class="punctuation token">(</SPAN>RelAzm <SPAN class="operator token">></SPAN> <SPAN class="number token">180.0</SPAN><SPAN class="punctuation token">)</SPAN>
RelAzm<SPAN class="punctuation token">[</SPAN>index<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="number token">360.0</SPAN><SPAN class="operator token">-</SPAN> RelAzm<SPAN class="punctuation token">[</SPAN>index<SPAN class="punctuation token">]</SPAN>
index <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>where<SPAN class="punctuation token">(</SPAN>RelAzm <SPAN class="operator token"><=</SPAN> <SPAN class="number token">180.0</SPAN><SPAN class="punctuation token">)</SPAN>
RelAzm<SPAN class="punctuation token">[</SPAN>index<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="number token">180.0</SPAN><SPAN class="operator token">-</SPAN> RelAzm<SPAN class="punctuation token">[</SPAN>index<SPAN class="punctuation token">]</SPAN>
cosRelA <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>cos<SPAN class="punctuation token">(</SPAN>np<SPAN class="punctuation token">.</SPAN>radians<SPAN class="punctuation token">(</SPAN>RelAzm<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
SctAgl <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>arccos<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="operator token">-</SPAN>cosSolZ <SPAN class="operator token">*</SPAN> cosSenZ<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>sinSolZ <SPAN class="operator token">*</SPAN> sinSenZ<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> cosRelA<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
OutRaster <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>outdir<SPAN class="punctuation token">,</SPAN><SPAN class="string token">'MOD022222.{0}.tif'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"SctAgl"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
SctAgl<SPAN class="punctuation token">.</SPAN>save<SPAN class="punctuation token">(</SPAN>OutRaster<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># # RCR for TOA_BAND_1 and TOA_BAND_2</SPAN>
<SPAN class="comment token"># TOA_BAND_1</SPAN>
B1_ROD <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.00864</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0000065</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.67</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="operator token">**</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="operator token">-</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="number token">3.916</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.074</SPAN> <SPAN class="operator token">*</SPAN> <SPAN class="number token">0.67</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.05</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">0.67</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
Pr1 <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">3.0</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">16.0</SPAN><SPAN class="operator token">*</SPAN>np<SPAN class="punctuation token">.</SPAN>pi<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">1</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN>np<SPAN class="punctuation token">.</SPAN>cos<SPAN class="punctuation token">(</SPAN>SctAgl<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> np<SPAN class="punctuation token">.</SPAN>cos<SPAN class="punctuation token">(</SPAN>SctAgl<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
wr1 <SPAN class="operator token">=</SPAN> <SPAN class="number token">1.0</SPAN>
RayRef_B1 <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>wr1 <SPAN class="operator token">*</SPAN> B1_ROD <SPAN class="operator token">*</SPAN> Pr1 <SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">/</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="number token">4.0</SPAN> <SPAN class="operator token">*</SPAN> <SPAN class="punctuation token">(</SPAN>cosSolZ <SPAN class="operator token">*</SPAN> cosSenZ<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
R_TOA_B1 <SPAN class="operator token">=</SPAN> toa_b1 <SPAN class="operator token">-</SPAN> RayRef_B1
OutRaster <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>outdir<SPAN class="punctuation token">,</SPAN><SPAN class="string token">'MOD022222.{0}.tif'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"TOA_B1"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
R_TOA_B1<SPAN class="punctuation token">.</SPAN>save<SPAN class="punctuation token">(</SPAN>OutRaster<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetMessages<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">'finished run: %s\n\n'</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>now<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">-</SPAN> start<SPAN class="punctuation token">)</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Dan PattersonXander BakkerJoe BorgioneJoshua BixbyLuke Webb