Skip to content

Releases: SHUD-System/rSHUD

rSHUD v2.5.0

06 May 14:24
2b7742e

Choose a tag to compare

rSHUD v2.5.0 发布说明

一、发布定位

  • 发布版本:rSHUD v2.5.0
  • 发布提交:2b7742e32ea323a57fd0a947dc2cea67bfd0afd1
  • 发布分支:master
  • 发布性质:v2 系列稳定发布,用于对齐 AutoSHUD v2.5.0
  • v3.0 状态:不在本次发布范围内,后续仍需团队审核通过后再发布

二、主要变化

  • 将包元数据更新到 Version: 2.5.0
  • 刷新英文和中文 README 的安装、版本验证与依赖说明。
  • 明确现代空间依赖基线:terra >= 1.7-0sf >= 1.0-0
  • 保留 rastersprgeosrgdal 作为迁移兼容背景,不作为新流程推荐依赖。
  • 更新迁移指南,继续推荐 snake_case API、terrasf 路径。
  • 衔接 AutoSHUD v2.5.0,保持本地 forcing、forcing coverage 与 ERA5/本地 forcing 文档口径一致。

三、功能边界

  • 本次发布不有意修改水文算法。
  • 本次发布不有意修改 SHUD 输入/输出文件格式。
  • 本次发布不重新生成模型数据或示例输出。
  • 本次发布重点是版本元数据、安装说明、迁移说明、release checklist 与 v2.5.0 发布材料。

四、安装方式

if (!require(devtools)) install.packages("devtools")
devtools::install_github("SHUD-System/rSHUD@v2.5.0")

版本验证:

library(rSHUD)
packageVersion("rSHUD")  # 2.5.0
packageVersion("terra")  # >= 1.7.0
packageVersion("sf")     # >= 1.0.0

五、发布验证

已在发布提交上执行:

  • Rscript prepare_release.R:通过
  • Rscript -e 'desc <- read.dcf("DESCRIPTION"); stopifnot(desc[1,"Version"] == "2.5.0")':通过
  • R CMD build --no-build-vignettes --no-manual --md5 --resave-data .:通过,生成 rSHUD_2.5.0.tar.gz
  • R CMD check --no-manual --no-build-vignettes --no-tests rSHUD_2.5.0.tar.gz:退出码 0

六、已知检查提示

R CMD check 完成但保留以下提示,已记录为发布时已知项:

  • WARNING:sp.RiverPath 文档默认值与代码默认值不一致。
  • WARNING:vignettes/ 下存在 Rmd,但未构建对应 inst/doc 输出。
  • WARNING:inst/doc 目录不存在,vignette 输出未随包提供。
  • NOTE:OpenSpec change 中包含 .openspec.yaml 隐藏文件。

这些提示未阻止源码包构建、安装检查、示例检查和 vignette 代码运行检查;后续可作为独立清理事项处理。

七、Release Asset

  • rSHUD_2.5.0.tar.gz:从发布提交构建的 R 源码包。

rSHUD v2.4.0

03 May 01:47

Choose a tag to compare

Release Date: 2026-05-03

本版本是基于 rSHUD 2.2.0 的累计稳定版发布,整合了 v3 迁移后的解锁修复、兼容层补全、旧空间 API 清理、文档口径统一、CRS 安全保护,以及真实 case 验证前置修复。相比 v2.2.0,本版本重点不是新增水文公式,而是让 v3 代码路径可导出、可测试、可在真实 SHUD 输入上更稳健地运行。

1. 相比 v2.2.0 的总体变化

  • 完成 v3 API 可用性收口:重新生成 NAMESPACE,导出现代 snake_case API 和必要兼容入口。
  • 补齐旧 API 兼容层:旧函数保留为 deprecated wrapper,转发到现代实现,并给出迁移提示。
  • 进一步移除活跃代码、测试和默认文档示例中的旧 spatial API 使用,默认路径切换到 sf / terra
  • 修复包级 R CMD check blockers,examples、tests、Rd usage、vignettes 执行路径整体更稳定。
  • 增加模型构建入口 CRS guard,避免经纬度、feet-unit 投影、缺 CRS 或混合 CRS 输入继续产生 silent wrong output。
  • 修复真实 case 预检中暴露的 LAI、forcing、river attribute、forcing coverage、output 读取和 river geometry 问题。

2. API 导出与兼容性修复

  • 重新生成 NAMESPACE,让 v2.2.0 中已存在但未完整导出的现代函数可以被用户直接调用。
  • 修复 autoBuildModel():旧入口不再直接中止,而是作为兼容 wrapper 转发到 auto_build_model()
  • 增加 legacy 参数名映射和 sp / rastersf / terra 的兼容转换。
  • 增加或修复多个旧入口 wrapper,包括 FromToNode()write.riv()sp.RiverSeg() 等。
  • 增加 SHUD.RIVER 旧对象兼容初始化和 upgrade_shud_river(),用于读取和升级 v2 序列化对象。

