用于下载3Di场景结果的工具
项目描述
threedi-scenario-downloader
threedi-scenario-downloader软件包包含用于自动化3Di结果中最常用的下载操作的函数。
示例方法包括
下载原始结果。
下载日志。
下载最大水深(非时间序列栅格)。
下载水深(时间序列栅格,提供快照的时间戳)。
根据模型slug或场景名称查找所有场景。
示例
开始导入包
>>> from threedi_scenario_downloader import downloader as dl
设置用于Lizard API认证的API密钥(您可以从这里获取API密钥:<your portal>.lizard.net/management/#/personal_api_keys)
>>> dl.set_api_key("INSERT YOUR API KEY HERE")
根据模型slug(唯一的模型标识符)或场景名称查找场景。除非另有说明,否则返回最后10个匹配结果
>>> scenarios = dl.find_scenarios_by_model_slug("enter your model_uuid", limit=10)
或者
>>> scenarios = dl.find_scenarios_by_name("my_first_scenario", limit=100)
如果存在太多类似命名的场景,则进行区分大小写的精确搜索
>>> scenarios = dl.find_scenarios_by_exact_name("my_first_scenario", limit=100)
您想下载特定场景的原始3Di结果(.nc和.h5文件)吗?请使用以下方法
>>> dl.download_raw_results("scenario_uuid") >>> dl.download_grid_administration("scenario_uuid")
或者
>>> dl.download_raw_results("scenario_uuid",pathname="save_under_different_name.nc") >>> dl.download_grid_administration("scenario_uuid",pathname="save_under_different_name.h5")
可以使用以下方法下载特定场景的(时间序列)栅格
>>> dl.download_maximum_waterdepth_raster("scenario_uuid",projection="EPSG:28992",resolution=10) #download the full extent of the maximum waterdepth of the given scenario_uuid with a 10 meter resolution in the RD New/Amersfoort projection (EPSG:28992) >>> dl.download_waterdepth_raster("scenario_uuid",projection="EPSG:28992",resolution=10,time="2019-01-01T02:00") #download the full extend of the waterdepth at the supplied timestamp given scenario_uuid, on 10 meter resolution in the RD New/Amersfoort projection (EPSG:28992)
栅格下载方法为API创建一个任务。根据大小和分辨率,栅格的准备工作需要一些时间。这些方法会持续检查栅格是否准备好下载。当栅格准备好下载时,Lizard门户中也会创建一条消息。如果您想删除这些消息(例如,由于批量下载),请使用以下方法
>>> dl.clear_inbox()
安装
我们可以使用以下方式安装
$ pip install threedi-scenario-downloader
本项目本身的开发生态安装
我们使用常规pip和virtualenv安装。创建一个虚拟环境并调用pip
$ python3 -m venv venv $ venv/bin/pip install -r requirements.txt
为了得到格式良好的Python文件,而无需手动工作,定期运行以下命令
$ venv/bin/ruff check threedi_scenario_downloader --fix $ venv/bin/ruff format threedi_scenario_downloader
第一个命令还会报告类似语法错误的错误,您需要修复。
定期运行测试。这也检查覆盖率报告
$ venv/bin/pytest
在运行测试之前,在当前目录中创建一个名为test_api_key.txt的文件,并添加一个lizard API密钥。只需键入,一行。否则,测试会抱怨。在github action中,此.txt文件包含TEST_API_KEY github密钥。
需要新版本时联系Reinout,因为尚未自动上传到pypi,所以他必须上传。
如果您需要新的依赖项(如requests),在setup.py中的install_requires中添加它。之后,再次运行安装以实际安装您的依赖项
$ venv/bin/pip install -r requirements.txt
threedi-scenario-downloader的变更日志
1.4 (2024-01-26)
改进了测试设置:pytest fixture自动设置API密钥。在test_api_key.txt中添加一个。
从Amazon S3下载文件时,我们不发送lizard认证头。
1.3 (2024-01-17)
对lizard行为变化进行了一些修复。
1.2 (2023-06-29)
添加了基本子端点。
一些小修复。
现在保证分辨率。
1.1 (2023-06-13)
添加了对子端点“/api/v4/scenarios/{uuid}/results/damage/”和“/api/v4/scenarios/{uuid}/results/arrival/”的支持
现在添加了对“resolution”,“projection”,“bbox”和“time”使用关键字参数的支持。
修复了宽度和高度问题。
1.0 (2023-05-15)
修改了函数以支持Lizard API v4(本版本不支持v3)
添加了对错误API请求的错误语句
0.16 (2022-09-07)
添加了find_scenarios_by_exact_name()函数,该函数不执行对包含搜索词的名称(如find_scenarios_by_name()执行)的不区分大小写的搜索,而只执行精确匹配。如果有太多类似名称的场景,这很有用。
0.15 (2021-08-12)
bump bleach到3.1.4
0.14 (2021-08-12)
添加了下载聚合NetCDF函数
添加了下载日志函数
添加了函数描述
一些小修复
0.13 (2021-07-22)
添加了栅格下载的批量功能
添加了恢复批量功能
0.12 (2020-02-18)
针对Lizard API任务端点改进的反馈进行了调整
0.11 (2019-06-03)
更新了find_scenarios方法。使用‘name’参数进行精确搜索,使用‘name__icontains’进行部分搜索
0.10 (2019-05-27)
增加了下载块的大小
添加了bounds_srs作为可选参数,用于定义提供的边界所在的坐标参考系统
0.9 (2019-05-22)
使用流更新了下载方法
更新了urllib3依赖项
0.8 (2019-03-14)
修复了下载总损害栅格的bug
0.7 (2019-02-15)
添加了有间隔的时间栅格
从场景检索分组(静态、时间)下载链接
0.6 (2019-02-13)
添加了下载原始3Di结果的方法
添加了下载gridadmin的方法
添加了从Lizard API下载文件的认证方法
0.5 (2019-02-13)
清理了docstrings和请求参数的使用
使结果限制可更改
添加了URL检索方法
添加了搜索的可编辑结果限制
0.2 (2019-01-24)
0.1 (2019-01-23)
使用cookiecutter和https://github.com/nens/cookiecutter-python-template创建了初始项目结构
初始工作版本。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
threedi-scenario-downloader-1.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a416bb6e03fb17928eb6e0e84901e0613a27c4d59fc3009aff5d93514e7f82b3 |
|
MD5 | b4c4411ef8368ff420b2b4a8fc1fa8f5 |
|
BLAKE2b-256 | f3745024ca4f72dec37665ffda472e15e0264ee1d2ec37c6b78e7e83aac859a8 |