' '---------------------------- '--- creation information --- '---------------------------- ' 'Name: segavea.ave 'Version: 1.0 'Date: 03/10/97 'Author: Ferdi Hellweger ' Center for Research in Water Resources ' The University of Texas at Austin ' ferdi@crwr.utexas.edu ' www.ce.utexas.edu/stu/ferdi/ ' '--------------------------- '--- purpose/description --- '--------------------------- ' 'This is a segment averaging utility for sample data. 'Average is weighted by area. ' '----------------- '--- get table --- '----------------- ' intable = av.getactivedoc ' '-------------------- '--- set up table --- '-------------------- ' invtab = intable.getvtab ingsegidf = invtab.findfield("gsegid2") inavef = invtab.findfield("ave") inareaf = invtab.findfield("area2") ' '--------------------------- '--- set up output table --- '--------------------------- ' outfilenamestring = msgbox.input("Output file name", "WARDIMP", "z:\ferdi\research\ccbnep\warddata\wqsalsur4a.dbf") outfilename = filename.make(outfilenamestring) outvtab = vtab.makenew(outfilename, dBASE) outfields = list.make outgsegidf = field.make("gsegid", #FIELD_CHAR, 4, 0) outavef = field.make("ave", #FIELD_DECIMAL, 16, 4) outfields = outfields.add(outgsegidf) outfields = outfields.add(outavef) outvtab.addfields(outfields) outvtab.seteditable(true) ' '-------------------- '--- process data --- '-------------------- ' donedict = dictionary.make(invtab.getnumrecords) for each inrec in invtab thisgsegid = invtab.returnvalue(ingsegidf, inrec) if (donedict.get(thisgsegid) = nil) then totarea = 0 totweight = 0 for each inrec2 in invtab ingsegid = invtab.returnvalue(ingsegidf, inrec2) if (thisgsegid = ingsegid) then inave = invtab.returnvalue(inavef, inrec2) inarea = invtab.returnvalue(inareaf, inrec2) inweight = inarea.clone * inave.clone totarea = totarea.clone + inarea.clone totweight = totweight.clone + inweight.clone end end ave = totweight.clone / totarea.clone outrec = outvtab.addrecord outvtab.setvalue(outgsegidf, outrec, thisgsegid.clone) outvtab.setvalue(outavef, outrec, ave.clone) donedict.add(thisgsegid, {"dummy"}) end end ' 'close up ' msgbox.info("Averages calculated", "WARDIMP") ' 'end '