[Fossgis-talk] Groessere Vektor-Layer in GRASS7 importieren !?

Markus Neteler neteler at osgeo.org
Fr Sep 3 16:33:52 CEST 2010


Hallo Martin,

hier die Antworten von Markus Metz (unser Vektor-Guru), der nicht auf
der Liste ist - habe ihn direkt gefragt.

ciao
MarkusN

2010/9/3 Markus Metz <markus.metz.giswork at googlemail.com>:
> Hallo Markus,
>
> ich habe CLC2000 selbst schon in einen Monster-Vektor gepackt, hat ein
> paar Stunden gedauert und ca 5GB RAM verbraucht. Die angeblichen 28GB
> Speicherverbrauch kommen mir recht unglaublich vor.
...
> Abgesehen vom Umprojezieren, was bekannternmaßen Probleme bereitet,
> wenn Zusammenkleben nach anstatt vor dem Umprjozieren stattfindet,
> passen die original CLC2000 tiles schon nicht an den Grenzen zusammen
> und es muss ebenfalls gesnappt werden.
>
> Daher empfehle ich erstens eine aktuellere Version als die vom
> 22.August zu nehmen (ab 28. August) und min_area und snap zu setzen,
> auch --v ist ganz informativ. Falls der Martin nicht noch eine andere
> Projektion verwendet hat, die er Dir nicht verraten hat, liegt wohl
> alles in EPSG:4326 = ll vor, also min_area=1 (square meter für ll) und
> snap=0.00001
>
> v.in.ogr dsn="PG:host=[...]" layer=clc00_eumerge output=clc00_eumerge
> min_area=1 snap=0.00001 --o --v
>
> Schöne Grüße
>
> Markus



---------- Forwarded message ----------
From: Markus Metz <markus.metz.giswork at googlemail.com>
Date: 2010/9/3
Subject: Re: [Fossgis-talk] Groessere Vektor-Layer in GRASS7 importieren !?
To: Markus Neteler <neteler at osgeo.org>


Hallo Markus,

Alternative für CLC2000 Import, so sauber wie möglich:

1. alle tiles in GRASS importieren

2. für jedes tile cat Nummern durch CODE_00 ersetzen
2.1 CODE_00 ist varchar(3), also zuerst CODE_00 in integer umwandlen,
z.B. mit v.db.select oder db.select die Spalten cat und CODE_00
ausgeben lassen und eine neue Tabelle erstellen, in der sowohl cat als
auch CODE_00 integer sind (ein kleines Hilfs-Script kann das machen)
2.2 für jedes tile v.reclass column=CODE_00

3. v.patch wichtig: ohne -e

4. v.clean --v tool=snap,bpol,rmdupl,rmline,break,rmdupl,rmdangle,rmarea
thresh=0.00001,0,0,0,0,0,0,10 type=boundary
4.1 Falls bei rmdangle irgendwas geändert wurde, nochmal v.clean
tool=break,rmdupl,rmdangle
4.2 Falls bei rmdangle irgendwas geändert wurde, 4.1 wiederholen, bis
nichts mehr geändert wird.

5. Tabelle mit Legende for CLC2000 importieren und mit dem gepatchten
und gesäuberten Vektor verbinden (Tabelle mit 47 Einträgen statt >2
Millionen Einträgen)

6. Topologischen GRASS-Vektor in GRASS mit v.proj umprojezieren

Oder, da die CLC2000 Originaldaten Rasterdaten sind, einfach die
Raster-Version importieren und in einen Vektor umwandlen...

Schöne Grüße,

Markus