no problem, I'll backport it. Thanks.
On Mon, Feb 20, 2017 at 2:39 AM, Martin Landa <[email protected]> wrote: > Hi, > > are you planning to backport bugfixes to relb72? Thanks, Ma > > 2017-02-20 1:15 GMT+01:00 <[email protected]>: > > Author: hcho > > Date: 2017-02-19 16:15:14 -0800 (Sun, 19 Feb 2017) > > New Revision: 70632 > > > > Modified: > > grass/trunk/scripts/v.report/v.report.py > > Log: > > v.report: Fix unit=percent > > > > Modified: grass/trunk/scripts/v.report/v.report.py > > =================================================================== > > --- grass/trunk/scripts/v.report/v.report.py 2017-02-19 23:40:29 UTC > (rev 70631) > > +++ grass/trunk/scripts/v.report/v.report.py 2017-02-20 00:15:14 UTC > (rev 70632) > > @@ -81,7 +81,7 @@ > > else: > > extracolnames = [option] > > > > - if units in ['p', 'percent']: > > + if units == 'percent': > > unitsp = 'meters' > > elif units: > > unitsp = units > > @@ -90,6 +90,7 @@ > > > > # NOTE: we suppress -1 cat and 0 cat > > if isConnection: > > + f = grass.vector_db(map=mapname)[int(layer)] > > p = grass.pipe_command('v.db.select', quiet=True, map=mapname, > layer=layer) > > records1 = [] > > catcol = -1 > > @@ -97,12 +98,12 @@ > > cols = line.rstrip('\r\n').split('|') > > if catcol == -1: > > for i in range(0, len(cols)): > > - if cols[i] == 'cat': > > + if cols[i] == f['key']: > > catcol = i > > break > > if catcol == -1: > > - # shouldn't happen, but let's do this > > - catcol = 0 > > + grass.fatal(_("There is a table connected to input > vector map '%s', but " > > + "there is no key column '%s'.") % > (mapname, f['key'])) > > continue > > if cols[catcol] == '-1' or cols[catcol] == '0': > > continue > > @@ -115,7 +116,6 @@ > > > > if len(records1) == 0: > > try: > > - f = grass.vector_db(map=mapname)[int(layer)] > > grass.fatal(_("There is a table connected to input > vector map '%s', but " > > "there are no categories present in the > key column '%s'. Consider using " > > "v.to.db to correct this.") % (mapname, > f['key'])) > > @@ -142,6 +142,7 @@ > > for r2 in records2: > > records3.append(filter(lambda r1: r1[catcol] == r2[0], > records1)[0] + r2[1:]) > > else: > > + catcol = 0 > > records1 = [] > > p = grass.pipe_command('v.category', inp=mapname, layer=layer, > option='print') > > for line in p.stdout: > > @@ -172,15 +173,18 @@ > > numcols = len(colnames) + len(extracolnames) > > > > # calculate percents if requested > > - if units != '' and units in ['p', 'percent']: > > - # calculate total area value > > - areatot = 0 > > + if units == 'percent' and option != 'coor': > > + # calculate total value > > + total = 0 > > for r in records3: > > - areatot += float(r[-1]) > > + total += float(r[-1]) > > > > - # calculate area percentages > > - records4 = [float(r[-1]) * 100 / areatot for r in records3] > > - records3 = [r1 + [r4] for r1, r4 in zip(records1, records4)] > > + # calculate percentages > > + records4 = [float(r[-1]) * 100 / total for r in records3] > > + if type(records1[0]) == int: > > + records3 = [[r1] + [r4] for r1, r4 in zip(records1, > records4)] > > + else: > > + records3 = [r1 + [r4] for r1, r4 in zip(records1, records4)] > > > > # sort results > > if options['sort']: > > > > _______________________________________________ > > grass-commit mailing list > > [email protected] > > https://lists.osgeo.org/mailman/listinfo/grass-commit > > > > -- > Martin Landa > http://geo.fsv.cvut.cz/gwiki/Landa > http://gismentors.cz/mentors/landa >
_______________________________________________ grass-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/grass-dev
