#python #ArcPy #for #syntaxerror
I am updating this tool that calculates the latitude and longitude values for all node poles. Originally the user could select Original Latitude and Longitude or Adjusted Latitude and Longitude. The selection was for one or the other. The update allows the user to select both. It utilizes #arcpy.GetParametersAsText . I created a new variable for the selection of Both, Original and Adjusted. In doing this, I created a syntax error in my conditional statement ( line 49), and I cannot figure out how to fix it. Any help on the error (or completing the tool, I imagine I have a few more errors left) would be much appreciated.
<SPAN class="comment token">#########################################################################################################################</SPAN>
<SPAN class="comment token"># Name: Calculate Node - Locations</SPAN>
<SPAN class="comment token"># Author: Heather Wigell</SPAN>
<SPAN class="comment token"># Description: This tool calculates the latitude and longitude values for all node poles</SPAN>
<SPAN class="comment token">##################################################################</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Import system modules</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Set universal variables</SPAN>
<SPAN class="comment token">#########################</SPAN>
nodeFeatures <SPAN class="operator token">=</SPAN> r<SPAN class="string token">'OSP Mapping Layers\Node Locations'</SPAN>
inTable <SPAN class="operator token">=</SPAN> nodeFeatures
orig_adj <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
mxd <SPAN class="operator token">=</SPAN> map<SPAN class="punctuation token">.</SPAN>MapDocument<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"CURRENT"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">################</SPAN>
<SPAN class="comment token">#parameters</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Original or Adjusted Lat Long"</SPAN>
orig_adj <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
name <SPAN class="operator token">=</SPAN> <SPAN class="string token">'orig_adj'</SPAN>
displayName <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Original or Adjusted Lat Long"</SPAN>
datatype <SPAN class="operator token">=</SPAN> <SPAN class="string token">'String'</SPAN>
direction <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Input'</SPAN>
filters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>list <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Original'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'Adjusted'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'Both'</SPAN><SPAN class="punctuation token">]</SPAN>
filters<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>type <SPAN class="operator token">=</SPAN> <SPAN class="string token">'ValueList'</SPAN>
<SPAN class="comment token">######################</SPAN>
<SPAN class="comment token">#local variables</SPAN>
latField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLatitude"</SPAN>
longField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLongitude"</SPAN>
adlatField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AdjustedLatitude"</SPAN>
adlongField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AdjustedLongitude"</SPAN>
btlatField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLatitude"</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"AdjustedLatitude"</SPAN>
btlongField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLongitude"</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"AdjustedLongitude"</SPAN>
mxd <SPAN class="operator token">=</SPAN> map<SPAN class="punctuation token">.</SPAN>MapDocument<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"CURRENT"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">###########</SPAN>
<SPAN class="comment token">#add message about coordinate options</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Are you updating the Original or Adjusted coordinates?"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#############</SPAN>
<SPAN class="comment token">#Print Parameter Value (User Input {Original, Adjusted, Both}) on Line 49.</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>SetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN>x<SPAN class="punctuation token">)</SPAN>
x
<SPAN class="comment token">###############</SPAN>
<SPAN class="comment token">#pick original, adjusted, or both and match it to ValueList</SPAN>
<SPAN class="keyword token">def</SPAN><SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">:</SPAN>
x <SPAN class="operator token">==</SPAN> <SPAN class="string token">"Original"</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'true'</SPAN>
<SPAN class="operator token">and</SPAN> x <SPAN class="operator token">==</SPAN> <SPAN class="string token">"Original"</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'true'</SPAN>
latField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLatitude"</SPAN>
longField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"OriginalLongitude"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">elif</SPAN> x <SPAN class="operator token">==</SPAN> <SPAN class="string token">"Adjusted"</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'true'</SPAN>
<SPAN class="operator token">and</SPAN> x <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Adjusted"</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'true'</SPAN>
adlatField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AdjustedLatitude"</SPAN>
adlongField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"AdjustedLongitude"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN> x <SPAN class="operator token">==</SPAN> <SPAN class="string token">"Both"</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'true'</SPAN>
btlatField <SPAN class="operator token">==</SPAN> <SPAN class="string token">"BothLatitude"</SPAN>
btlongField <SPAN class="operator token">=</SPAN> <SPAN class="string token">"BothLongitude"</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Calulate latitude</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Start message</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Calculating the latitude values for all node features..."</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Set local variables</SPAN>
expression <SPAN class="operator token">=</SPAN> <SPAN class="string token">"!Shape.Centroid.Y!"</SPAN>
<SPAN class="comment token"># Execute CalculateField</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>inTable<SPAN class="punctuation token">,</SPAN> latField<SPAN class="punctuation token">,</SPAN> adlatField<SPAN class="punctuation token">,</SPAN> btlatField<SPAN class="punctuation token">,</SPAN> expression<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PYTHON_9.3"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># End message</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"The latitude values have been calculated for all node features!"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"..."</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"..."</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Calculate Longitude</SPAN>
<SPAN class="comment token">#########################</SPAN>
<SPAN class="comment token"># Start message</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Calculating the longitude values for all node features..."</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Set local variables</SPAN>
expression <SPAN class="operator token">=</SPAN> <SPAN class="string token">"!Shape.Centroid.X!"</SPAN>
<SPAN class="comment token"># Execute CalculateField</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>CalculateField_management<SPAN class="punctuation token">(</SPAN>inTable<SPAN class="punctuation token">,</SPAN> longField<SPAN class="punctuation token">,</SPAN> adlongField<SPAN class="punctuation token">,</SPAN> btlongField<SPAN class="punctuation token">,</SPAN> expression<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PYTHON_9.3"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># End message</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"The longitude values have been calculated for all node features!"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"..."</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"..."</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">################################################################################ Name: Calculate Node - Locations# Author: Heather Wigell# Description: This tool calculates the latitude and longitude values for all node poles############################################################################################ Import system modules#########################import arcpy########################## Set universal variables#########################nodeFeatures = r'OSP Mapping Layers\Node Locations'inTable = nodeFeaturesorig_adj = arcpy.GetParameterAsText(0)mxd = map.MapDocument("CURRENT")#################parametersarcpy.GetParameterAsText(0) = "Original or Adjusted Lat Long"orig_adj = arcpy.GetParameterAsText(0)name = 'orig_adj',displayName = "Original or Adjusted Lat Long",datatype = 'String',direction = 'Input',filters[0].list = ['Original', 'Adjusted', 'Both']filters[1].type = 'ValueList'#######################local variableslatField = "OriginalLatitude"longField = "OriginalLongitude"adlatField = "AdjustedLatitude"adlongField = "AdjustedLongitude"btlatField = "OriginalLatitude" + "AdjustedLatitude"btlongField = "OriginalLongitude" + "AdjustedLongitude"mxd = map.MapDocument("CURRENT")############add message about coordinate optionsarcpy.AddMessage("Are you updating the Original or Adjusted coordinates?")##############pick original, adjusted, or both and match it to ValueListarcpy.GetParameterAsText(0) for "Original or Adjusted Lat Long"arcpy.SetParameterAsText(0) for "Original or Adjusted Lat Long"if ValueList: "Original" and "Original or Adjusted Lat Long": "Original" latField = "OriginalLatitude" longField = "OriginalLongitude";elif ValueList = "Adjusted": and adj = "Adjusted" adlatField = "AdjustedLatitude" adlongField = "AdjustedLongitude" else: ValueList = "Both" btlatField == "BothLatitude" btlongField = "BothLongitude"########################## Calulate latitude########################## Start messagearcpy.AddMessage("Calculating the latitude values for all node features...")# Set local variablesexpression = "!Shape.Centroid.Y!"# Execute CalculateFieldarcpy.CalculateField_management(inTable, latField, adlatField, btlatField, expression, "PYTHON_9.3", "")# End messagearcpy.AddMessage("The latitude values have been calculated for all node features!")arcpy.AddMessage("...")arcpy.AddMessage("...")########################## Calculate Longitude########################## Start messagearcpy.AddMessage("Calculating the longitude values for all node features...")# Set local variablesexpression = "!Shape.Centroid.X!"# Execute CalculateFieldarcpy.CalculateField_management(inTable, longField, adlongField, btlongField, expression, "PYTHON_9.3", "")# End messagearcpy.AddMessage("The longitude values have been calculated for all node features!")arcpy.AddMessage("...")arcpy.AddMessage("...")</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></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><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>