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

Martin Spott Martin.Spott at mgras.net
Fr Sep 3 12:37:44 CEST 2010


Tach zusammen, ich haette da mal 'ne Frage  ;-)

Ich habe mir die freundlichen Shapefiles von CLC2000 geschnappt und
mittels:

  # ~> ogr2ogr [...] -t_srs "EPSG:4326" [...]

in eine PostGIS-Datenbank importiert und dabei gleich reprojiziert (das
macht's einfacher, denn der restliche Kram in der Datenbank liegt in
derselben Form vor).

Dann wollte ich mir gerne einen Umriss des kompletten Datensatzes
bauen, um die abgedeckte Flaeche einfacher anderswo ausschneiden zu
koennen und dachte, das mach' ich am Besten in GRASS.  Vielleicht mutet
die Vorgehensweise etwas unkonventionell an, aber ich konnte bisher
jedenfalls keine technischen Gruende finden, die generell dagegen
spraechen.

Ich habe mir also GRASS7 SVN trunk vom Abend des 22. August uebersetzt
(--enable-64bit --with-pthread --with-cxx --with-nls --with-geos \
--with-postgres --enable-largefile=yes --with-python --with-readline \
--with-cairo=no --with-lapack ....  plus noch ein paar Pfade).

Dann habe ich saemtliche CLC-Objekte innerhalb der Datenbank in ein
einziges Layer zusammenkopiert und anschliessend den Import in GRASS
angeworfen:

  > v.in.ogr dsn="PG:host=[...]" layer=clc00_eumerge output=clc00_eumerge


Ein Export als einziges Shapefile verbietet sich, denn das wuerde die
Grenze von 2 GByte sprengen.

Nun, dass die Aktion etwas laenger dauern wuerde, das war mir
angesichts von gut 2 Millionen Polygonen schon klar.  Nach gut zehn
Tagen und einem Speicherverbrauch von knapp 28 GByte RAM (der Rechner
ist gut ausgestattet und braucht dabei noch nicht zu swappen) habe ich
die Aktion dann aber doch abgebrochen.  GRASS kommentiert den Vorgang
etwa folgendermassen:

Layer: clc00_eumerge
Counting polygons for 2005203 features...
  [...] 100%
Importing map 2005203 features...
  [...] 100%

 --  Ab diesem Punkt ist die Datenbank-Verbindung beendet - das scheint
plausibel. Dann geht's weiter:

Building topology for vector map <clc00_eumerge_tmp at PERMANENT>...
Registering primitives...
  [...]
257140090 vertices registered
Number of nodes: 2315102
Number of primitives: 2331550
Number of points: 0  
Number of lines: 0
Number of boundaries: 2331550  
Number of centroids: 0
Number of areas: -
Number of isles: -
-----------------------------------------------------
WARNING: Cleaning polygons, result is not guaranteed!   
-----------------------------------------------------
Break polygons:
  [...] 100%

So, und dann wird erneut gezaehlt - als ich's nach der beschriebenen
Zeitspanne abgebrochen hatte, waren 35% erreicht. Das war mir
angesichts der verstrichenen Zeit einfach zu wenig  :-)

Einerseits kann ich natuerlich ein anderes Vorgehen waehlen, etwa indem
ich die verschiedenen CLC-Layer einzeln in GRASS importiere.
Im Wesentlichen interessiert mich aber vielmehr folgendes: Ist der
beschriebene Weg wirklich reiner Irrsinn oder sollte GRASS solch ein
Layer im Grunde ohne groessere Komplikationen importieren koennen.

Schoene Gruesse,
	Martin.
-- 
 Unix _IS_ user friendly - it's just selective about who its friends are !
--------------------------------------------------------------------------