Hello,
I want to select the maximum area of features with the same attribute. If I run the following script I don't get the maximum value of the list. Any ideas why?
<SPAN class="keyword token">import</SPAN> arcpy
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
inFile <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"path... \Default.gdb\NSG_Kreis_Inters"</SPAN>
fc <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"path... \Bearbeitung.gdb\data\Test_NSG_Hauptkreis"</SPAN>
Fields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"OBJECTID_1"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"OBJEKT"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"m2"</SPAN><SPAN class="punctuation token">]</SPAN>
inFileL <SPAN class="operator token">=</SPAN> <SPAN class="string token">"inFileL"</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CopyFeatures_management<SPAN class="punctuation token">(</SPAN>inFile<SPAN class="punctuation token">,</SPAN> fc<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management<SPAN class="punctuation token">(</SPAN>fc<SPAN class="punctuation token">,</SPAN> inFileL<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddField_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"relevant"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Single"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddField_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"m2"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Long"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"m2"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"!Shape_Area!"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PYTHON_9.3"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>SearchCursor<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> Fields<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
sql <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OBJEKT = '{}'"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>encode<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'utf-8'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>SelectLayerByAttribute_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> where_clause<SPAN class="operator token">=</SPAN>sql<SPAN class="punctuation token">)</SPAN>
myList <SPAN class="operator token">=</SPAN> list<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>SearchCursor<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> Fields<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
myList<SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"{}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> myList
<SPAN class="keyword token">print</SPAN> max<SPAN class="punctuation token">(</SPAN>myList<SPAN class="punctuation token">)</SPAN>
sql1 <SPAN class="operator token">=</SPAN> <SPAN class="string token">"{} AND m2 = {}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>sql<SPAN class="punctuation token">,</SPAN> max<SPAN class="punctuation token">(</SPAN>myList<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>SelectLayerByAttribute_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"NEW_SELECTION"</SPAN><SPAN class="punctuation token">,</SPAN> where_clause<SPAN class="operator token">=</SPAN>sql1<SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>inFileL<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"relevant"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PYTHON_9.3"</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>Here is the result of the prints in lines 31 and 32:
['0', '1012219']
1012219
['0', '1012219']
1012219
['2', '1344613']
2
['2', '1344613']
2
['1649705', '2100']
2100
['1918769', '2100']
2100