Sum of product-please help

MRAB python at mrabarnett.plus.com
Thu Sep 2 18:16:43 EDT 2010


On 02/09/2010 23:01, Nally Kaunda-Bukenya wrote:
> Dear all, kindly help me with this code;
> This script is supposed to calculate Rvi for each row by first summing
> the product of #fields (Ai*Rv) and dividing by another field (Tot) such
> that Rvi=sum(Ai*Rv)/Tot. First it's acting like I need another
> parenthesis and it doesn't seem to work at all. i even imported the math
> module, but not sure if a need it. Please advice, your help is highly
> appreciated. Please see the code below:
> import arcpy, math
> arcpy.Workspace = "C:\\data\\basins.mdb"
> fc = "wshed"
> sum = 0
>
It looks like you're using 'sum' as a variable. Bad idea. That hides
the 'sum' function which you need later.

> # Create the update cursor and advance the cursor to the first row
> cur = arcpy.UpdateCursor(fc)
> row = cur.Next()
> # Perform the update and move to the next row as long as there are
> # rows left
> for row:

Syntax error. It's:

     for variable in iterator:
         ...

> row.GetValue(Rvi) = sum(row.Ai*row.Rv)/row.ATot

Assign to the result of row.GetValue(Rvi)? Is that right? I don't know
arcpy, but somehow that doesn't look right to me.

> cur.UpdateRow(row)
> row = cur.Next()
> # Delete the cursors to remove any data locks
> del row, cur
>



More information about the Python-list mailing list