3. 空间 API 与 deprecation warning 清理

  • 移除生产路径中对 sp.mesh2Shape() 的活跃依赖,默认改用 mesh_to_sf()
  • sp.Tri2Shape() 现在直接转发到现代 mesh conversion,并只对自身旧名称发出 deprecation warning。
  • 更新 mesh、plot、GIS core 等测试,默认覆盖现代 API。
  • README、中文 README 和非 migration vignettes 的默认示例改为 sf / terra 与 snake_case API。
  • 保留旧 API 只用于 migration 对照、deprecated wrapper、兼容实现和明确的兼容测试。

4. 包级检查与文档稳定性

  • 修复 v2.2.0 后遗留的 R CMD check blockers,包括 examples、Rd usage、vignette 执行路径和 namespace NOTE。
  • 避免文档 vignettes 在 check 中执行依赖外部文件或旧 API 的代码块。
  • 修复 fishnetvoronoipolygons()、legacy plotting examples 等示例路径。
  • 新增 plot_timeseries() 兼容 alias,并恢复 generic time-series plotting 行为。
  • PET_PM() 返回值和单位处理更明确,减少无关控制台输出。
  • 补充 PET、plot、水量平衡等测试覆盖。

5. CRS 安全保护

  • auto_build_model() / quick_model() 增加统一 CRS 校验。
  • 空间输入必须具备 CRS;缺失 CRS 会直接报错。
  • 经度/纬度 CRS 会被拒绝,因为默认 buffer、simplify、mesh 和属性提取参数使用米制空间语义。
  • 投影 CRS 必须使用 metre/meter 单位;feet-unit 投影会被拒绝并提示实际单位。
  • domaindemriversforcing_sitessoilgeologylandcover 等输入必须使用同一 CRS。
  • 本版本选择保守拒绝策略,不自动重投影,避免不同投影输入被静默混算。

6. 真实 case 预检修复

  • read_lai() 支持单 block .tsd.lai 作为 LAI,同时保留双 block LAI / RL 兼容,并为额外 block 提供确定性命名。
  • read_forc_fn() 支持相对 forcing 目录优先相对 .tsd.forc 文件位置解析,同时保留绝对路径行为。
  • RiverAtt(riv=...) 正确使用传入的 SHUD.RIVER 对象,不再无条件从 .shud 环境读取。
  • ForcingCoverage() 支持 point site 和 polygon / multipolygon coverage,增加 filename 数量校验和更清晰的 MULTIPOINT 拒绝信息。
  • 修复 SHUD 输出读取中的版本、变量和表头处理问题,使真实 case 输出更容易被 rSHUD 读取和诊断。

7. River topology 与 geometry 修复

  • FromToNode() / get_from_to_nodes() 移除不安全的 rgeos::gSimplify() 前处理,避免河段端点被简化后无法匹配原始节点。
  • FROM/TO 节点匹配改为向量化 coordinate hash,显著提升大河网性能。
  • 空 LINESTRING、单点 LINESTRING、非有限坐标和首尾相同的退化线会返回 NA 节点,而不是进入拓扑计算。
  • rmDuplicatedLines() 会先过滤无法确定 FROM/TO 节点的无效河段,再执行重复 FROM/TO reach 去重。
  • 增加 river 单元测试,覆盖 invalid geometry 和 duplicate reach 行为。

8. 验证情况

本版本发布前在本地完成以下验证:

  • git diff --check:通过。
  • testthat::test_file("tests/testthat/test-river.R", reporter = "summary"):通过。
  • testthat::test_dir("tests/testthat", reporter = "summary"):通过。
  • R CMD build --no-build-vignettes --no-manual --md5 --resave-data .:通过。
  • R CMD check --no-manual --no-build-vignettes --no-tests rSHUD_2.4.0.tar.gz:通过,保留禁用 vignette build 导致的 2 个既有 warning。

9. 兼容性说明

  • 本版本仍保留大部分旧 API wrapper,但默认文档和普通测试不再把旧 API 作为推荐路径。
  • v2.2.0 中标记的旧 API 迁移方向不变:新代码应优先使用 snake_case、sfterra 路径。
  • 对 CRS 的校验比 v2.2.0 更严格;过去可能继续运行但单位错误或 CRS 混用的输入,现在会提前报错。
  • v2 baseline 只能作为历史参照,不应作为 v3 后续修复后的数值真值。

rSHUD v2.3.0

01 May 14:28

Choose a tag to compare

rSHUD v2.3.0

Release date: 2026-05-01

This release is cut from master before merging PR #9 (fix/issue-7-remove-old-spatial-api-warnings) and serves as the pre-PR v2.3.0 baseline.

Highlights

  • Removed the redundant removeholes() helper and documented modern alternatives.
  • Fixed and optimized FromToNode() by removing problematic rgeos::gSimplify() usage and replacing node matching with a vectorized coordinate-hash approach.
  • Preserves the package state before the next round of old spatial API warning cleanup.

2.0

01 Jul 14:58

Choose a tag to compare

2.0

The release of rSHUD v2.0

Ver 1.0

20 Apr 14:43

Choose a tag to compare

Ver 1.0 Pre-release
Pre-release

Version 1.0 for publishing the SHUD model paper.