使用bc淡水atlas的python/postgresql工具
fwakit的Python项目详细描述
fwakit
python/postgresql工具,用于处理不列颠哥伦比亚省的Freshwater Atlas
要求
- python 2.7+(使用2.7.14、3.6.4进行测试)
- PostgreSQL/Postgis(用10.2/2.4.2测试)
- gdal(用于将数据加载到postgresql,使用2.2.3进行测试)
安装
$ pip install fwakit
配置
创建环境变量FWA_DB
,并将其设置为数据库的SQLAlchemy db url例如:
MacOS/Linux等:
export FWA_DB=postgresql://postgres:postgres@localhost:5432/fwadb
窗口:
SET FWA_DB="postgresql://postgres:postgres@localhost:5432/fwadb"
有关更多配置,请参见settings.py
设置
从geobc获取fwa数据:
$ fwakit download
请注意,如果您使用的是网络代理,则下载可能无法工作如果失败,请从DataBC's ftp server手动下载并解压缩感兴趣的文件。
创建数据库、加载FWA数据、修复、索引和优化:
$ fwakit create_db
$ fwakit load
$ fwakit clean
请注意,由于该工具将整个fwa文件集下载到磁盘,然后在postgres中复制数据,因此需要大约20g的可用磁盘空间。如果这不可用,请逐层运行加载工具,或者使用ogr2ogr和GDAL VFS /vsicurl and /vsizip直接从ftp站点加载数据。
用法
使用python模块:
import fwakit as fwa
wsg = fwa.list_groups()
fwa.reference_points('point_table', 'point_id', 'event_table', 10)
在PostgreSQL中直接使用已安装的{}前缀函数:
fwakit_test=# SELECT fwa_upstreamlength(354136754, 1200) / 1000 as downstream_km, fwa_downstreamlength(354136754, 1200) / 1000 as upstream_km;
downstream_km | upstream_km
-----------------+------------------
5.1829073255008 | 9.48098793830257
(1 row)
对常见任务使用fwakit
命令行界面:
$ fwakit --help
Usage: fwakit [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
clean Clean and index the data after load
create_db Create a fresh database/schema
download Download FWA gdb archives from GeoBC ftp
dump Dump sample data to file
load Load FWA data to PostgreSQL
使用数据(加载时创建)进行映射和分析,例如:
whse_basemapping.fwa_named_streams
命名流,简化并合并whse_basemapping.fwa_watershed_groups_subdivided
-细分的分水岭组,用于多边形查询中更快的点
学分
- 灵感和代码来自fiona和osmnx
- 非常感谢geobc和环境部建立、维护和发布Freshwater Atlas