Skip to content

Instantly share code, notes, and snippets.

@booo
Created March 28, 2012 22:29
Show Gist options
  • Select an option

  • Save booo/2231107 to your computer and use it in GitHub Desktop.

Select an option

Save booo/2231107 to your computer and use it in GitHub Desktop.
from fileformat_pb2 import Blob
from fileformat_pb2 import BlobHeader
from osmformat_pb2 import *
from zlib import decompress
def map_reader(f, size, url, params):
data = f.read(4)
while data != "":
blobHeaderSize = int(data.encode("hex"), 32)
data = f.read(blobHeaderSize)
blobHeader = BlobHeader()
blobHeader.ParseFromString(data)
if blobHeader.type == "OSMData":
#yield f.tell()+1, blobHeader.datasize
yield f.read(blobHeader.datasize)
else:
f.seek(blobHeader.datasize, 1)
data = f.read(4)
from disco.ddfs import DDFS
#with open("./berlin.osm.pbf") as f:
# for k, v in map_reader(f, 0, 0, 0):
# print k
#
# #p = PrimitiveBlock()
# #p.ParseFromString(r)
# #print p.granularity
ddfs = DDFS()
print ddfs
ddfs.chunk("data:osm", ["./berlin.osm.pbf"], reader=map_reader)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment