Releases: DOI-USGS/hydroloom
Release list
v1.2.1
Maintenance release completing the USGS official software release
review (#72). No package code changed.
- Cleaned up vignette messages noted in review (#96).
- Web service walkthroughs are now website-only articles at
https://doi-usgs.github.io/hydroloom/;hydroloom.Rmdis the only
installed vignette. - Citation updated to the software release DOI,
https://doi.org/10.5066/P16RS3UZ.
hydroloom v1.2.0
hydroloom 1.2.0
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_flownetwork
is 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-buildtoidfrom
fromnode/tonode.add_toids(return_dendritic = FALSE)is deprecated; use
to_flownetwork().add_levelpaths()is faster (data.table conversion).- New
check_valid()for sf/sfc geometry repair, including
GEOMETRYCOLLECTIONartifacts 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 as
hy_flownetwork(viato_flownetwork()). Developers passing
non-dendritic toid tables through hydroloom functions should
migrate toto_flownetwork()ormake_node_topology().
hydroloom v1.1.3
This release relaxes the tolerance on several tests such that CRAN fedora tests won't fail.
hydroloom 1.1.2
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. -- #60accumulate_downstream()now supports "total upstream" and "divergence routed" accumulation. -- #17make_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 v1.1.1
v1.1.0 - non-dendritic improvements
hydroloom 1.1.0
hydroloom v1.0.0 introduces functionality with more specific support for non-dendritic networks.
- 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 tp 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..
v1.0.2
Initial Release: Blodgett, D., 2023, hydroloom: Utilities to Weave Hydrologic Fabrics, https://doi.org/10.5066/P9AQCUY0
Documentation and contribution instructions.
Citation:
Blodgett, D., 2023, hydroloom: Utilities to Weave Hydrologic Fabrics, https://doi.org/10.5066/P9AQCUY0
hydroloom v1.0.0
- 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()DOI-USGS/nhdplusTools#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. DOI-USGS/nhdplusTools#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()