Hi all,
I have monthly raster for different parameters in three different folders. I am trying to take the minimum value of raster from each raster in two different parameters and solve the below equation. For that, I have written a code, but the code is producing an error.
It is giving an error in line no 35.
Sample data attached below
Code:
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">main</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> os
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
<SPAN class="comment token"># Checkout extension</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CheckOutExtension<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Spatial"</SPAN><SPAN class="punctuation token">)</SPAN>
ws_in_APAR <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'E:\APAR'</SPAN>
ws_in_TSCALAR <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'E:\T_SCALAR'</SPAN>
ws_in_WSCALAR <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'E:\W_SCALAR'</SPAN>
ws_out_GPP <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'E:\GPP_1982'</SPAN>
<SPAN class="comment token"># list "mean" rasters (r001_APAR so on)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> ws_in_APAR
lst_ras_APAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>ListRasters<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"lst_ras_APAR"</SPAN><SPAN class="punctuation token">,</SPAN> lst_ras_APAR
<SPAN class="comment token"># list "mean" rasters (r001_TSCALAR so on)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> ws_in_TSCALAR
lst_ras_TSCALAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>ListRasters<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"lst_ras_TSCALAR"</SPAN><SPAN class="punctuation token">,</SPAN> lst_ras_TSCALAR
<SPAN class="comment token"># list "mean" rasters (r001_WSCALAR so on)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> ws_in_WSCALAR
lst_ras_WSCALAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>ListRasters<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"lst_ras_WSCALAR"</SPAN><SPAN class="punctuation token">,</SPAN> lst_ras_WSCALAR
<SPAN class="keyword token">for</SPAN> ras_name <SPAN class="keyword token">in</SPAN> lst_ras_APAR<SPAN class="punctuation token">,</SPAN> lst_ras_TSCALAR<SPAN class="punctuation token">,</SPAN> lst_ras_WSCALAR <SPAN class="punctuation token">:</SPAN>
ras_APAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Raster<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>ws_in_APAR<SPAN class="punctuation token">,</SPAN> ras_APAR<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
ras_TSCALAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Raster<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>ws_in_TSCALAR<SPAN class="punctuation token">,</SPAN> ras_TSCALAR<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
ras_WSCALAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Raster<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>ws_in_WSCALAR<SPAN class="punctuation token">,</SPAN> ras_WSCALAR<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># calculate (ras_TSCALAR.minimum wil take the minimum value of perticular raster)</SPAN>
ras_GPP <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>ras_APAR <SPAN class="operator token">*</SPAN> <SPAN class="number token">1.48</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> <SPAN class="punctuation token">(</SPAN>ras_TSCALAR<SPAN class="punctuation token">.</SPAN>minimum <SPAN class="operator token">*</SPAN> ras_WSCALAR<SPAN class="punctuation token">.</SPAN>minimum<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># save raster</SPAN>
ras_num <SPAN class="operator token">=</SPAN> ras_name<SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN>
out_name_GPP <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>ws_out_GPP<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'r{0}_GPP'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>ras_num<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
ras_GPP<SPAN class="punctuation token">.</SPAN>save<SPAN class="punctuation token">(</SPAN>out_name_GPP<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> __name__ <SPAN class="operator token">==</SPAN> <SPAN class="string token">'__main__'</SPAN><SPAN class="punctuation token">:</SPAN>
main<SPAN class="punctuation token">(</SPAN><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>Error message:
Traceback <SPAN class="punctuation token">(</SPAN>most recent call last<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
File <SPAN class="string token">"E:\GPP.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">64</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> <SPAN class="operator token"><</SPAN>module<SPAN class="operator token">></SPAN>
main<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
File <SPAN class="string token">"E:\GPP.py"</SPAN><SPAN class="punctuation token">,</SPAN> line <SPAN class="number token">47</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">in</SPAN> main
ras_APAR <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Raster<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>ws_in_APAR<SPAN class="punctuation token">,</SPAN> ras_APAR<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
UnboundLocalError<SPAN class="punctuation token">:</SPAN> local variable <SPAN class="string token">'ras_APAR'</SPAN> referenced before assignment<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>