Giter Club home page Giter Club logo

pbf2json's Introduction

pbf2json creates a JSON stream of openstreetmap data from any PBF extract, you can pick-and-choose only the bits of the file you want, the library will take care of de-normalizing the relational data (nodes/ways/relations) so you can put it straight in to your favourite document-store, inverted index or graph database.

animated-gif

Run from pre-built binary

Greenkeeper badge

You don't need to have Go installed on your system to use one of the precompiled binaries in ./build:

# AMD 64-bit linux/macOS/windows
$ ./build/pbf2json.linux-x64
$ ./build/pbf2json.darwin-x64
$ ./build/pbf2json.win32-x64

# ARM 64-bit linux/macOS
$ ./build/pbf2json.linux-arm64
$ ./build/pbf2json.darwin-arm64

Usage

To control which tags are output you must pass the -tags= flag to pbf2json and the PBF filepath:

$ ./build/pbf2json.linux-x64 -tags="amenity" /tmp/wellington_new-zealand.osm.pbf
{"id":170603342,"type":"node","lat":-41.289843000000005,"lon":174.7944402,"tags":{"amenity":"fountain","created_by":"Potlatch 0.5d","name":"Oriental Bay Fountain","source":"knowledge"},"timestamp":"0001-01-01T00:00:00Z"}
{"id":170605346,"type":"node","lat":-41.2861039,"lon":174.7711539,"tags":{"amenity":"fountain","created_by":"Potlatch 0.10c","source":"knowledge"},"timestamp":"0001-01-01T00:00:00Z"}

Advanced Usage

Multiple tags can be specified with commas, records will be returned if they match one OR the other:

# all buildings and shops
-tags="building,shop"

Tags can also be grouped with the + symbol, records will only be returned if they match one AND the other:

# only records with BOTH housenumber and street specified
-tags="addr:housenumber+addr:street"

You can also combine the above 2 delimiters to get even more control over what get's returned:

# only highways and waterways which have a name
-tags="highway+name,waterway+name"

If you need to target only specific values for a tag you can specify exactly which values you wish to extract using the ~ symbol:

# only extract cuisine tags which have the value of vegetarian or vegan
-tags="cuisine~vegetarian,cuisine~vegan"

Denormalization

When processing the ways, the node refs are looked up for you and the lat/lon values are added to each way.

Since version 3.0 centroids are also computed for each way, since version 5.0 bounds are now also computed.

Output of the nodes array (as seen below) is optional, this was disabled by default in version 5.0 but can be enabled with the flag --waynodes=true.

{
  "id": 301435061,
  "type": "way",
  "tags": {
    "addr:housenumber": "33",
    "addr:postcode": "N5 1TH",
    "addr:street": "Highbury Park",
    "building": "residential"
  },
  "centroid": {
    "lat": "51.554679",
    "lon": "-0.098485"
  },
  "bounds": {
    "e": "-0.0983673",
    "n": "51.5547179",
    "s": "51.5546574",
    "w": "-0.0985915"
  },
  "nodes": [
    {
      "lat": "51.554663",
      "lon": "-0.098369"
    },
    {
      "lat": "51.554657",
      "lon": "-0.098529"
    },
    {
      "lat": "51.554656",
      "lon": "-0.098592"
    },
    {
      "lat": "51.554676",
      "lon": "-0.098590"
    },
    {
      "lat": "51.554680",
      "lon": "-0.098529"
    },
    {
      "lat": "51.554715",
      "lon": "-0.098529"
    },
    {
      "lat": "51.554720",
      "lon": "-0.098369"
    },
    {
      "lat": "51.554663",
      "lon": "-0.098369"
    }
  ]
}

Relations

Since version 6.0 centroids and bounding boxes are also computed for relations, the calulations are based off the largest member way by area.

Note: if a relation does not contain at least one way then it will not be output.

Leveldb

This library uses leveldb to store the lat/lon info about nodes so that it can denormalize the ways for you.

By default the leveldb path is set to /tmp, you can change where it stores the data with a flag:

$ ./build/pbf2json.linux-x64 -leveldb="/tmp/somewhere"

Batched writes

Since version 3.0 writing of node info to leveldb is done in batches to improve performance.

By default the batch size is 50000, you can change this with the following flag:

$ ./build/pbf2json.linux-x64 -batch="1000"

NPM module

var pbf2json = require('pbf2json'),
    through = require('through2');

