Newby Needs Help with Python code
Peter Otten
__peter__ at web.de
Wed Sep 1 12:52:09 EDT 2010
Nally Kaunda-Bukenya wrote:
> I hope someone can help me. I am new to Python and trying to achive the
> following:
> 1) I would like to populate the Tot_Ouf_Area field with total area of
> each unique outfall_id (code attempted below,but Tot_Ouf_Area not
> populating)
> 2) I would also like to get the user input of Rv ( each
> landuse type will have a specific Rv value). For example the program
> should ask the user for Rv value of Low Density Residential (user enters
> 0.4 in example below and that value must be stored in the Rv field), and
> so on as shown in the 2nd table below…
I don't know arcgis, so the following is just guesswork.
I iterate over the Outfalls_ND table twice, the first time to calculate the
sums per OUTFALL_ID and put them into a dict. With the second pass the
Tot_Outf_Area column is updated
import arcgisscripting
def rows(cur):
while True:
row = cur.Next()
if row is None:
break
yield row
gp = arcgisscripting.create()
gp.Workspace = "C:\\NPDES\\NPDES_PYTHON.mdb"
TABLE = "Outfalls_ND"
GROUP = "OUTFALL_ID"
SUM = "AREA_ACRES"
TOTAL = "Tot_Outf_Area"
aggregate = {}
cur = gp.UpdateCursor(TABLE)
for row in rows(cur):
group = row.GetValue(GROUP)
amount = row.GetValue(SUM)
aggregate[group] = aggregate.get(group, 0.0) + amount
cur = gp.UpdateCursor(TABLE)
for row in rows(cur):
group = row.GetValue(GROUP)
row.SetValue(TOTAL, aggregate[group])
cur.UpdateRow(row)
As this is written into the blue it is unlikely that it runs successfully
without changes. Just try and report back the results.
Peter
More information about the Python-list
mailing list