corse routes

Python, emprunte mémoire des dictionnaires !

Un petit tour gratuit sur les dictionnaires en python et leur consommation en mémoire...

L'article fait suite aux premiers tests de osmparser pour parser des bouts de France ./osm.py Loading database in memory Database loaded ways: 156404 nodes: 1711912 1082 Mo
def ways(self, ways):
    # callback method for ways
    for osmid, tags, refs in ways:
            self.w[osmid] = {}
            #self.w[osmid]['tags'] = tags
            self.w[osmid]['refs'] = refs
def nodes(self, nodes):
    # callback method for ways
    for osmid, tags, pos in nodes:
            #print osmid
            self.n[osmid] = {}
            #self.n[osmid]['tags'] = tags
            self.n[osmid]['pos'] = pos
            #print "node:",osmid, tags, pos
  ./osm.py Loading database in memory Database loaded ways:  156404 nodes:  1711912 1020 Mo Get map bound..
def ways(self, ways):
    # callback method for ways
    for osmid, tags, refs in ways:
            self.w[osmid] = {}
            #self.w[osmid]['tags'] = tags
            self.w[osmid]['refs'] = refs
def nodes(self, nodes):
    # callback method for ways
    for osmid, tags, pos in nodes:
            #print osmid
            self.n[osmid] = {}
            #self.n[osmid]['tags'] = tags
            self.n[osmid] = pos
            #print "node:",osmid, tags, pos
  ./osm.py Loading database in memory Database loaded ways:  156404 nodes:  1711912 543 Mo
self.n[osmid] = (pos[0], pos[1], tags)
  ./osm.py Loading database in memory Database loaded ways:  156404 nodes:  1711912 556 Mo Get map bound.. Pareil pour les ways.. ./osm.py Loading database in memory Database loaded ways:  156404 nodes:  1711912 524 Mo Get map bound.. Aille, attention aux dictionnaires en python, on peut vite consommer un max de mémoire pour pas grand chose... Du coup j'ai pu générer la carte des routes d’Alsace et de Corse 🙂
Alsace routes

Alsace routes

Related Post

Partagez..Share on FacebookTweet about this on TwitterShare on Google+Share on RedditShare on TumblrPin on PinterestPrint this pageEmail this to someone

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *