[GRASS-dev] vector dissolve problems

Hi,

I try to merge the 100km tiles of the CORINE vector
landcover maps which are delivered in SHAPE format.

Due to the tiling there are annoying boundaries now
when patching the tiles together. I then tried to
reclass and dissolve them based on the landuse
code to no avail.

Procedure:
for i in E43N26 E44N26 E45N26 E43N25 E44N25 E45N25
do
unzip /cdrom/data/clc00/100km$i.zip
v.in.ogr 100km$i.shp out=clc2000_$i
done

v.patch -e `g.mlist type=vect pat="clc2000_*" sep=,` out=clc2000_tn_bl

# break tile boundaries:
v.clean clc2000_tn_bl out=clc2000_tn_bl_clean tool=break

# reclass to landuse code:
v.reclass clc2000_tn_bl_clean out=clc2000_tn_bl_recl col=CODE_00

# dissolve
v.extract -d clc2000_tn_bl_recl out=clc2000_tn_bl_dissolved

The resulting map remains essentially unchanged:
http://mpa.itc.it/markus/tmp/vect_dissolve_troubles.png

Manual removal in v.digit works. But since I have 700 tiles...

Any ideas?

Markus

Hi Markus,

This is a feature that would be very helpful to have in GRASS. Until
my adventures with PostGIS, I would have to resort to using Arc-*** to
perform this sort of "dissolve". While this functionality is simple to
use in PostGIS, dissolve operations on VERY large datasets can be time
consuming.

Here is a relevant thread on the topic:
http://www.archivesat.com/PostGIS_Users_Discussion/thread690148.htm

Cheers,

Dylan

On 11/10/06, Markus Neteler <neteler@itc.it> wrote:

Hi,

I try to merge the 100km tiles of the CORINE vector
landcover maps which are delivered in SHAPE format.

Due to the tiling there are annoying boundaries now
when patching the tiles together. I then tried to
reclass and dissolve them based on the landuse
code to no avail.

Procedure:
for i in E43N26 E44N26 E45N26 E43N25 E44N25 E45N25
do
unzip /cdrom/data/clc00/100km$i.zip
v.in.ogr 100km$i.shp out=clc2000_$i
done

v.patch -e `g.mlist type=vect pat="clc2000_*" sep=,` out=clc2000_tn_bl

# break tile boundaries:
v.clean clc2000_tn_bl out=clc2000_tn_bl_clean tool=break

# reclass to landuse code:
v.reclass clc2000_tn_bl_clean out=clc2000_tn_bl_recl col=CODE_00

# dissolve
v.extract -d clc2000_tn_bl_recl out=clc2000_tn_bl_dissolved

The resulting map remains essentially unchanged:
http://mpa.itc.it/markus/tmp/vect_dissolve_troubles.png

Manual removal in v.digit works. But since I have 700 tiles...

Any ideas?

Markus

_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev

Dylan,

no, it actually used to work! Something is broken now
with the dissolving. Probably only in 6.3 due to
cats management changes?

Markus

On Fri, Nov 10, 2006 at 08:50:25AM -0800, Dylan Beaudette wrote:

Hi Markus,

This is a feature that would be very helpful to have in GRASS. Until
my adventures with PostGIS, I would have to resort to using Arc-*** to
perform this sort of "dissolve". While this functionality is simple to
use in PostGIS, dissolve operations on VERY large datasets can be time
consuming.

Here is a relevant thread on the topic:
http://www.archivesat.com/PostGIS_Users_Discussion/thread690148.htm

Cheers,

Dylan

On 11/10/06, Markus Neteler <neteler@itc.it> wrote:
>Hi,
>
>I try to merge the 100km tiles of the CORINE vector
>landcover maps which are delivered in SHAPE format.
>
>Due to the tiling there are annoying boundaries now
>when patching the tiles together. I then tried to
>reclass and dissolve them based on the landuse
>code to no avail.
>
>Procedure:
>for i in E43N26 E44N26 E45N26 E43N25 E44N25 E45N25
>do
> unzip /cdrom/data/clc00/100km$i.zip
> v.in.ogr 100km$i.shp out=clc2000_$i
>done
>
>v.patch -e `g.mlist type=vect pat="clc2000_*" sep=,` out=clc2000_tn_bl
>
># break tile boundaries:
>v.clean clc2000_tn_bl out=clc2000_tn_bl_clean tool=break
>
># reclass to landuse code:
>v.reclass clc2000_tn_bl_clean out=clc2000_tn_bl_recl col=CODE_00
>
># dissolve
>v.extract -d clc2000_tn_bl_recl out=clc2000_tn_bl_dissolved
>
>The resulting map remains essentially unchanged:
>http://mpa.itc.it/markus/tmp/vect_dissolve_troubles.png
>
>Manual removal in v.digit works. But since I have 700 tiles...
>
>Any ideas?
>
>Markus
>
>_______________________________________________
>grass-dev mailing list
>grass-dev@grass.itc.it
>http://grass.itc.it/mailman/listinfo/grass-dev
>

_______________________________________________
grass-dev mailing list
grass-dev@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-dev

--
Markus Neteler <neteler itc it> http://mpa.itc.it/markus/
ITC-irst - Centro per la Ricerca Scientifica e Tecnologica
MPBA - Predictive Models for Biol. & Environ. Data Analysis
Via Sommarive, 18 - 38050 Povo (Trento), Italy

