<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Calculate Field Python Statement in Transportation Questions</title>
    <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593510#M1943</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: AndrewRoberts&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have three fields in my attribute table (As seen in 1.jpg, Area1, Area2, and Area3.) I have created a new field and I wish to populate that field with the maximum value between the three fields for each feature. I've done this before with just two fields and it worked great (As seen in 2.jpg.) I tried something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Area4(!Area1!, !Area2!, !Area3!)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code Block:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;def Area4(Area1, Area2, Area3):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if Area1 &amp;lt; Area2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; elif Area2 &amp;lt; Area 3:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but it doesn't seem to give me the desired result. I think the null values are what is giving me trouble. Any Ideas?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 21 Aug 2012 16:48:15 GMT</pubDate>
    <dc:creator>Anonymous User</dc:creator>
    <dc:date>2012-08-21T16:48:15Z</dc:date>
    <item>
      <title>Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593510#M1943</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: AndrewRoberts&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have three fields in my attribute table (As seen in 1.jpg, Area1, Area2, and Area3.) I have created a new field and I wish to populate that field with the maximum value between the three fields for each feature. I've done this before with just two fields and it worked great (As seen in 2.jpg.) I tried something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Area4(!Area1!, !Area2!, !Area3!)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code Block:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;def Area4(Area1, Area2, Area3):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if Area1 &amp;lt; Area2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; elif Area2 &amp;lt; Area 3:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return int(Area1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but it doesn't seem to give me the desired result. I think the null values are what is giving me trouble. Any Ideas?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2012 16:48:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593510#M1943</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2012-08-21T16:48:15Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593511#M1944</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: mdenil&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try the max() function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Feed it a non-empty itterable (a string, tuple, or list)....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;return max(Area1, Area2, Area3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;casting the returned value to an integer, as you do, will also truncate your floating point number towards zero. That may not be what you want.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2012 17:31:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593511#M1944</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2012-08-21T17:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593512#M1945</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The statement &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; return max(Area1, Area2, Area3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Only works if there is a value for all three areas. If areas 1 and 2 have values but three is null, or any combination of this, then it doesn't work. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I could convert the &amp;lt;Null&amp;gt;s to zeros then I believe this the 'return max() function' might work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2012 12:46:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593512#M1945</guid>
      <dc:creator>AndrewRoberts2</dc:creator>
      <dc:date>2012-08-27T12:46:19Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593513#M1946</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: ttruong&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you try to use list instead?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
MaxVal = []
rows = arcpy.SearchCursor("Your Featureclass")
for row in rows:
 MaxVal.append(row.Area1)
 MaxVal.append(row.Area2)
 MaxVal.append(row.Area3)
 arcpy.CalculateField_management("Your Featureclass", "Area4", max(MaxVal), "VB", "")&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:29:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593513#M1946</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T01:29:36Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593514#M1947</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;If I could convert the &amp;lt;Null&amp;gt;s to zeros then I believe this the 'return max() function' might work.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The try/except handles the issue where all are null - you'll just get null back.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Calculate Field tool:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression:&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-family:Courier New;"&gt;maxfld(!Area1!, !Area2!, !Area3!)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def maxfld(fld1,fld2,fld3):
&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp; lst = list()
&amp;nbsp;&amp;nbsp;&amp;nbsp; for k in (fld1,fld2,fld3):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if k: lst.append(k)
&amp;nbsp;&amp;nbsp;&amp;nbsp; return max(lst)
&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp; pass
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:29:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593514#M1947</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-12T01:29:39Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593515#M1948</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: ttruong&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That's very odd behavior of Field Calculator.&amp;nbsp; Perhaps you should use script with updateCursor to calculate values for "Area4" if you don't want to calculate all &amp;lt;null&amp;gt; values to 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I did a quick test using script and I've got the right values.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

rows = arcpy.SearchCursor("D:\Test\test.gdb\DataElements\FrequencyArea")
mylist = []
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; vals = (row.Area1, row.Area2, row.Area3)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for val in vals:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if val not in (""," ",None):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mylist.append(val)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print max(mylist)
&amp;nbsp;&amp;nbsp;&amp;nbsp; mylist = []&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;it returns:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;IDLE 2.6.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ==== No Subprocess ====
&amp;gt;&amp;gt;&amp;gt; 
6.325
2.1
&amp;gt;&amp;gt;&amp;gt; &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]17270[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:29:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593515#M1948</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T01:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593516#M1949</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the help, however in the end I used the original return max(Area1, Area2, Area3) solution but I manually converted my nulls to zeros so that it would work correctly.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2012 10:58:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593516#M1949</guid>
      <dc:creator>AndrewRoberts2</dc:creator>
      <dc:date>2012-08-28T10:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593517#M1950</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: brucejr312&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As I discovered by helping with another field calculator forum post, you can avoid having to convert null values by &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;passing the field to the function as integers, strings&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
def maxNum(num1,num2,num3):
&amp;nbsp;&amp;nbsp;&amp;nbsp; maxNum = max([num for num in [num1,num2,num3] if num != ''])
&amp;nbsp;&amp;nbsp;&amp;nbsp; return maxNum&lt;/PRE&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

maxNum( int(!Area1!), int(!Area2!), int(!Area3!))
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:29:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593517#M1950</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T01:29:46Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593518#M1951</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;As I discovered by helping with another field calculator forum post, you can avoid having to convert null values by &lt;BR /&gt;passing the field to the function as integers, strings&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is what exactly I found out at lunch today!&amp;nbsp; However, it's best to convert them to strings instead.&amp;nbsp; So you don't lose the decimal points.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2012 15:59:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593518#M1951</guid>
      <dc:creator>ThaiTruong</dc:creator>
      <dc:date>2012-08-28T15:59:59Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Field Python Statement</title>
      <link>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593519#M1952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: brucejr312&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually, it would be best to pass them as int or float.&amp;nbsp; See below&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;gt;&amp;gt;&amp;gt; max(['103','1020'])
'103'
&amp;gt;&amp;gt;&amp;gt; 
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the python max() method can't be relied upon to accurately sort string representations of numbers&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:29:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/transportation-questions/calculate-field-python-statement/m-p/593519#M1952</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T01:29:49Z</dc:date>
    </item>
  </channel>
</rss>

