Dear all,
I am using python2.6 (together with arcgis 10.0) and try to modify the vertice xy values for multiple parts polygon using the following scripts, no error thrown but the vertice xy value not changed. Please help to advice what is wrong in my script:
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">modify</SPAN><SPAN class="punctuation token">(</SPAN>f<SPAN class="punctuation token">,</SPAN> n<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
s <SPAN class="operator token">=</SPAN> <SPAN class="string token">'%.12f'</SPAN> <SPAN class="operator token">%</SPAN> f
i<SPAN class="punctuation token">,</SPAN> p<SPAN class="punctuation token">,</SPAN> d <SPAN class="operator token">=</SPAN> s<SPAN class="punctuation token">.</SPAN>partition<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'.'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="string token">'.'</SPAN><SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">(</SPAN>d<SPAN class="operator token">+</SPAN><SPAN class="string token">'0'</SPAN><SPAN class="operator token">*</SPAN>n<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">:</SPAN>n<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> logging
<SPAN class="keyword token">from</SPAN> arcpy <SPAN class="keyword token">import</SPAN> env
env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"C:\modifyTest"</SPAN>
infc <SPAN class="operator token">=</SPAN> <SPAN class="string token">"testing.mdb/donutTesting1"</SPAN>
desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>infc<SPAN class="punctuation token">)</SPAN>
shapefieldname <SPAN class="operator token">=</SPAN> desc<SPAN class="punctuation token">.</SPAN>ShapeFieldName
my_field <SPAN class="operator token">=</SPAN> <SPAN class="string token">"SHAPE"</SPAN>
rows <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>UpdateCursor<SPAN class="punctuation token">(</SPAN>infc<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> rows<SPAN class="punctuation token">:</SPAN>
feat <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">.</SPAN>getValue<SPAN class="punctuation token">(</SPAN>shapefieldname<SPAN class="punctuation token">)</SPAN>
arr_pol <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
partnum <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN>
<SPAN class="keyword token">if</SPAN> feat<SPAN class="punctuation token">.</SPAN>isMultipart <SPAN class="operator token">==</SPAN> <SPAN class="token boolean">True</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> part <SPAN class="keyword token">in</SPAN> feat<SPAN class="punctuation token">:</SPAN>
parts <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN>
arr_parts <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">while</SPAN> partnum <SPAN class="operator token"><</SPAN> feat<SPAN class="punctuation token">.</SPAN>partCount<SPAN class="punctuation token">:</SPAN>
part <SPAN class="operator token">=</SPAN> feat<SPAN class="punctuation token">.</SPAN>getPart<SPAN class="punctuation token">(</SPAN>partnum<SPAN class="punctuation token">)</SPAN>
pnt <SPAN class="operator token">=</SPAN> part<SPAN class="punctuation token">.</SPAN>next<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">while</SPAN> pnt<SPAN class="punctuation token">:</SPAN>
X_value <SPAN class="operator token">=</SPAN> modify<SPAN class="punctuation token">(</SPAN> pnt<SPAN class="punctuation token">.</SPAN>X <SPAN class="punctuation token">,</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
Y_value <SPAN class="operator token">=</SPAN> modify<SPAN class="punctuation token">(</SPAN> pnt<SPAN class="punctuation token">.</SPAN>Y <SPAN class="punctuation token">,</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
pnt<SPAN class="punctuation token">.</SPAN>X<SPAN class="operator token">=</SPAN> X_value
pnt<SPAN class="punctuation token">.</SPAN>Y<SPAN class="operator token">=</SPAN> Y_value
<SPAN class="comment token">#print pnt.X, pnt.Y</SPAN>
parts<SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>X_value<SPAN class="punctuation token">,</SPAN> Y_value<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
XYPoint <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN>X_value<SPAN class="punctuation token">,</SPAN> Y_value<SPAN class="punctuation token">)</SPAN>
arr_parts<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN>XYPoint<SPAN class="punctuation token">)</SPAN>
arr_pol<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN>arr_parts<SPAN class="punctuation token">)</SPAN>
pnt <SPAN class="operator token">=</SPAN> part<SPAN class="punctuation token">.</SPAN>next<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> pnt <SPAN class="keyword token">is</SPAN> None<SPAN class="punctuation token">:</SPAN>
pnt <SPAN class="operator token">=</SPAN> part<SPAN class="punctuation token">.</SPAN>next<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> pnt<SPAN class="punctuation token">:</SPAN>
X_value <SPAN class="operator token">=</SPAN> modify<SPAN class="punctuation token">(</SPAN> pnt<SPAN class="punctuation token">.</SPAN>X <SPAN class="punctuation token">,</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
Y_value <SPAN class="operator token">=</SPAN> modify<SPAN class="punctuation token">(</SPAN> pnt<SPAN class="punctuation token">.</SPAN>Y <SPAN class="punctuation token">,</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
pnt<SPAN class="punctuation token">.</SPAN>X<SPAN class="operator token">=</SPAN> X_value
pnt<SPAN class="punctuation token">.</SPAN>Y<SPAN class="operator token">=</SPAN> Y_value
parts<SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>X_value<SPAN class="punctuation token">,</SPAN> Y_value<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
XYPoint <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN>X_value<SPAN class="punctuation token">,</SPAN> Y_value<SPAN class="punctuation token">)</SPAN>
arr_parts<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN>XYPoint<SPAN class="punctuation token">)</SPAN>
arr_pol<SPAN class="punctuation token">.</SPAN>add<SPAN class="punctuation token">(</SPAN>arr_parts<SPAN class="punctuation token">)</SPAN>
partnum <SPAN class="operator token">+=</SPAN> <SPAN class="number token">1</SPAN>
<SPAN class="keyword token">print</SPAN> parts
polygon <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Polygon<SPAN class="punctuation token">(</SPAN>arr_pol<SPAN class="punctuation token">)</SPAN>
row<SPAN class="punctuation token">.</SPAN>setValue<SPAN class="punctuation token">(</SPAN>my_field<SPAN class="punctuation token">,</SPAN>polygon<SPAN class="punctuation token">)</SPAN>
rows<SPAN class="punctuation token">.</SPAN>updateRow<SPAN class="punctuation token">(</SPAN>row<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></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>