Geobuf是一种紧凑的二进制地理空间格式,用于无损压缩GeoJSON和TopoJSON数据。
项目描述
Geobuf是一种紧凑的二进制地理空间格式,用于无损压缩GeoJSON和TopoJSON数据。
注意:该项目不再积极开发。如果有可能,将会处理问题和拉取请求,但请预期会有延迟。
相对于直接使用GeoJSON和TopoJSON的优势(在此修订版中)
非常紧凑:通常使GeoJSON缩小6-8倍,TopoJSON缩小2-3倍。
即使与gzip压缩大小相比也较小:GeoJSON压缩2-2.5倍,TopoJSON压缩20-30%。
易于进行增量解析——您可以在读取数据的同时获取功能,无需在内存中构建整个数据表示。
部分读取——您可以只读取实际需要的部分,跳过其余部分。
简单连接:可以将多个Geobuf文件连接在一起,它们将形成一个有效的组合Geobuf文件。
与原生JSON实现(例如在Web浏览器中)相比,可能具有更快的编码/解码速度。
仍然可以容纳任何GeoJSON和TopoJSON数据,包括具有任意属性的扩展。
将其视为尝试设计一个简单、现代的Shapefile后继产品,它可以无缝地与GeoJSON和TopoJSON一起工作。
与Mapbox矢量瓦片不同,它旨在实现数据集的无损压缩——没有瓦片化、投影坐标、展平几何形状或删除属性。
pygeobuf
此存储库是Geobuf新主要版本的第一个编码/解码实现(在Python中)。它作为一个原型设计游乐场,JS和C++的实现将在未来到来。
样本压缩大小
| normal | gzipped
us-zips.json |
101.85 MB |
26.67 MB |
us-zips.pbf |
12.24 MB |
10.48 MB |
us-zips.topo.json |
15.02 MB |
3.19 MB |
us-zips.topo.pbf |
4.85 MB |
2.72 MB |
idaho.json |
10.92 MB |
2.57 MB |
idaho.pbf |
1.37 MB |
1.17 MB |
idaho.topo.json |
1.9 MB |
612 KB |
idaho.topo.pbf |
567 KB |
479 KB |
使用方法
命令行
geobuf encode < example.json > example.pbf
geobuf decode < example.pbf > example.pbf.json
作为模块
import geobuf
pbf = geobuf.encode(my_json) # GeoJSON or TopoJSON -> Geobuf string
my_json = geobuf.decode(pbf) # Geobuf string -> GeoJSON or TopoJSON
encode函数接受一个类似于字典的对象,例如json.loads(json_str)的结果。
encode.py和geobuf.encode都接受两个可选参数
precision——坐标中小数点后最大数字位数,默认为6。
dimensions——坐标的维度数量,默认为2。
测试
py.test -v
测试运行通过 fixtures 目录中的所有.json文件,将每个原始GeoJSON与编码/解码的一个进行比较。
项目细节
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分布
geobuf-1.1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c645a2ef7c0a8679b1088981e286357823a2291322de6d0b9ee523212933e9a |
|
MD5 | b7110d8fa197d936daa59842a4bc2170 |
|
BLAKE2b-256 | aff07d9f7d7b2b45dbf9ef6addf00bdd5261045be6e5a37a005e9929c08de86f |