var config = {
  file: '/tmp/wellington_new-zealand.osm.pbf',
  tags: [
    'addr:housenumber+addr:street'
  ],
  leveldb: '/tmp'
};

pbf2json.createReadStream( config )
 .pipe( through.obj( function( item, e, next ){
    console.log( item );
    next();
 }));

Run the go code from source

Make sure Go is installed and configured on your system, see: https://gist.github.com/missinglink/4212a81a7d9c125b68d9

Note: You should install the latest version of Golang, at least 1.5+, last tested on 1.6.2

sudo apt-get install mercurial;
go get;
go run pbf2json.go;

Compile source for all supported architecture

If you are doing a release and would like to compile for all supported architectures:

note if this is your first time doing this please read the notes in './compile.sh' to set it all up on your machine.

bash compile.sh;

Compile source for a new architecture

If you would like to compile a version of this lib for an architecture which isn't currently supported you can:

go get;
go build;
chmod +x pbf2json;
mv pbf2json build/pbf2json.{platform}-{arch};

Note you will need to change the variables {platform} and {arch} to match those returned by nodejs for your system:

$ node
> var os=require('os')
> os.platform()
'linux'
> os.arch()
'x64'

Then submit a pull request, you are awesome ;)

pbf2json's People

Contributors

atkinchris avatar dianashk avatar doubleswirve avatar ericpkerr avatar greenkeeper[bot] avatar greenkeeperio-bot avatar hkrishna avatar missinglink avatar orangejulius avatar paulmach avatar sevko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pbf2json's Issues

An in-range update of semantic-release is breaking the build 🚨

Version 15.9.12 of semantic-release was just published.

Branch Build failing 🚨
Dependency semantic-release
Current Version 15.9.11
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

semantic-release is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes v15.9.12

15.9.12 (2018-08-27)

Bug Fixes

  • hide sensitive data in relesae notes and fail/success plugin params (dffe148)
Commits

The new version differs by 1 commits.

  • dffe148 fix: hide sensitive data in relesae notes and fail/success plugin params

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

OS X build appears broken in version 4.0.0

E.g output from pelias/openstreetmap unit tests

ADmins-MacBook-Pro-3:openstreetmap alec$ git branch -v
  config-imports             95600e9 Cleaning up code for OSM importer
  import-multiple-pbfs-final b439739 use pelias-logger and stylistic changes to comments
* master                     a52aceb Merge pull request #171 from pelias/update_travis_node_versions
  production                 3c54bcf [behind 47] Merge pull request #143 from pelias/staging
  refactor-streams-interface e4d13cb [ahead 12, behind 12] changing to use the logger and stylistic changes to comments
  wip-multiple-pbfs          75edb71 WIP
ADmins-MacBook-Pro-3:openstreetmap alec$ npm i
ADmins-MacBook-Pro-3:openstreetmap alec$ npm run end-to-end

> [email protected] end-to-end /Users/alec/openstreetmap
> npm run pretest && node test/end-to-end.js;


> [email protected] pretest /Users/alec/openstreetmap
> test/pretest.sh

