File: README.rst

package info (click to toggle)
imposm-parser 1.0.7+ds-6
  • links: PTS, VCS
  • area: main
  • in suites: buster, sid
  • size: 488 kB
  • sloc: cpp: 7,346; python: 925; makefile: 12
file content (41 lines) | stat: -rw-r--r-- 1,371 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
imposm.parser - OpenStreetMap XML/PBF parser for Python
=======================================================

``imposm.parser`` is a Python library that parses OpenStreetMap data in `XML <http://wiki.openstreetmap.org/wiki/.osm>`_ and `PBF <http://wiki.openstreetmap.org/wiki/PBF_Format>`_ format.

It has a simple API and it is fast and easy to use. It also works across multiple CPU/cores for extra speed.

It is developed and supported by `Omniscale <http://omniscale.com>`_ and released under the `Apache Software License 2.0 <http://www.apache.org/licenses/LICENSE-2.0>`_.

Example
-------

Here is an example that parses an OSM file and counts all ways that are tagged as a highway.
::

  from imposm.parser import OSMParser

  # simple class that handles the parsed OSM data.
  class HighwayCounter(object):
      highways = 0

      def ways(self, ways):
          # callback method for ways
          for osmid, tags, refs in ways:
              if 'highway' in tags:
                self.highways += 1

  # instantiate counter and parser and start parsing
  counter = HighwayCounter()
  p = OSMParser(concurrency=4, ways_callback=counter.ways)
  p.parse('germany.osm.pbf')

  # done
  print counter.highways


Source and issue tracker
------------------------

Source code and issue tracker are available at `<https://github.com/omniscale/imposm-parser>`_.