[GRASS-user] Creating a new vector map with pygrass
Asim
asimrp at lavabit.com
Mon Aug 8 23:35:29 PDT 2022
Hello!
Here is yet another request for hand-holding with GRASS GIS. This time
it's aquestion on pygrass API, version 7.8.5. I want to create a new
vector map from a Python script. The steps I'm following are:
1. Create a VectorTopo object with.
2. Define attribute columns: cols = [(column name, type), ...]
3. Open the VectorTopo object in write mode: write("w", tab_cols=cols, ...).
4. Add geometry objects, in my case it's Area objects, one by one using
write() interface.
5. Commit changes and close the VectorTopo.
Step 4, however, is causing "AttributeError" in a pygrass module. Stack
trace:
Traceback (most recent call last):
File "stream_features.py", line 404, in <module>
generateWatersheds(ssegs, dwsmapname)
File "stream_features.py", line 359, in generateWatersheds
dwsvector.write(
File
"/Applications/GRASS-7.8.app/Contents/Resources/etc/python/grass/pygrass/errors.py",
line 15, in wrapper
return method(self, *args, **kargs)
File
"/Applications/GRASS-7.8.app/Contents/Resources/etc/python/grass/pygrass/vector/__init__.py",
line 217, in write
result = self._write_area(geo_obj)
AttributeError: 'VectorTopo' object has no attribute '_write_area'
Can someone shed light on where my understanding is going wrong? Is
this a bug in vector/__init__.py? The code snippet for reference:
<snip>
dwsvector = vector.VectorTopo("differential_watersheds")
dwscols = [("cat", "INTEGER PRIMARY KEY"),
("stream1", "INTEGER"),
("stream2", "INTEGER")]
dwsvector.open("w", tab_name=dwsmapname, tab_cols=dwscols,
overwrite=True)
cat = 1
# "boundary" is a vector.geometry.Boundary object, obtained
# from an existing vector map that is opened previously.
areageom = vector.geometry.Area(v_id=boundary.id,
c_mapinfo=boundary.c_mapinfo)
dwsvector.write(
areageom,
cat,
attrs=(boundary.attrs["s1"], boundary.attrs["s2"]))
# The AttributeError thrown when the write() method above is invoked.
</snip>
Hope the problem description is clear, if it isn't, please let me know.
Asim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20220809/736911b3/attachment.htm>
More information about the grass-user
mailing list