跳转到主要内容

用于下载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)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

threedi-scenario-downloader-1.4.tar.gz (17.3 kB 查看哈希值)

上传时间 源代码

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面