[Talk-de] osmosis schema mit mapnik nutzen Was: Import von Planet.osm?

Florian Lohoff flo at rfc822.org
Di Dez 15 12:09:08 UTC 2009


On Tue, Dec 15, 2009 at 11:59:59AM +0100, Peter Körner wrote:
> > Ich habe den Planeten kürzlich auf einer Dual-Core-CPU mit
> > 2GB RAM in 30 Stunden mittels osmosis importiert. Das war allerdings auch
> > ohne Erstellung von bbox und linestrings. Ein Tagesupdate braucht ca.
> > 2 Stunden. Platzverbrauch in dieser Version ca. 190 GB.
> > 
> > Der Import per osm2pgsql dauert auf dem gleichen Rechner 3-4 Tage bei
> > ca. 100GB Platzverbrauch. (Slim-Mode) Das Tagesupdate ist
> > hier 8-9 Stunden beschäftigt.
> 
> Die osmosis-Version ist dann aber nicht für die verwendung mit mapnik 
> geeignet, oder?

Jein - Das kann man so pauschal nicht sagen - Wenn du das standard mapnik
osm.xml nehmen willst - NEIN - Auch ist das osmosis schema nicht so wirklich
darauf optimiert. Mapnik braucht einfach eine tabelle mit einer geometry
column - point, linestring und irgendwelchen metadaten was das eben sein soll.
Mit entsprechenden regeln kann mapnik das dann malen.

Nichtsdestotrotz benutze ich mapnik mit dem osmosis schema um gewisse
dinge zu rendern - Ist nicht optimal und relativ langsam - aber man
kann zur not auch das osmosis schema nehmen (Und ein paar views dranstricken
damit da wa mapnik interpretierbares rauskommt)

Hier ein Beispiel:

drop view powerlineview;
create view powerlineview AS
        SELECT ways.id,
                voltage.v as voltage,
                ways.linestring as geom
        from    ways left outer join (
                        select way_id,v from way_tags
                         where k='voltage') voltage on ( ways.id = voltage.way_id ),
                way_tags wt
        where   wt.k = 'power'
        and     wt.v = 'line'
        and     wt.way_id = ways.id;

insert into geometry_columns ( f_table_catalog, f_table_schema, f_table_name, 
        f_geometry_column, coord_dimension, srid, type ) 
        values ('', 'public', 'powerlineview', 'geom', '2',4326, 'LINESTRING');

Damit habe ich einen view der nur die powerlines aus dem osmosis schema rausfallen
laesst - Mapnik XML dann:

<Layer name="power" status="on" srs="+proj=latlong +datum=WGS84">
    <StyleName>powerline</StyleName>
    <Datasource>
      <Parameter name="type">postgis</Parameter>
      <Parameter name="user">flo</Parameter>
      <Parameter name="password"></Parameter>
      <Parameter name="dbname">osm</Parameter>
      <Parameter name="table">
      (select id,voltage,geom from powerlineview where inborder(geom,62761)) as powerline</Parameter>
      <Parameter name="estimate_extent">false</Parameter>
      <Parameter name="extent">-180,-89.99,180,89.99</Parameter>
    </Datasource>
</Layer>

inborder ist noch eine funktion die die linestrings innerhalb einer boundary relation
rausrueckt bzw abschneidet ... Um das natuerlich halbwegs in vernuenftigen zeiten
nutzen zu koennen brauch man dann schon die linestrings.

Ich habe aber halt nur die eine datenbank mit osm daten und nicht 20, fuer jeden zweck
eine - Auf derselben datenbank laeuft auch die Strassenlistenauswertung, die Maxspeed
map und das autobug zeugs ...

Aus dem powerline view oben kommt dann sowas bei raus:

http://silicon-verl.de/home/flo/tmp/power-nrw-2009-12-15.png

Tagesaktuelle uebersichtskarten der Hochspannungsleitungen in NRW, eingefaerbt
nach Spannung ...

Ach ja - zum thema Langsam:

flo at t1:~/project/power$ time ./mapnik_nrw.py 
Envelope(634521.097522,6485310.4431,1068667.11162,6919456.4572)

real	1m4.093s
user	0m0.664s
sys	0m0.036s

D.h. 64 Sekunden fuer die NRW Uebersicht mit den Powerlines - Mit dem
osm2pgsql schema und ein paar indexen ginge das vielleicht in 15 Sekunden.

Aber um einmal nachts so ein Bild automatisiert zu rendern fange ich nicht
an mehrere datenbanken zu fuettern ...

Flo
-- 
Florian Lohoff                                         flo at rfc822.org
"Es ist ein grobes Missverständnis und eine Fehlwahrnehmung, dem Staat
im Internet Zensur- und Überwachungsabsichten zu unterstellen."
- - Bundesminister Dr. Wolfgang Schäuble -- 10. Juli in Berlin 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20091215/93acca81/attachment.sig>


Mehr Informationen über die Mailingliste Talk-de