[GRASS-user] access vertices coordinates of a line from Python
gene
martin.laloux at gmail.com
Tue Jun 26 11:34:12 PDT 2012
In fact, you can also use OGR python bindings, it is easy
from osgeo import ogr
# open grass vector
ds = ogr.Open('/grassdata/geol/test/vector/linevector/head')
layer = ds.GetLayer(0)
layer.GetName()
'linevector'
feat = layer.GetFeature(0)
geom = feature.GetGeometryRef()
geom.ExportToWkt()
'LINESTRING (206643.21517600651714
125181.180585758760571,201007.334329231875017
121517.855520597659051,208615.775875667924993
118699.916871574707329,199034.77765774706495
115036.59058768954128,200725.543214922072366
111936.85601020231843,192835.30987687263405
107428.147941565141082,192835.30987687263405 107428.147941565141082)'
for i in range(geometry.GetPointCount()):
xy = geometry.GetPoint(i)
print xy
(206643.21517600652, 125181.18058575876, 0.0)
(201007.33432923188, 121517.85552059766, 0.0)
(208615.77587566792, 118699.91687157471, 0.0)
(199034.77765774706, 115036.59058768954, 0.0)
(200725.54321492207, 111936.85601020232, 0.0)
(192835.30987687263, 107428.14794156514, 0.0)
(192835.30987687263, 107428.14794156514, 0.0)
After that you can use other modules like *shapely*
from shapely.wkt import loads
line =loads(geometry.ExportToWkt())
list(line.coords)
[(206643.21517600652, 125181.18058575876), (201007.33432923188,
121517.85552059766), (208615.77587566792, 118699.91687157471),
(199034.77765774706, 115036.59058768954), (200725.54321492207,
111936.85601020232), (192835.30987687263, 107428.14794156514),
(192835.30987687263, 107428.14794156514)]
--
View this message in context: http://osgeo-org.1560.n6.nabble.com/access-vertices-coordinates-of-a-line-from-Python-tp4983417p4984036.html
Sent from the Grass - Users mailing list archive at Nabble.com.
More information about the grass-user
mailing list