Opened 15 years ago

Closed 12 years ago

#373 closed defect (fixed)

v.generalize: hermite, boyle corrupt data

Reported by: msieczka Owned by: grass-dev@…
Priority: major Milestone: 6.4.3
Component: Vector Version: svn-develbranch6
Keywords: v.generalize Cc:
CPU: All Platform: All

Description

  1. import the attached shapefile
  1. run v.generalize method=hermite on it

The resulting vector map renders fine in GRASS, but makes QGIS crash and say:

qgsgrass.cpp: 374: (error_routine) error_routine (fatal = 1): BUG (Vect_build_sidx_from_topo): node does not exist

After re-building topology the map renders fine in QGIS too. Topology dump of the 2 maps differ like this:

Before topology re-build:

---------- TOPOLOGY DUMP ----------
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
Nodes (2 nodes, alive + dead ):
node = 1, n_lines = 2, xy = -7.000139, 36.999861
  line =  -1, type = 4, angle = -1.781112
  line =   1, type = 4, angle = -0.417989
node = 2, n_lines = 1, xy = -6.662233, 36.459010
  line =   2, type = 8, angle = -9.000000
Lines (2 lines, alive + dead ):
line = 1, type = 4, offset = 14 n1 = 1, n2 = 1, left/area = -1, right = 1
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
line = 2, type = 8, offset = 316 n1 = 2, n2 = 2, left/area = 1, right = 0
N,S,E,W,T,B: 36.459010, 36.459010, -6.662233, -6.662233, 0.000000, 0.000000
Areas (1 areas, alive + dead ):
area = 1, n_lines = 1, n_isles = 0 centroid = 2
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
  line =   1
Islands (1 islands, alive + dead ):
isle = 1, n_lines = 1 area = 0
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
  line =  -1

After topology re-build:

---------- TOPOLOGY DUMP ----------
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
Nodes (7 nodes, alive + dead ):
node = 1, n_lines = 2, xy = -7.000139, 36.999861
  line =  -1, type = 4, angle = -1.781112
  line =   1, type = 4, angle = -0.417989
node = 7, n_lines = 1, xy = -6.662233, 36.459010
  line =   7, type = 8, angle = -9.000000
Lines (7 lines, alive + dead ):
line = 1, type = 4, offset = 14 n1 = 1, n2 = 1, left/area = -1, right = 1
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
line = 7, type = 8, offset = 316 n1 = 7, n2 = 7, left/area = 1, right = 0
N,S,E,W,T,B: 36.459010, 36.459010, -6.662233, -6.662233, 0.000000, 0.000000
Areas (1 areas, alive + dead ):
area = 1, n_lines = 1, n_isles = 0 centroid = 7
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
  line =   1
Islands (1 islands, alive + dead ):
isle = 1, n_lines = 1 area = 0
N,S,E,W,T,B: 36.999861, 35.889244, -6.178626, -7.133487, 0.000000, 0.000000
  line =  -1

Attachments (1)

w007n36e.zip (94.8 KB ) - added by msieczka 15 years ago.

Download all attachments as: .zip

Change History (6)

by msieczka, 15 years ago

Attachment: w007n36e.zip added

comment:1 by msieczka, 15 years ago

Same happens for:

v.generalize input=w007n36e output=w007n36e_boyle method=boyle look_ahead=2 iterations=100

comment:2 by msieczka, 15 years ago

Summary: v.generalize: hermite corrupts datav.generalize: hermite, boyle corrupt data

comment:3 by martinl, 15 years ago

Keywords: v.generalize added

comment:4 by mmetz, 12 years ago

Fixed in 6.4.2. Close ticket?

Markus M

comment:5 by neteler, 12 years ago

Milestone: 6.4.06.4.3
Resolution: fixed
Status: newclosed

Closing since fixed.

Note: See TracTickets for help on using tickets.