Difference between revisions of "Python Ctypes Examples"
Jump to navigation Jump to search
(Created page with "== Accessing geometry == This script switches X, Y coordinates and multiple them by -1. <source lang="python"> import sys import grass.script as grass from grass.lib.vector i...")
|Line 45:||Line 45:|
Revision as of 18:59, 20 January 2011
This script switches X, Y coordinates and multiple them by -1.
import sys import grass.script as grass from grass.lib.vector import * if len(sys.argv) < 2: sys.exit("Usage: %s: vector" % sys.argv) name = sys.argv map_info = pointer(Map_info()) points = Vect_new_line_struct() cats = Vect_new_cats_struct() c_points = points.contents level = Vect_open_update(map_info, name, "") if level < 2: sys.exit("Topology not available") nlines = Vect_get_num_lines(map_info) for line in range(1, nlines): ltype = Vect_read_line(map_info, points, cats, line) if line % 100 == 0: sys.stderr.write("\r%d" % line) for i in range(c_points.n_points): x = c_points.x[i] c_points.x[i] = -1 * c_points.y[i] c_points.y[i] = -1 * x Vect_rewrite_line(map_info, line, ltype, points, cats) line += 1 Vect_destroy_line_struct(points) Vect_destroy_cats_struct(cats) Vect_close(map_info)