/Users/alec/openstreetmap/test/vancouver_canada.osm.pbf
actual count: 0
expected count: 5775
matching count: 0
difference count: 0
end-to-end tests failed :(

additionally this output is shown in the unit tests, although they all pass

[pbf2json]: /Users/alec/openstreetmap/node_modules/pbf2json/build/pbf2json.darwin-x64: /Users/alec/openstreetmap/node_modules/pbf2json/build/pbf2json.darwin-x64: cannot execute binary file

using pbf2json <4 will allow the end to end tests to pass

npm install --global doesn't work right

It'd be great to be able to do:

npm install -g pbf2json
pbf2json ...

I'm guessing that what needs to happen is during the install process, it sets up a symlink to the correct binary for the platform.

Log levels

Users often get worried about the 'denormalization failed' messages and open issues.

It would be better if this library used a log library and the verbosity level could be configured via a cli flag and via the npm interface.

Old pre-built binary versions

Use-cases

The user should be able to figure out:

  • How to get the latest pre-built binary
  • What is the version number of a given pre-built binary

Attempted Solutions

I looked at GitHub / master branch, where:

  • releases say latest version is 6.5.0
  • the build folder contains files from 10 month ago, so it cannot be 6.5.0, but not even 6.4.0. Probably they are from 6.3.0
  • I tried to run --version and --help on them, but it was not possible to see the version in any way
  • I tried downloading from npm, again, I had no idea what binary version is included there.

Proposal

  • Document the above points
  • Add a --version switch so that it's clear what version is a given pre-built binary.

relations with no ways

There are valid relations which contain no ways.
We currently discard these with the assumption that relations with no ways are a denormalization failure.

There are some examples in this issue:
pelias/openstreetmap#480

I'm not 100% sure on which 'role' would be preferential to select from the available nodes, in the case of the examples above, they seem to have a public transit related 'role', in the case of country boundaries there can be a 'city_centre' role which is also a node.

It would be great if we could support these relations.

One thing to consider is duplication, in some cases the node which we select to represent the relation will be exported in its own right (because it also contains tags from the target list).

So in this case we should detect that a duplicate record would be created and skip exporting the relation, I guess if the name tags differ then they wouldn't be considered dupes..

please recompile binary

hey @razafinr @hkrishna could you please recompile the Go source for your architectures and submit a PR?

I made some changes this morning:

diff: 56a9543...33da565

  • upgrade fixture file to a larger Vancouver extract in order to catch a wider range of errors
  • trim tag keys & values #10
  • gracefully handle extracts missing nodes which are referenced by ways in the same extract #13

... and the biggie

  • support for targeting feature values via a new delimiter ~ #12

trim tag values

we should trim tag keys and values as there are some errors in the vancouver extract data such as (note the leading space for ice_cream) which will be common in the OSM data in general:

  "2757646809": {
    "id": 2757646809,
    "type": "node",
    "lat": 49.312619700000006,
    "lon": -123.14273030000001,
    "tags": {
      "amenity": " ice_cream",
      "source": "local_knowledge"
    },
    "timestamp": "2014-04-01T04:32:43Z"
  },

note: I fixed OSM https://www.openstreetmap.org/changeset/31043074

Get boundary nodes for tag boundary

we can get the way nodes using --waynodes=true.

Is it possible to get boundary nodes as well? I am looking to get boundary of tag "boundary":"administrative"

I am not sure if this request fits the original purpose of this tool, to be useful for geocoding. If this does and is possible to develop, I would like to involve in developing this feature.

Geocoding returns OSM-ID, which seems not valid

I tried following example on the geocoding API:
https://api.openrouteservice.org/geocode/autocomplete?api_key=&text=Kirchst&focus.point.lon=8.677&focus.point.lat=49.405&boundary.circle.lon=8.677&boundary.circle.lat=49.405&boundary.circle.radius=50

In the result I got (between others) the following result:
...
id | "polyline:5044003"
gid | "openstreetmap:street:polyline:5044003"
layer | "street"
source | "openstreetmap"
source_id | "polyline:5044003"
name | "Kirchstraße"
street | "Kirchstraße"
distance | 0.281
...
But the reverse check iwth openstreetmap delivers the osm ID 708024005.

The expected behaviour would be to get this ID as the result from the geocode API!

Is there any mapping? How does is the relationship to the OSM data?

Best Regards,
mg

test failure for +- 0.0

On the Mac ARM machines this one test fails due to -0 != +0

go test
--- FAIL: TestComputeCentroidForClosedPolygon (0.00s)
    centroid_test.go:84: 
        	Error Trace:	centroid_test.go:84
        	Error:      	Not equal: 
        	            	expected: "0.0000000"
        	            	actual  : "-0.0000000"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-0.0000000
        	            	+-0.0000000
        	Test:       	TestComputeCentroidForClosedPolygon
FAIL
exit status 1
FAIL	github.com/pelias/pbf2json	0.123s

leveldb:PUT performace

We may be able to get better performance on PUT operations to leveldb by batching the PUT operations and/or using an async approach rather than a sync one to avoid blocking while waiting for the I/O operation to resolve.

Requires some investigation.

ref: https://github.com/google/leveldb#features

The basic operations are Put(key,value), Get(key), Delete(key).
Multiple changes can be made in one atomic batch.

OSM Multipolygons not included in exports

First of all, thanks for putting this tool together! I've found there are not many great tools out there for denormalizing and exporting OSM polygon data and this is one of the better ones I've found.

Recently I was using pbf2json to export some large OSM files to json and I found that it seems to omit multipolygon relations from the denormalized output.

Here's an example PBF file which I have been testing with: https://www.dropbox.com/s/9gbqm922jsbzxnl/dc_sample.pbf?dl=0

This was exported from the following OSM api query:

wget -O ~/Downloads/dc_sample.osm "http://api.openstreetmap.org/api/0.6/map?bbox=-77.04935073852539,38.89196809844948,-77.03342914581299,38.90265604620856"

And here is an example of an OSM relation which would hopefully get included when exporting this file against the building tag: http://www.openstreetmap.org/relation/1029285

(For example here's the command I am using to export):

pbf2json -tags="building" dc_sample.pbf > dc_sample.json

I'd love to discover that I'm doing something incorrectly here and it is actually possible to retrieve these.

Unfortunately I suspect the root issue here may have to do with the somewhat complicated way in which OSM relations have to be processed. I've been researching this problem a bit myself and while I'm still not sure I totally have a handle on it I found this repo to have some helpful info in understanding the issue: https://github.com/osmlab/fixing-polygons-in-osm.

Thanks again for the work you have put into this project. Let me know if I can provide any more useful information!

Extract All Tags!

Hi.
Is it possible to extract all tags from a pbf file?
in a command like this

$ ./build/pbf2json.linux-x64 -tags="ALLTAGS" /tmp/wellington_new-zealand.osm.pbf
Thanks.

Lock problems on MacOS

When using this library in the MacOS environment several lock errors will be presented, I don't know if it is related but I've tried to build the leveldb package using node and it failed. I'm using MacOS Sierra.

filter by type

an additional filter in addition to -tags would be useful

called -type with one of the following values; node, way, relation

Use-cases

useful to further subdivide the output obtained by types

for example house numbers and streets

An in-range update of deep-diff is breaking the build 🚨

Version 1.0.2 of deep-diff was just published.

Branch Build failing 🚨
Dependency deep-diff
Current Version 1.0.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

deep-diff is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 11 commits.

  • 5133f9c 1.0.2
  • 9ea4967 changelog
  • 89aefbe latest lts version
  • c880575 Merge pull request #134 from xanderberkein/master
  • 2c2a414 Build changes
  • 2b1ffbc Merge remote-tracking branch 'KidkArolis/fix-undefined-root'
  • 9b9b804 Fix the case when this/root is undefined
  • 7540f6e Add comment
  • db33fc6 Add support for react-native
  • d40f7dc more examples for issue 113
  • d4ad868 closes #126 - example of prefiltering

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

[pbf2json]: denormalize failed for relation

I am building europe with your docker files. Everything is preparing and importing nicely, except that I have thousands of the following lines in my log:

[pbf2json]: 2019/04/24 07:10:46 denormalize failed for relation: 3607248 no ways found
[pbf2json]: 2019/04/24 07:10:46 denormalize failed for way: 244292338 node not found: 2516251096
[pbf2json]: 2019/04/24 07:10:46 denormalize failed for relation: 3607301 no ways found
[pbf2json]: 2019/04/24 07:10:46 denormalize failed for way: 32919502 node not found: 302613551
[pbf2json]: 2019/04/24 07:06:46 denormalize failed for relation: 364100 no ways found

I use the following pbf file:
https://download.geofabrik.de/europe-latest.osm.pbf

Here is my complete pelias.json config:
https://github.com/dataBikeHsUlm/docker/blob/master/projects/europe/pelias.json

And docker compose:
https://github.com/dataBikeHsUlm/docker/blob/master/projects/europe/docker-compose.yml

What's wrong?

Cross-compile binary for different architectures

As reported by @hkrishna the compiled binary does not work on OSX and also will not work on windows machines.

In order to fix this we need to compile the binary once per architecture and commit each version to the repo, then we will need to select the correct binary file to use depending on the client architecture.

This is still a better solution then requiring users to have the golang binaries on their system.

These are my install instructions for golang on ubuntu, unfortunately I don't have an OSX machine to test on but if someone can get Go installed on their mac I can help out from there.

https://gist.github.com/missinglink/4212a81a7d9c125b68d9
https://golang.org/doc/install

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml
  • The new Node.js version is in-range for the engines in 1 of your package.json files, so that was left alone

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

"file missing" error

If the leveldb file becomes corrupted, future execution of the script results in an immediate fatal error:

2015/02/26 16:54:32 file missing
exit status 1

Changing the location of the leveldb directory or removing the files solves the issue.

Centroid computation for relations in some cases broken

Describe the bug

Currently, centroids of relations are being calculated by detecting the largest area and calculating the centroid of it. This is broken for some relations, since members of relation-type outer cannot always be seen as one shape. For Hamburg there are multiple way objects that are describing the border. Choosing the largest area therefore is not helpful here.

Steps to Reproduce

Dataset: https://download.geofabrik.de/europe/germany/hamburg.html

Expected behavior

Detecting relation members as closed or open ways. If closed => calculate centroid, if open => create polygon out of them and compute centroid. Also, administrative relations have a admin_centre member, that could be used as a centroid.

Pastebin/Screenshots

Calculated centroid of Hamburg
image

Actual centroid of Hamburg
image

Fatal Error Using pbf2json on OSX

Encountered error when running Open Street Map importer. Tried pbf2json version 4.3.0 and version in #43.

OSX Version: 10.12.5 (16F73)

Go is not installed on this machine.

openstreetmap git:(production) npm start

> [email protected] start /Users/lilyhe/openstreetmap
> node index.js

2017-06-06T19:35:20.275Z - info: [openstreetmap] Creating read stream for: /Users/lilyhe/Data/openstreetmap/new-york_new-york.osm.pbf
2017-06-06T19:35:23.100Z - info: [wof-pip-service:master] dependency worker loaded 38 features in 1.568 seconds
2017-06-06T19:35:23.460Z - info: [wof-pip-service:master] borough worker loaded 107 features in 1.922 seconds
2017-06-06T19:35:26.105Z - info: [wof-pip-service:master] macrocounty worker loaded 372 features in 4.574 seconds
[pbf2json]: fatal error: unexpected signal during runtime execution
[pbf2json]: fatal error: unexpected signal during runtime execution
[pbf2json]:
[pbf2json]: [signal
[pbf2json]: 0xb
[pbf2json]: code=
[pbf2json]: 0x1
[pbf2json]: addr=
[pbf2json]: 0xf0f5413dc6a
[pbf2json]: pc=
[pbf2json]: 0x1287b
[pbf2json]: ]
[pbf2json]:
[pbf2json]: runtime stack:
[pbf2json]: runtime.throw(0x2ec720,
[pbf2json]: 0x2a)
[pbf2json]: 	/usr/local/go/src/runtime/panic.go:547 +0x90
[pbf2json]: runtime.sigpanic()
[pbf2json]: 	/usr/local/go/src/runtime/sigpanic_unix.go:12 +0x5a
[pbf2json]: runtime.unlock(0x3f3ea0)
[pbf2json]: 	/usr/local/go/src/runtime/lock_sema.go:107
[pbf2json]: +0x14b
[pbf2json]: runtime.(*mheap).alloc_m
[pbf2json]: (0x3f3ea0, 0x1
[pbf2json]: , 0x4, 0x1a385e8)
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:492 +0x314
[pbf2json]: runtime.(*mheap).alloc.func1()
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:502 +0x41
[pbf2json]: runtime.systemstack(0xc820041e58)
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:307 +0xab
[pbf2json]: runtime.(*mheap).alloc(0x3f3ea0, 0x1, 0x10000000004,
[pbf2json]: 0x1251f)
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:503 +0x63
[pbf2json]: runtime.(*mcentral).grow(0x3f5330, 0x0)
[pbf2json]: 	/usr/local/go/src/runtime/mcentral.go:209
[pbf2json]: +0x93
[pbf2json]: runtime.(*mcentral).cacheSpan(0x3f5330, 0x1a385e8)
[pbf2json]: 	/usr/local/go/src/runtime/mcentral.go:89 +0x47d
[pbf2json]: runtime.(*mcache).refill(0x4654b0, 0x4, 0x1a385e8)
[pbf2json]: 	/usr/local/go/src/runtime/mcache.go:119 +0xcc
[pbf2json]: runtime.mallocgc.func2()
[pbf2json]: 	/usr/local/go/src/runtime/malloc.go:642 +0x2b
[pbf2json]: runtime.systemstack(0xc820022000)
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:291 +0x79
[pbf2json]: runtime.mstart()
[pbf2json]: 	/usr/local/go/src/runtime/proc.go:1051
[pbf2json]:
[pbf2json]: goroutine 7 [running]:
[pbf2json]: runtime.systemstack_switch(
[pbf2json]: )
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:245 fp=0xc820215818 sp=0xc820215810
[pbf2json]: runtime.mallocgc(0x30, 0x26a880, 0x0, 0xc81ceea71c)
[pbf2json]: 	/usr/local/go/src/runtime/malloc.go:643 +0x869 fp=0xc8202158f0 sp=0xc820215818
[pbf2json]: runtime.newobject(0x26a880, 0xc8822b1c70)
[pbf2json]: 	/usr/local/go/src/runtime/malloc.go:781 +0x42 fp=0xc820215918 sp=0xc8202158f0
[pbf2json]: runtime.makemap(0x1da480, 0x0, 0x0, 0x0, 0xc88229dfb0)
[pbf2json]: 	/usr/local/go/src/runtime/hashmap.go:257 +0x381 fp=0xc820215978 sp=0xc820215918
[pbf2json]: github.com/qedus/osmpbf.(*tagUnpacker).next(0xc820215c28, 0xc8822b1c90)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode_tag.go:22 +0x4a fp=0xc820215a20 sp=0xc820215978
[pbf2json]: github.com/qedus/osmpbf.(*dataDecoder).parseDenseNodes(0xc820215ef8, 0xc8201f0900, 0xc8211f6480)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode_data.go
[pbf2json]: :91 +0x492 fp=0xc820215cf8 sp=0xc820215a20
[pbf2json]: github.com/qedus/osmpbf.(*dataDecoder).parsePrimitiveGroup(0xc820215ef8, 0xc8201f0900, 0xc8211f6400)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode_data.go:40 +0xb1 fp=0xc820215d70 sp=0xc820215cf8
[pbf2json]: github.com/qedus/osmpbf.(*dataDecoder).parsePrimitiveBlock(0xc820215ef8, 0xc8201f0900)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode_data.go:34 +0xa1 fp=0xc820215dd8 sp=0xc820215d70
[pbf2json]: github.com/qedus/osmpbf.(*dataDecoder).Decode(0xc820215ef8, 0xc82001a080, 0x0, 0x0, 0x0, 0x0, 0x0)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode_data.go:28 +0x235 fp=0xc820215e88 sp=0xc820215dd8
[pbf2json]: github.com/qedus/osmpbf.(*Decoder).Start.func1(0xc82001c300, 0xc82001c360)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:143 +0x130 fp=0xc820215f90 sp=0xc820215e88
[pbf2json]: runtime.goexit()
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc820215f98 sp=0xc820215f90
[pbf2json]: created by
[pbf2json]: github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:151 +0x2fd
[pbf2json]:
[pbf2json]: goroutine 1 [chan receive]:
[pbf2json]: main.run(0xc820018320, 0xc8201f4180, 0x7fff5fbfe449, 0x3a, 0x7fff5fbfe444, 0x4, 0xc820014ea0, 0xc350)
[pbf2json]: 	/home/peter/.go/src/github.com/pelias/pbf2json/pbf2json.go:83 +0xf7
[pbf2json]: main.main()
[pbf2json]: 	/home/peter/.go/src/github.com/pelias/pbf2json/pbf2json.go:74 +0x43b
[pbf2json]:
[pbf2json]: goroutine 5 [running]:
[pbf2json]: 	goroutine running on other thread; stack unavailable
[pbf2json]: created by github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:151 +0x2fd
[pbf2json]:
[pbf2json]: goroutine 6 [running]:
[pbf2json]: 	goroutine running on other thread; stack unavailable
[pbf2json]: created by github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:151 +0x2fd
[pbf2json]:
[pbf2json]: goroutine 8 [running]:
[pbf2json]: 	goroutine running on other thread; stack unavailable
[pbf2json]: created by github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:151 +0x2fd
[pbf2json]:
[pbf2json]: goroutine 9 [chan send]:
[pbf2json]: github.com/qedus/osmpbf.(*Decoder).Start.func2(0xc820018320, 0x4, 0xc820032030, 0xc820032038, 0xc8200167d0)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:170 +0x273
[pbf2json]: created by github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:180 +0x408
[pbf2json]:
[pbf2json]: goroutine 10 [chan receive]:
[pbf2json]: github.com/qedus/osmpbf.(*Decoder).Start.func3(0xc820018320, 0x4)
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:188 +0xd2
[pbf2json]: created by github.com/qedus/osmpbf.(*Decoder).Start
[pbf2json]: 	/home/peter/.go/src/github.com/qedus/osmpbf/decode.go:202 +0x43a
[pbf2json]:
[pbf2json]: goroutine 17 [select]:
[pbf2json]: github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc8201f2000)
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0x29e
[pbf2json]: created by github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x270
[pbf2json]:
[pbf2json]: goroutine 11 [select]:
[pbf2json]: github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc8201f4180)
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x54d
[pbf2json]: created by github.com/syndtr/goleveldb/leveldb.openDB
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db.go:139 +0x65f
[pbf2json]:
[pbf2json]: goroutine 12 [select]:
[pbf2json]: github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc8201f4180)
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db_state.go:96 +0x22d
[pbf2json]: created by github.com/syndtr/goleveldb/leveldb.openDB
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db.go:140 +0x681
[pbf2json]:
[pbf2json]: goroutine 13 [select]:
[pbf2json]: github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc8201f4180)
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:804 +0x816
[pbf2json]: created by github.com/syndtr/goleveldb/leveldb.openDB
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db.go:146 +0x881
[pbf2json]:
[pbf2json]: goroutine 14 [select]:
[pbf2json]: github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc8201f4180)
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:751 +0x254
[pbf2json]: created by github.com/syndtr/goleveldb/leveldb.openDB
[pbf2json]: 	/home/peter/.go/src/github.com/syndtr/goleveldb/leveldb/db.go:147 +0x8a3
[pbf2json]: [signal 0xb code=0x1 addr=0xf0f5413dc6a pc=0x1287b]
[pbf2json]: runtime stack:
[pbf2json]: runtime.throw(0x2ec720, 0x2a)
[pbf2json]: 	/usr/local/go/src/runtime/panic.go:547 +0x90
[pbf2json]: runtime.sigpanic()
[pbf2json]: 	/usr/local/go/src/runtime/sigpanic_unix.go:12 +0x5a
[pbf2json]: runtime.unlock(0x3f3ea0)
[pbf2json]: 	/usr/local/go/src/runtime/lock_sema.go:107 +0x14b
[pbf2json]: runtime.(*mheap).alloc_m(0x3f3ea0, 0x1, 0x8, 0x1b566f8)
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:492 +0x314
[pbf2json]: runtime.(*mheap).alloc.func1()
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:502 +0x41
[pbf2json]: runtime.systemstack(0xc8201d5e58)
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:307 +0xab
[pbf2json]: runtime.(*mheap).alloc(0x3f3ea0, 0x1, 0x10000000008, 0x1251f)
[pbf2json]: 	/usr/local/go/src/runtime/mheap.go:503 +0x63
[pbf2json]: runtime.(*mcentral).grow(0x3f54f0, 0x0)
[pbf2json]: 	/usr/local/go/src/runtime/mcentral.go:209 +0x93
[pbf2json]: runtime.(*mcentral).cacheSpan(0x3f54f0, 0x1b566f8)
[pbf2json]: 	/usr/local/go/src/runtime/mcentral.go:89 +0x47d
[pbf2json]: runtime.(*mcache).refill(0x465000, 0xc800000008, 0x1b566f8)
[pbf2json]: 	/usr/local/go/src/runtime/mcache.go:119 +0xcc
[pbf2json]: runtime.mallocgc.func2()
[pbf2json]: 	/usr/local/go/src/runtime/malloc.go:642 +0x2b
[pbf2json]: runtime.systemstack(0xc820023500)
[pbf2json]: 	/usr/local/go/src/runtime/asm_amd64.s:291 +0x79
[pbf2json]: runtime.mstart()
[pbf2json]: 	/usr/local/go/src/runtime/proc.go:1051
2017-06-06T19:35:31.269Z - info: [wof-pip-service:master] macroregion worker loaded 83 features in 9.76 seconds
2017-06-06T19:36:10.350Z - info: [wof-pip-service:master] region worker loaded 4870 features in 48.816 seconds
2017-06-06T19:36:12.863Z - info: [wof-pip-service:master] country worker loaded 217 features in 51.37 seconds
2017-06-06T19:37:07.331Z - info: [wof-pip-service:master] neighbourhood worker loaded 64664 features in 105.907 seconds
2017-06-06T19:37:32.033Z - info: [wof-pip-service:master] localadmin worker loaded 115187 features in 130.434 seconds
2017-06-06T19:37:44.016Z - info: [wof-pip-service:master] county worker loaded 40926 features in 142.415 seconds
2017-06-06T19:37:59.830Z - info: [wof-pip-service:master] locality worker loaded 207861 features in 158.245 seconds
2017-06-06T19:37:59.830Z - info: [wof-pip-service:master] PIP Service Loading Completed!!!
^C

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.