[GRASS-dev] access to grass (trunk 7.0.svn ) vector map from python

Glynn Clements glynn at gclements.plus.com
Tue Jun 15 12:56:35 EDT 2010


Fernando Pacheco wrote:

> I'm trying to access a grass vector map with python (2.6). I'm using the svn
> version (revision 42 565) but keep getting "Segmentation fault" when trying
> to open the file with Vect_open_old (map, input, mpaset). The code I'm using
> can be found here: http://osgeo.pastebin.com/VLGunxyq
> Can you please tell me I'm doing wrong (the same code works well with python
> libraries generated with SWIG)?.

There are two problems, one in your code, one in the ctypes wrappers.

First, Vect_open_old needs a pointer to a a Map_info structure, not
the structure itself, so you need to use byref(), e.g.:

	from ctypes import *

	...

	vector.Vect_open_old(byref(map), input, mapset)

Second, if LFS is enabled, any files which use the vector structures
are compiled with -D_FILE_OFFSET_BITS=64. This wasn't being passed to
the preprocessor when the ctypes wrappers were generated, resulting in
incorrect wrappers being generated for various structures, including
the Map_info structure. This should be fixed by r42566.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list