geobuf是一种压缩的二进制地理空间格式,用于无损压缩geojson和topojson数据。

geobuf的Python项目详细描述


geobuf是压缩lossless的压缩二进制地理空间格式。 GeoJSON和TopoJSON数据。

Build StatusCoverage Status

note well:此项目不再积极开发。问题和 在可能的情况下,将处理拉取请求,但应延迟 预期。

与直接使用geojson和topojson相比的优势(在这里是revised version):

  • 非常紧凑:通常使geojson小6-8倍,并且 topojson小2-3倍。
  • 甚至在比较gzip大小时也更小:压缩2-2.5x GeoJSON和20-30%的TopoJSON。
  • 简单的增量解析-您可以在阅读时获得功能 它们不需要在内存中构建整个 数据。
  • 部分读取-您只能读取实际需要的部分, 跳过其余部分。
  • 平凡的连接:可以连接许多geobuf文件 它们一起将形成一个有效的组合geobuf文件。
  • 与本机json相比,编码/解码速度可能更快。 实现(即在web浏览器中)。
  • 仍然可以容纳任何geojson和topojson数据,包括 具有任意属性的扩展。

把这看作是设计一个简单、现代的形状文件的尝试 与geojson和topojson无缝工作的后续版本。

Mapbox Vector Tiles不同,它的目标是 无损压缩数据集-无平铺、投影 坐标、展平几何图形或剥离特性。

Pygeobuf

此存储库是此 新版Geobuf(in Python)。它是一个原型游乐场,速度更快 JS和C++在未来的实现。

样本压缩大小

| normal    | gzipped
us-zips.json101.85 MB26.67 MB
us-zips.pbf12.24 MB10.48 MB
us-zips.topo.json15.02 MB3.19 MB
us-zips.topo.pbf4.85 MB2.72 MB
idaho.json10.92 MB2.57 MB
idaho.pbf1.37 MB1.17 MB
idaho.topo.json1.9 MB612 KB
idaho.topo.pbf567 KB479 KB

使用量

命令行:

geobuf encode < example.json > example.pbf
geobuf decode < example.pbf > example.pbf.json

作为模块:

importgeobufpbf=geobuf.encode(my_json)# GeoJSON or TopoJSON -> Geobuf stringmy_json=geobuf.decode(pbf)# Geobuf string -> GeoJSON or TopoJSON

encode函数接受类似dict的对象,例如 json.loads(json_str)的结果。

encode.pygeobuf.encode都接受两个可选参数:

  • 精度-小数点后的最大位数 坐标,6默认。
  • dimensions-坐标中的维数,2by 违约。

测试

py.test -v

测试运行在fixtures目录中的所有.json文件中, 将每个原始geojson与一个编码/解码的geojson进行比较。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于外键约束,java数据库插入失败   java在对失败的测试用例截图时出错,并且它没有附加到扩展报告中   java FragmentPagerAdapter总是从第一页开始   java内存泄漏,当我将数据从一个树存储库复制到另一个ext js 4.1时   java确保带有特定注释的字段是“私有的”   Java如何将UTC毫秒转换为UTC日期   开源Java:Solaris上的AWT   java为什么BufferedReader只读取第一行?   执行数据库查询时,java JTable不会刷新   java 7中的下划线和二进制文字。!!!??   java使用STaX将xml转换为另一个xml需要很多时间   hadoop如何使用JavaAPI从hbase中的表中选择特定列   使用JLabel的java拖放   用于“绘制”pdf文件的pdf生成Java库   java getResourceAsStream返回null?   java在目标帧中打开窗口   滚动对象时,java鼠标光标不会改变   java有人能解释二进制搜索树中的递归delete()并帮我转换它吗