Let me know if you get any good tips. We have a similar problem. One of my
students is trying to turn a series of soil maps in DXF format into soil
areas. The boundaries cut across soil areas. We've tried v.clean with snap
to no avail so far. She needs to close a LOT of polygons in order to turn
them to areas.

Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Markus Neteler <neteler@itc.it>
Date: Fri, 10 Nov 2006 12:31:08 +0100
To: GRASS developers list <grass-dev@grass.itc.it>
Subject: [GRASS-dev] vector dissolve problems

Hi,

I try to merge the 100km tiles of the CORINE vector
landcover maps which are delivered in SHAPE format.

Due to the tiling there are annoying boundaries now
when patching the tiles together. I then tried to
reclass and dissolve them based on the landuse
code to no avail.

Procedure:
for i in E43N26 E44N26 E45N26 E43N25 E44N25 E45N25
do
unzip /cdrom/data/clc00/100km$i.zip
v.in.ogr 100km$i.shp out=clc2000_$i
done

v.patch -e `g.mlist type=vect pat="clc2000_*" sep=,` out=clc2000_tn_bl

# break tile boundaries:
v.clean clc2000_tn_bl out=clc2000_tn_bl_clean tool=break

# reclass to landuse code:
v.reclass clc2000_tn_bl_clean out=clc2000_tn_bl_recl col=CODE_00

# dissolve
v.extract -d clc2000_tn_bl_recl out=clc2000_tn_bl_dissolved

The resulting map remains essentially unchanged:
http://mpa.itc.it/markus/tmp/vect_dissolve_troubles.png

Manual removal in v.digit works. But since I have 700 tiles...

Any ideas?

Markus

It tends to drive me crazy...
So: Attached box.asc for Spearfish as test case.

# Import:
v.in.ascii box.asc out=box format=standard
g.region vect=box
d.mon x0
d.vect box
d.vect box disp=cat

# Here maybe the first problem starts: Do we need also
# the boundaries to be of the cat of the centroid?
# Anyway, can be easily changed in box.asc.

# dissolve:
v.extract -d box out=box_diss
d.vect box_diss

# nothing dissolved :frowning:

Questions:
- is the test case correct (I suspect not)?
- with a working test case, does it work with 6.2 and 6.3 or
  only 6.2 (I suspect 6.2 only)

I used it in September to dissolve VMAP0 gridlines, so
it worked...

Let's fix this test case and include it into v.extract for
Soeren's test suite.

Markus

On Fri, Nov 10, 2006 at 09:36:47PM -0700, Michael Barton wrote:

Let me know if you get any good tips. We have a similar problem. One of my
students is trying to turn a series of soil maps in DXF format into soil
areas. The boundaries cut across soil areas. We've tried v.clean with snap
to no avail so far. She needs to close a LOT of polygons in order to turn
them to areas.

Michael
__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

> From: Markus Neteler <neteler@itc.it>
> Date: Fri, 10 Nov 2006 12:31:08 +0100
> To: GRASS developers list <grass-dev@grass.itc.it>
> Subject: [GRASS-dev] vector dissolve problems
>
> Hi,
>
> I try to merge the 100km tiles of the CORINE vector
> landcover maps which are delivered in SHAPE format.
>
> Due to the tiling there are annoying boundaries now
> when patching the tiles together. I then tried to
> reclass and dissolve them based on the landuse
> code to no avail.
>
> Procedure:
> for i in E43N26 E44N26 E45N26 E43N25 E44N25 E45N25
> do
> unzip /cdrom/data/clc00/100km$i.zip
> v.in.ogr 100km$i.shp out=clc2000_$i
> done
>
> v.patch -e `g.mlist type=vect pat="clc2000_*" sep=,` out=clc2000_tn_bl
>
> # break tile boundaries:
> v.clean clc2000_tn_bl out=clc2000_tn_bl_clean tool=break
>
> # reclass to landuse code:
> v.reclass clc2000_tn_bl_clean out=clc2000_tn_bl_recl col=CODE_00
>
> # dissolve
> v.extract -d clc2000_tn_bl_recl out=clc2000_tn_bl_dissolved
>
> The resulting map remains essentially unchanged:
> http://mpa.itc.it/markus/tmp/vect_dissolve_troubles.png
>
> Manual removal in v.digit works. But since I have 700 tiles...
>
> Any ideas?
>
> Markus
>
>

--
Markus Neteler <neteler itc it> http://mpa.itc.it/markus/
ITC-irst - Centro per la Ricerca Scientifica e Tecnologica
MPBA - Predictive Models for Biol. & Environ. Data Analysis
Via Sommarive, 18 - 38050 Povo (Trento), Italy

(attachments)

box.asc (723 Bytes)

Michael Barton wrote:

Let me know if you get any good tips. We have a similar problem. One
of my students is trying to turn a series of soil maps in DXF format
into soil areas. The boundaries cut across soil areas. We've tried
v.clean with snap to no avail so far. She needs to close a LOT of
polygons in order to turn them to areas.

maybe this works as a work around to get rid of the lines:

v.mkgrid
v.overlay ain=polygons bin=grid op=not
v.clean

or before patching,

v.in.ogr
g.region vect=
v.in.region
v.overlay ain=polygons bin=vect_box op=not

Hamish