Pynhd

Latest version: v0.18.0

Safety actively analyzes 688554 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

0.18.0

-------------------

New Features
~~~~~~~~~~~~
- Replace the links to NLDI and PyGeoAPI web services to their new URLs.
- Add two new methods to ``GeoConnex`` class for querying ``bybox`` and
``byfilter``. Note that CQL query is still not working due to an issue
with the GeoConnex service. For now, it's recommended to use the ``byfilter``
method for most of the queries, including spatial queries. For simple spatial
queries, you can use the ``bybox`` method then filter the results based on
the actual geometry.

Breaking Changes
~~~~~~~~~~~~~~~~
- Drop support for Python 3.8 since its end-of-life date is October 2024.
- Remove all exceptions from the main module and raise them from the
``exceptions`` module. This is to declutter the public API and make
it easier to maintain.

0.17.0

-------------------

New Features
~~~~~~~~~~~~
- The function ``pynhd.streamcat`` now can be called without any arguments
to get a dataframe of all available metrics and their descriptions.

Internal Changes
~~~~~~~~~~~~~~~~
- Add the ``exceptions`` module to the high-level API to declutter
the main module. In the future, all exceptions will be raised from
this module and not from the main module. For now, the exceptions
are raised from both modules for backward compatibility.
- Switch to using the ``src`` layout instead of the ``flat`` layout
for the package structure. This is to make the package more
maintainable and to avoid any potential conflicts with other
packages.
- Add artifact attestations to the release workflow.

0.16.3

-------------------

New Features
~~~~~~~~~~~~
- Add support for LakeCat dataset in ``streamcat`` function. A new argument
called ``lakes_only`` is added to the function. If set to ``True``, only
metrics for lake and their associated catchments will be returned. The default
is ``False`` to retain backward compatibility.

Bug Fixes
~~~~~~~~~
- Modify ``HP3D`` class based on the latest changes to the 3D Hydrography Program
service. Hydrolocation layer has now three sub-layers:

- ``hydrolocation_waterbody`` for Sink, Spring, Waterbody Outlet,
- ``hydrolocation_flowline`` for Headwater, Terminus, Divergence, Confluence, Catchment Outlet,
- ``hydrolocation_reach`` for Reach Code, External Connection.

Breaking Changes
~~~~~~~~~~~~~~~~
- EPA's HMS no longer supports the StreamCat dataset, since they have a dedicated
service for it. Thus, the ``epa_nhd_catchments`` function no longer accepts
"streamcat" as an input for the ``feature`` argument. For all StreamCat queries,
use the ``streamcat`` function instead. Now, the ``epa_nhd_catchments`` function
is essentially useful for getting Curve Number data.

0.16.2

-------------------

Bug Fixes
~~~~~~~~~
- In ``NLDI.get_basins``, the indices used to be station IDs but in the
previous release they were reset by mistake. This version retains the
correct indices.

New Features
~~~~~~~~~~~~
- In ``nhdplus_l48`` function, when the layer is ``NHDFlowline_Network``
or ``NHDFlowline_NonNetwork``, merge all ``MultiLineString`` geometries to ``LineString``.

0.16.1

-------------------

Bug Fixes
~~~~~~~~~
- Fix an issue in ``network_xsection`` and ``flowline_xsection`` related
to the changes in ``shapely`` 2 API. Now, these functions should return
the correct cross-sections.

0.16.0

-------------------

New Features
~~~~~~~~~~~~
- Add access to USGS 3D Hydrography Program (3DHP) service. The new
class is called ``HP3D``. It can be queried by IDs, geometry, or
SQL where clause.
- Add support for the new PyGeoAPI endpoints called ``xsatpathpts``.
This new endpoint is useful for getting elevation profile along A
``shapely.LineString``. You can use ``pygeoapi`` function with
``service="elevation_profile"`` (or ``PyGeoAPI`` class) to access this
new endpoint. Previously, the ``elevation_profile`` endpoint was used for
getting elevation profile along a path from two endpoints and the input
``GeoDataFrame`` must have been a ``MultiPoint`` with two coordinates.
Now, you must the input must contain ``LineString`` geometries.
- Switch to using the new smoothing algorithm from ``pygeoutils`` for
resampling the flowlines and getting their cross-sections. This new
algorithm is more robust, accurate, and faster. It has a new argument
called ``smoothing`` for controlling the number knots of the spline. Higher
values result in smoother curves. The default value is ``None`` which
uses all the points from the input flowline.

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.