一个通用的AIS I/O库,使用GPSd AIVDM架构。
项目描述
确定在处理时空数据时需要触动的文件。
概述
我们有很多需要按主键、日期时间和空间分块的数据,但当我们只想查看一小部分时,我们不希望逐个检查所有数据。解决方案是一个侧车元数据文件和一个以空间四叉树组织文件结构的文件系统,通过一个简单且轻量级的NoSQL引擎与这些组件交互。
数据按时间和主键分组在匹配四叉树节点的目录中。管理实际文件由用户负责。此库只知道如何与侧车文件交互。
我们希望有一个API
import melvil
import datetime
# The base directory, match expression, etc. are all defined in a configfile
# Only process data from the past 30 days that appears in the lower left
# quadrant of the world, as specified by WGS84
max_ts = datetime.datetime.now()q
min_ts = max_ts - datetime.timedelta(days=30)
bbox = (-180, -90 0, 0)
for fp in melvil.search(min_ts=min_ts, max_ts=max_ts, bbox=bbox):
with open(fp) as f:
# Do something
和CLI
$ melvil search --min-ts 2014-01-01 --max-ts 2015-01-01 --bbox -180 -90 0 0
/path/to/output/file/1
/path/to/output/file/2
/path/to/output/file/3
...
在底层,melvil正在寻找
开发
$ git clone https://github.com/SkyTruth/Dewey
$ cd Dewey
$ virtualenv venv
$ pip install -e .[test]
$ py.test tests --cov melvil --term-missing melvil
许可
见 LICENSE.txt。