Hi everyone,
I am trying to create a script to run every night to calculate the total insects counted each day by summing two insect count fields in a feature layer. I can't use Arcade because the layer has "track changes" and "sync" enabled for the field crew (grrrr...). Below is my simple script to calculate the "TotalArmyworms" field based on summing the Western Yellow Armyworm field with the Bertha Armyworm field. I have tried many different ways to identify the layer from AGOL, and each time the error states that 'Item' object has no attribute 'calculate'. Any thoughts?
<SPAN class="keyword token">import</SPAN> arcgis
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">from</SPAN> arcgis<SPAN class="punctuation token">.</SPAN>gis <SPAN class="keyword token">import</SPAN> GIS
<SPAN class="keyword token">from</SPAN> arcgis <SPAN class="keyword token">import</SPAN> features
<SPAN class="keyword token">from</SPAN> arcgis<SPAN class="punctuation token">.</SPAN>features <SPAN class="keyword token">import</SPAN> FeatureLayer
gis <SPAN class="operator token">=</SPAN> GIS<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'https://arcgis.com'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'xyz'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'xyz'</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>
trap_count <SPAN class="operator token">=</SPAN> gis<SPAN class="punctuation token">.</SPAN>content<SPAN class="punctuation token">.</SPAN>get<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"b6b9c68fa42b408a88c68aa9e18593d5"</SPAN><SPAN class="punctuation token">)</SPAN>
trap_count
trap_count<SPAN class="punctuation token">.</SPAN>calculate<SPAN class="punctuation token">(</SPAN>where<SPAN class="operator token">=</SPAN><SPAN class="string token">"fid > 0"</SPAN><SPAN class="punctuation token">,</SPAN> calc_expression<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"field"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"TotalArmyworms"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"sqlExpression"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Nu_W_YellowStripedArmyworm + Nu_BerthArmyworm"</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN>
KeyError Traceback <SPAN class="punctuation token">(</SPAN>most recent call last<SPAN class="punctuation token">)</SPAN>
C<SPAN class="punctuation token">:</SPAN>\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro<SPAN class="operator token">-</SPAN>py3\lib\site<SPAN class="operator token">-</SPAN>packages\arcgis\gis\__init__<SPAN class="punctuation token">.</SPAN>py <SPAN class="keyword token">in</SPAN> __getattr__<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">6998</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="operator token">-</SPAN><SPAN class="operator token">></SPAN> <SPAN class="number token">6999</SPAN> <SPAN class="keyword token">return</SPAN> dict<SPAN class="punctuation token">.</SPAN>__getitem__<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">7000</SPAN> <SPAN class="keyword token">except</SPAN><SPAN class="punctuation token">:</SPAN>
KeyError<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'calculate'</SPAN>
During handling of the above exception<SPAN class="punctuation token">,</SPAN> another exception occurred<SPAN class="punctuation token">:</SPAN>
AttributeError Traceback <SPAN class="punctuation token">(</SPAN>most recent call last<SPAN class="punctuation token">)</SPAN>
<SPAN class="operator token"><</SPAN>ipython<SPAN class="operator token">-</SPAN>input<SPAN class="number token">-50</SPAN><SPAN class="operator token">-</SPAN><SPAN class="number token">2608a815f7ee</SPAN><SPAN class="operator token">></SPAN> <SPAN class="keyword token">in</SPAN> <SPAN class="operator token"><</SPAN>module<SPAN class="operator token">></SPAN>
<SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">-</SPAN><SPAN class="operator token">></SPAN> <SPAN class="number token">1</SPAN> trap_count<SPAN class="punctuation token">.</SPAN>calculate<SPAN class="punctuation token">(</SPAN>where<SPAN class="operator token">=</SPAN><SPAN class="string token">"fid > 0"</SPAN><SPAN class="punctuation token">,</SPAN> calc_expression<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"field"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"TotalArmyworms"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"sqlExpression"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Nu_W_YellowStripedArmyworm + Nu_BerthArmyworm"</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">2</SPAN>
C<SPAN class="punctuation token">:</SPAN>\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro<SPAN class="operator token">-</SPAN>py3\lib\site<SPAN class="operator token">-</SPAN>packages\arcgis\gis\__init__<SPAN class="punctuation token">.</SPAN>py <SPAN class="keyword token">in</SPAN> __getattr__<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">6999</SPAN> <SPAN class="keyword token">return</SPAN> dict<SPAN class="punctuation token">.</SPAN>__getitem__<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">7000</SPAN> <SPAN class="keyword token">except</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="operator token">-</SPAN><SPAN class="operator token">></SPAN> <SPAN class="number token">7001</SPAN> <SPAN class="keyword token">raise</SPAN> AttributeError<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"'%s' object has no attribute '%s'"</SPAN> <SPAN class="operator token">%</SPAN> <SPAN class="punctuation token">(</SPAN>type<SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>__name__<SPAN class="punctuation token">,</SPAN> name<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="number token">7002</SPAN>
<SPAN class="number token">7003</SPAN> <SPAN class="keyword token">def</SPAN> <SPAN class="token function">__getitem__</SPAN><SPAN class="punctuation token">(</SPAN>self<SPAN class="punctuation token">,</SPAN> k<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="comment token"># support item attributes as dictionary keys on this object</SPAN>
AttributeError<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'Item'</SPAN> object has no attribute <SPAN class="string token">'calculate'</SPAN>
<SPAN class="number token">1</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>