[GRASS-user] v.select error: point array must contain 0 or >1 elements

Markus Metz markus.metz.giswork at gmail.com
Sun Jan 18 14:36:53 PST 2015


On Sun, Jan 18, 2015 at 11:23 PM, Markus Neteler <neteler at osgeo.org> wrote:
> On Sat, Jan 17, 2015 at 10:12 PM, Thayer Young <thayeray at yahoo.com> wrote:
>>
>> I have two shapefiles that I imported into GRASS 6.4.5 using v.in.ogr.  One is a polygon file of building footprints.  The second is a polyline of the pavement edges of urban streets.  I am trying to convert this into street area.  I used v.clean, v.type (to switch from line to boundaries), and v.centroids.  This conversion process gives me street areas but also creates doughnut holes corresponding to the area inside of a city block outlined by the streets.  For the most part the doughnut holes contain buildings, so I am trying to use v.select to select the areas that do not contain buildings.  I have not been able to get anything besides "overlap" to work.  Overlap is not good enough though because many of the buildings have shared nodes with the streets, for example where a driveway runs along one side of a house.  I checked and my version of GRASS was compiled with the following GEOS details:
>>    --with-geos=/Library/Frameworks/GEOS.framework/Versions/3/unix/bin/geos-config
>>
>> Below is an example of an error that I am getting when I try anything besides overlap:
>>
>> v.select --overwrite ainput=EdgePav_cent at PERMANENT binput=Bldg at PERMANENT output=Pav_sel operator=contains
>> WARNING: Vector map <Pav_sel> already exists and will be overwritten
>> Building spatial index...
>> Processing features...
>> ERROR: IllegalArgumentException: point array must contain 0 or >1 elements
>
> In the past few days Markus Metz has fixed some topology issues in
> GRASS GIS 7 (potentially to be backported while that's a big task).
> Do you have any chance to try this in GRASS 7, downloading a version
> newer than RC1 (fixes will go into RC2)?

This seems to be a GEOS problem, not a GRASS problem, because
operator=overlap seems to work, and this the GRASS-internal operator.
All other operators (anything besides overlap) use GEOS, if those do
not work, it is a GEOS problem or the way GEOS is used by v.select.

Markus M


More information about the grass-user mailing list