I have referenced this article Writing conditional (if/then) statements into Field Calculator of ArcGIS for Desktop using Python parser? - Geographic I…
I am trying to update values in a field using 'elif' statements in Field Calculator with the Python radio button selected.
The set is as:
Code Block:
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">Reclass</SPAN><SPAN class="punctuation token">(</SPAN>Density_18<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>Density_18 <SPAN class="operator token"><=</SPAN> <SPAN class="punctuation token">.</SPAN><SPAN class="number token">8493</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="number token">1</SPAN>
<SPAN class="keyword token">elif</SPAN> <SPAN class="punctuation token">(</SPAN>Density_18 <SPAN class="operator token">></SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="number token">8493</SPAN> <SPAN class="operator token">and</SPAN> Density_18 <SPAN class="operator token"><=</SPAN><SPAN class="number token">1.761</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="number token">2</SPAN>
<SPAN class="keyword token">elif</SPAN> <SPAN class="punctuation token">(</SPAN>Density_18 <SPAN class="operator token">></SPAN><SPAN class="number token">1.761</SPAN> <SPAN class="operator token">and</SPAN> Density_18 <SPAN class="operator token"><=</SPAN><SPAN class="number token">2.345</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="number token">3</SPAN>
<SPAN class="keyword token">elif</SPAN> <SPAN class="punctuation token">(</SPAN>Density_18 <SPAN class="operator token">></SPAN><SPAN class="number token">2.345</SPAN> <SPAN class="operator token">and</SPAN> Density_18 <SPAN class="operator token"><=</SPAN><SPAN class="number token">3.399</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="number token">4</SPAN>
<SPAN class="keyword token">elif</SPAN> <SPAN class="punctuation token">(</SPAN>Density_18 <SPAN class="operator token">></SPAN><SPAN class="number token">3.399</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="number token">5</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>
Expression:
Reclass<SPAN class="punctuation token">(</SPAN> !Index_18!<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
When this expression is performed, it calculates all the values as '1', then the next time it is run all values are '2', so on until it maxes out and repeats at '5' in the Index_18 field.