hydroloom 1.2.0
CRAN release: 2026-05-23
This release introduces an S3 class hierarchy (hy_topo, hy_leveled, hy_node, hy_flownetwork) that lets hydroloom validate input at dispatch time and emit guided error messages. Existing code that passes data.frame or hy objects keeps working – the new classes are assigned automatically by hy() and by producer functions. See ?hy_topo, ?hy_leveled, ?hy_node, and ?hy_flownetwork for representation patterns, required columns, and conversion paths; vignette("non-dendritic") and vignette("network_navigation") provide end-to-end walkthroughs. Package developers should note that returned objects now carry subclass attributes which are stripped by standard dplyr operations.
- Outlet detection is explicit (#85): a row is an outlet when its
toidis not inid. Canonical reserved values (0/""),NA, implicit absence, foreign reserved values, and unique-per-outlet ids are all accepted. Calls that previously errored onNAor orphantoidnow succeed; warnings are narrower (check_hy_outlets()only on type mismatch,sort_network()only on zero outlets). - S3 class hierarchy (#73). Producer functions stamp output classes (
add_toids(),sort_network(),add_levelpaths(),make_node_topology(),to_flownetwork()); dispatch is on subclass with guided errors for wrong input.hy_flownetworkis a separate junction table – it does not inherit fromhy. - New exported helpers:
hy_network_type(),is_dendritic(),hy_capabilities(). Print methods forhy_topo,hy_node,hy_flownetwork. -
hy()gainsadd_topoto auto-buildtoidfromfromnode/tonode. -
add_toids(return_dendritic = FALSE)is deprecated; useto_flownetwork(). -
add_levelpaths()is faster (data.table conversion). - New
check_valid()for sf/sfc geometry repair, includingGEOMETRYCOLLECTIONartifacts fromsf::st_make_valid(). See?check_valid. - New
dissolve_polygons()for unioning catchment or HUC-style polygon coverages, with optional grouping and interior-hole fill. Usesgeos(added to Suggests) for accelerated unions when installed. See?dissolve_polygons. - Fix
get_bridge_flowlines()on networks with independent terminals –make_nondendritic_topology()had collapsed all rows carrying the reserved outlet value into one synthetic node, misclassifying bridges and exhausting memory on continental networks. - Fix
make_to_dt()dendritic branch on tibble input. - Welcome new contributor Andrew Psoras.
-
Deprecation notice: A future release will require that
hy_topoobjects have uniqueidvalues (one row per catchment). Non-dendritic connectivity with duplicated ids in a toid-based edge list will need to be represented ashy_flownetwork(viato_flownetwork()). Developers passing non-dendritic toid tables through hydroloom functions should migrate toto_flownetwork()ormake_node_topology().
hydroloom 1.1.2
CRAN release: 2026-02-20
Hydroloom 1.1.2 introduces new functionality in accumulate_downstream(), reworks the make_index_ids(), and deprecates make_fromids() and format_index_ids() for clarity of package function. Deprecated functions will be removed in the next major version release.
-
subset_network()has been added to support subsetting networks to include all diversions that emanate from the basin. – #60 -
accumulate_downstream()now supports “total upstream” and “divergence routed” accumulation. – #17 -
make_index_ids()has been rewritten. It now uses four modes (“to”, “from”, and “both”). -
make_fromids()is deprecated in favor ofmake_index_ids()with mode = “from”. -
format_index_ids()is deprecated. The *_list element ofmake_index_ids()can be unnested instead.
hydroloom 1.1.0
CRAN release: 2024-08-26
- Add new vignette for network navigation
vignette("network_navigation") - Add support for upmain and downmain navigation in
navigate_network_dfs() - Add support for upmain and downmain in
make_index_ids()andmake_fromids(). - Add function to create a “flownetwork” representation of the network with a
to_flownetworkfunction. - Improved handling / fix bugs with edge cases in
add_toids() - Improved error conditions when missing suggested packages.
-
navigate_hydro_network()will now navigate from a diverted path to a main path where it previously only followed traditional tributaries..
hydroloom 1.0.0
CRAN release: 2023-09-29
- Initialized new project
- Create basic
hys3 object handlinghy() - Ensure tibble is used throughout
- Support generic depth first search navigation
navigate_network_dfs() - Complete migration of nhdplusTools functions to hydroloom. #1
- Support sorting non-dendritic network in
sort_network() - Implemented non-dendritic network support in
add_toids() - Implemented complete stream order / stream calculator attribute
add_streamorder()andadd_streamcalculator()https://github.com/DOI-USGS/nhdplusTools/issues/188 - Support for both numeric and character identifiers #2
- Support for NHDPlus and NHD 24k naming schemes #5
hydroloom_names() - Support for linear indexing for lines that do not have measure attributes #6
index_points_to_lines() - Implemented creation of an attribute topology from a geometric network
make_attribute_topology() - Added vignette showing how to work with the NHD flow table. https://github.com/DOI-USGS/nhdplusTools/issues/340
vignette("flow-table") - Implement method to add divergence attribute to a non-dendritic network.
add_divergence() - Implement basic graph and sophisticate loop detection algorithm #7 and #9.
check_hy_graph()
