GPX2空间性
gpx2spatialite的Python项目详细描述
Author: | Daniel Belasco Rogers <dan@planbperformance.net>, Peter Vasil <mail@petervasil.net> |
---|
用于将GPX文件导入Spatialite数据库的脚本。
使用Tomo Krajina的GPX模块。GPX2Spatialite需要一个或 充满gpx文件的文件夹并将其导入到Spatialite Spatial中 数据库。导入时,文件被散列并输入到表中 确保不添加具有相同内容的文件 两次。轨迹点的空间信息存储在 Spatialite数据库中的表、轨迹点和轨迹线 是相关的。你可以阅读更多关于陈述理由的细节 来自如下GPX文件的数据: <;http://planbperformance.net/dan/blog/?p=984>;
必需的“user”参数是从 不同的用户进入同一个数据库。这是因为 GPX2Spatialite是作为DrawingLife的导入程序编写的 <;https://github.com/ptrv/drawinglife>;这是一种可视化 彼得·瓦西尔为丹尼尔·贝拉斯科·罗杰斯和 索菲亚新的艺术项目,用全球定位系统记录他们走到哪里 分别从2003年和2007年起(<;http://belasconew.com/works/lifedrawing/>;)
如果只有一个用户要输入,只需选择任意名称并导入 此名称下的所有文件。
因为DrawingLife在屏幕顶部有文本显示 动画屏幕的当前位置,此信息为 由trackpoints表中的citydef\u uid列提供 指向citydefs表。此列也填充在 默认情况下导入。如果不需要,可以设置 选项-s–跳过将加快导入速度的位置 相当地。
依赖关系
Linux和Mac
- Python:
- gpxpy
- pyspacealite,pysqlite2(支持加载扩展)
- 其他库:
- libspacealite
- libsqlite
- gpxpy
- pyspacealite,pysqlite2(支持加载扩展)
- libspacealite
- libsqlite
安装
Linux和Mac
GPX2Spatialite可通过PIP获得。 您只需运行:
pip install gpx2spatialite
或者要使用用户范围安装它,请运行以下命令:
pip install gpx2spatialite --user
确保$HOME/.local/bin在PATH环境变量中可用。 否则,从shell运行gpx2spacealite可执行文件时,将找不到它:
PATH=$PATH:$HOME/.local/bin
窗口
- 下载适用于Windows的Python 2.7 32位软件
- 安装PIP。(见说明here)
- 使用pip install gpxpy 安装gpxpy
- 从http://www.gaia-gis.it/gaia-sins/windows-bin-x86/下载mod_spatialte 并将所有dll提取到C:\Python27\Scripts
- 从sqlite website下载sqlite3.dll (类似于'sqlite-dll-win32-x86-3080704.zip') 并用下载的版本覆盖C:\Python27\Scripts\DLLs中的sqlite3.dll。 (这确保sqlite3.dll能够加载扩展)
- 使用pip install gpx2spatialite 安装gpx2spacealite
用法
可以读取单个文件:
gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/gpx>
或多个文件夹:
gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/folder1> <path/to/folder2>
可以同时指定文件和文件夹:
gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/folder1> <path/to/gpx>
创建新数据库
使用子命令运行脚本以创建新数据库并对其进行初始化:
gpx2spatialite create_db <path/to/new/database>
城市
每个轨迹点都有一个分配给它的位置,用于 drawinglife动画。
除非选项-s或 –跳过位置被传递。
位置在数据库中的citydefs表中定义,创建 并通过运行“gpx2spacealite create_db”自动填充。
将CITYDEFS导入现有数据库:
gpx2spatialite citydefs -i <path/to/input.sql> <path/to/database>
导出citydefs表:
gpx2spatialite citydefs -e <path/to/output.sql> <path/to/database>
将新位置添加到citydefs表后,可以查找 当前未知的轨迹点并将其分配给任何相关的, 新定义的位置:
gpx2spatialite update_locs <path/to/database>
如果您重新定义了当前分配的位置或完全 更改了citydefs表,您将需要重新定义 数据库中的trackpoint,使用-a或者 -上述脚本的所有位置选项:
gpx2spatialite update_locs -a <path/to/database>
单元测试
存储库包含独立的py.test(版本2.5.2)脚本 运行测试.py。
运行以下命令运行测试:
python setup.py test
Local Variables: mode: rst End: