Releases: TopoToolbox/pytopotoolbox
v0.0.10
What's Changed
- Add test for graphflood object by @bgailleton in #351
- Induced graph to python by @bgailleton in #353
- Add a resample function to GridObject by @bgailleton in #354
- View after crop by @bgailleton in #355
- Add write_shapefile by @Teschl in #356
- Reinstall pandas and geopandas when downgrading numpy by @wkearn in #362
- Relative Elevation above rivers by @bgailleton in #361
- Fix documentation example link by @Teschl in #363
- Bind missing libtopotoolbox flow algebra functions by @wkearn in #360
- Remove binding to libtopotoolbox's flow_accumulation by @wkearn in #367
- Add FlowObject.getoutlets by @wkearn in #370
- Replace _flow.drainagebasins with _stream.traverse_up_u32_or_and by @wkearn in #371
- Fix memory ordering issues in StreamObject constructor by @wkearn in #372
- Remove final uses of order='F' by @wkearn in #373
- Add distance argument to plotdz by @wkearn in #375
- Rename streamorder memory ordering test by @wkearn in #376
- Rename several FlowObject order tests to *_order by @wkearn in #377
- Add a memory order test for aspect with classify=True by @wkearn in #378
- Test additional argument combinations in evansslope_order by @wkearn in #379
- Parameterize excesstopography memory order test by threshold_slopes by @wkearn in #380
- Add the scalar case back to the excesstopography order test by @wkearn in #381
- Run fillsinks order test with bc and hybrid arguments by @wkearn in #382
- Parameterize gradient8 memory order test by @wkearn in #383
- Parameterize GridObject.curvature memory order test by @wkearn in #384
- Pass fused argument to GridObject.hillshade memory order test by @wkearn in #385
- Rename prominence memory order test by @wkearn in #386
- Add memory order test for GridObject.zscore by @wkearn in #388
- Replace GridObject.resample with a call to GridObject.reproject by @wkearn in #387
- Parameterize StreamObject.chitransform memory order test by @wkearn in #389
- Add memory order tests for crs, crslin and quantcarve by @wkearn in #390
- Add a memory order test for StreamObject.gradient by @wkearn in #391
- Add memory order test for StreamObject.gridmask by @wkearn in #392
- Add memory order tests for StreamObject.knickpointfinder by @wkearn in #393
- Parameterize the StreamObject.streamorder memory order test by @wkearn in #394
- Parameterize the StreamObject.trunk memory order test by @wkearn in #395
- Add memory order test for StreamObject.ksn by @wkearn in #396
- Add a memory order test for FlowObject.vertdistance2stream by @wkearn in #397
- Add memory order test for crop by @wkearn in #398
- Implement bconfluences point type in StreamObject.streampoi by @wkearn in #400
- Return geographic coordinates in prominence by @wkearn in #401
- Add coordinates, x and y properties to StreamObject by @wkearn in #402
- Fix doctests and render plots in documentation by @wkearn in #403
- Rename distance to node_to_node_distance by @wkearn in #404
- Add StreamObject.distance to dispatch to different distance measures by @wkearn in #405
- Read and write masks from datasets by @wkearn in #406
- Upload documentation as a build artifact by @wkearn in #407
- Update reusable workflows to ones that run on Node 24 by @wkearn in #409
- Binding swath tools by @bgailleton in #365
- Remove information about CITATION.cff from the docs by @wkearn in #410
- Bump version number to 0.0.8 in preparation for release by @wkearn in #411
- Build wheels on macos-15-intel and CPython 3.14 by @wkearn in #412
- Bump version number to 0.0.10 for release by @wkearn in #413
Full Changelog: v0.0.7...v0.0.10
v0.0.8
What's Changed
- Add test for graphflood object by @bgailleton in #351
- Induced graph to python by @bgailleton in #353
- Add a resample function to GridObject by @bgailleton in #354
- View after crop by @bgailleton in #355
- Add write_shapefile by @Teschl in #356
- Reinstall pandas and geopandas when downgrading numpy by @wkearn in #362
- Relative Elevation above rivers by @bgailleton in #361
- Fix documentation example link by @Teschl in #363
- Bind missing libtopotoolbox flow algebra functions by @wkearn in #360
- Remove binding to libtopotoolbox's flow_accumulation by @wkearn in #367
- Add FlowObject.getoutlets by @wkearn in #370
- Replace _flow.drainagebasins with _stream.traverse_up_u32_or_and by @wkearn in #371
- Fix memory ordering issues in StreamObject constructor by @wkearn in #372
- Remove final uses of order='F' by @wkearn in #373
- Add distance argument to plotdz by @wkearn in #375
- Rename streamorder memory ordering test by @wkearn in #376
- Rename several FlowObject order tests to *_order by @wkearn in #377
- Add a memory order test for aspect with classify=True by @wkearn in #378
- Test additional argument combinations in evansslope_order by @wkearn in #379
- Parameterize excesstopography memory order test by threshold_slopes by @wkearn in #380
- Add the scalar case back to the excesstopography order test by @wkearn in #381
- Run fillsinks order test with bc and hybrid arguments by @wkearn in #382
- Parameterize gradient8 memory order test by @wkearn in #383
- Parameterize GridObject.curvature memory order test by @wkearn in #384
- Pass fused argument to GridObject.hillshade memory order test by @wkearn in #385
- Rename prominence memory order test by @wkearn in #386
- Add memory order test for GridObject.zscore by @wkearn in #388
- Replace GridObject.resample with a call to GridObject.reproject by @wkearn in #387
- Parameterize StreamObject.chitransform memory order test by @wkearn in #389
- Add memory order tests for crs, crslin and quantcarve by @wkearn in #390
- Add a memory order test for StreamObject.gradient by @wkearn in #391
- Add memory order test for StreamObject.gridmask by @wkearn in #392
- Add memory order tests for StreamObject.knickpointfinder by @wkearn in #393
- Parameterize the StreamObject.streamorder memory order test by @wkearn in #394
- Parameterize the StreamObject.trunk memory order test by @wkearn in #395
- Add memory order test for StreamObject.ksn by @wkearn in #396
- Add a memory order test for FlowObject.vertdistance2stream by @wkearn in #397
- Add memory order test for crop by @wkearn in #398
- Implement bconfluences point type in StreamObject.streampoi by @wkearn in #400
- Return geographic coordinates in prominence by @wkearn in #401
- Add coordinates, x and y properties to StreamObject by @wkearn in #402
- Fix doctests and render plots in documentation by @wkearn in #403
- Rename distance to node_to_node_distance by @wkearn in #404
- Add StreamObject.distance to dispatch to different distance measures by @wkearn in #405
- Read and write masks from datasets by @wkearn in #406
- Upload documentation as a build artifact by @wkearn in #407
- Update reusable workflows to ones that run on Node 24 by @wkearn in #409
- Binding swath tools by @bgailleton in #365
- Remove information about CITATION.cff from the docs by @wkearn in #410
- Bump version number to 0.0.8 in preparation for release by @wkearn in #411
Full Changelog: v0.0.7...v0.0.8
v0.0.7
What's Changed
- Add CITATION.cff file and Zenodo DOI badge by @wkearn in #341
- Remove CITATION.cff file by @wkearn in #342
- Graphflood obj update by @bgailleton in #344
- GraphFlood patch for boundary conditions by @bgailleton in #345
- Bump to 0.0.7 for release by @bgailleton in #346
- Fix release CI by @bgailleton in #348
- fix release v2 by @bgailleton in #349
- Fix CI release v3 by @bgailleton in #350
Full Changelog: v0.0.6...v0.0.7
v0.0.6
v0.0.5
What's Changed
- Add some notes for installing under conda on Windows by @wkearn in #237
- Update load_opentopgraphy function by @Teschl in #240
- Add pre-commit support and examples to docstrings by @Teschl in #208
- Implement
StreamObject.upstreamto,StreamObject.downstreamtoandStreamObject.cleanby @wkearn in #242 - Compute drainage basins from specified outlets by @wkearn in #244
- Add memory order test for flow_accumulation by @wkearn in #245
- Test the memory order independence of drainagebasins by @wkearn in #246
- Update colormaps in tutorials by @geo-luca in #248
- Reshape the output of shufflelabel by @wkearn in #249
- drainagebasins: Use the u32 or-and upstream traversal with outlets by @wkearn in #250
- Chi map in tutorial by @geo-luca in #251
- Implement
GridObject.plot_surfaceby @wkearn in #253 - Add template notebook for the docs by @wkearn in #256
- Fix some links regarding the new template notebook by @wkearn in #257
- Tag the Next Steps section with nbsphinx-toctree by @wkearn in #255
- Pass data of the correct type to libtopotoolbox's hillshade by @wkearn in #262
- Adding to_shapefile feature, issue with earlier version fixed (?) by @faurefrancois in #260
- Update hillshade with new libtopotoolbox API by @wkearn in #266
- Add shapely and geopandas dependencies to pre-commit config by @wkearn in #267
- Fix memory order sensitivity of
flowpathextractby @wkearn in #268 - Add a memory order test for FlowObject.distance by @wkearn in #269
- Add a memory order test for imposemin with a FlowObject by @wkearn in #270
- Add a memory order test for StreamObject by @wkearn in #271
- Add a memory order test for StreamObject.distance by @wkearn in #272
- Add memory order test for downstream distance by @wkearn in #273
- Add memory order test for StreamObject.ezgetnal by @wkearn in #274
- Add a memory order test for StreamObject.streampoi by @wkearn in #275
- Hide the memory ordering from users of StreamObject by @wkearn in #276
- Add multidimensional index accessors to FlowObject by @wkearn in #277
- Add a memory order test for StreamObject.chitransform by @wkearn in #279
- Add a memory order test for StreamObject.trunk by @wkearn in #280
- Add a memory order test for StreamObject.klargestconncomps by @wkearn in #281
- Factor out the StreamObject isomorphism tests by @wkearn in #282
- Refactor issubgraph to use source_ and target_indices by @wkearn in #283
- Add a memory order test for StreamObject.subgraph by @wkearn in #284
- Factor out the FlowObject isomorphism test by @wkearn in #285
- Add a memory order test for imposemin with a StreamObject by @wkearn in #286
- Add memory order tests for upstreamto and downstreamto by @wkearn in #287
- Add a memory order test for GridObject.reproject by @wkearn in #288
- Add a memory order test for StreamObject when supplied with explicit stream pixels by @wkearn in #289
- replaced DEM in excesstopography example and plot_hs by @ginaarnau in #290
- adjusted plot_hs colorbars to reflect data and not default 0-1 scale by @ginaarnau in #292
- added colorbar as argument of plot_hs by @ginaarnau in #293
- Add a memory order test of the StreamObject channelheads constructor by @wkearn in #291
- added gradient function to stream_object by @ginaarnau in #294
- added ksn function to stream_object by @ginaarnau in #295
- added flowdistance functions to flow_object by @ginaarnau in #296
- added dependence_map and influence_map to flow_object by @ginaarnau in #297
- binded traverse_up_f32 from lib to pytopotoolbox by @ginaarnau in #299
- fixed upstream_distance error by @ginaarnau in #298
- Traverse down f32 strahler by @ginaarnau in #300
- Pin Python 3.13 to 3.13.5 on CI. by @wkearn in #302
- added streamorder function to stream_object by @ginaarnau in #303
- Replace shape checks with
validate_alignmentby @wkearn in #301 - Add resize and zscore by @Teschl in #278
- Rename resize to crop by @Teschl in #308
- Crslin by @ginaarnau in #307
- added quantcarve function to stream_object by @ginaarnau in #309
- Implement lowerenv by @wkearn in #310
- fixed attachheads function in crslin by @ginaarnau in #311
- Add a test that runs crslin with attachheads=False by @wkearn in #312
- Replace manual outlet computation with streampoi as suggested by @wkearn in #313
- Implement conncomps by @wkearn in #314
- Replace uses of np.bool with bool by @wkearn in #315
- made stream and flow objects fixtures in tests. by @ginaarnau in #317
- changed coordinate system crs to georef by @ginaarnau in #318
- added crs and necessary dependencies by @ginaarnau in #319
- Implement
knickpointfinderby @wkearn in #316 - Rename l to labels in StreamObject.conncomps by @wkearn in #321
- Add a missing comma to the OPEN_TOPO_DATASETS variable by @wkearn in #322
- Rename georef -> crs in to_geodataframe by @wkearn in #323
- Fix rendering of LaTeX in chi maps tutorial by @wkearn in #328
- changed quantcarve to use clarabel by @ginaarnau in #327
- changed crslin to use clarabel instead of kvxopt by @ginaarnau in #326
- Remove kvxopt from dependencies by @wkearn in #333
- Increment version number to v0.0.5 to prepare for new release by @wkearn in #332
New Contributors
- @geo-luca made their first contribution in #248
- @faurefrancois made their first contribution in #260
- @ginaarnau made their first contribution in #290
Full Changelog: v0.0.4...v0.0.5
v0.0.4
What's Changed
- Initialize StreamObjects from channel heads by @wkearn in #184
- Identify outlets and channelheads with streampoi by @wkearn in #185
- Implement subgraph by @wkearn in #177
- Identify confluences in
streampoiby @wkearn in #188 - Implement
FlowObject.flowpathextractin the downstream direction by @wkearn in #190 - Plot GridObjects and StreamObjects with coordinates by @wkearn in #191
- fix: replace duplicate code with direct subgraph call by @XueSongTap in #192
- Use Big Tujunga DEM in the Getting Started guide by @wkearn in #195
- Pass dtype and copy arguments to GridObject.array by @wkearn in #196
- Few improvements on GridObject by @bgailleton in #197
- Run CI workflow on main branch by @wkearn in #203
- Add a test running
excesstopographywith different memory layouts by @wkearn in #204 - Correct the hillshade order test by @wkearn in #205
- Use a single-precision array in the fillsinks test by @wkearn in #206
- Fix the row/column major test for excesstopography by @wkearn in #207
- Implement
validate_alignmentby @wkearn in #211 - Make
validate_alignmentwork for ndarray by @wkearn in #213 - Implement FlowObject.ezgetnal by @wkearn in #214
- Transform bounds in GridObject.reproject by @wkearn in #218
- Implement
GridObject.astypeby @wkearn in #219 - Return copies from ezgetnal by @wkearn in #220
- Implement imposemin by @wkearn in #194
- Add memory ordering test for identifyflats by @wkearn in #221
- Type checking changes for Numpy v2.2 by @wkearn in #222
- Implement memory order test for GridObject.filter by @wkearn in #223
- Add memory order test for gradient8 by @wkearn in #224
- Add memory order test for curvature by @wkearn in #225
- Add memory order tests for GridObject.dilate and GridObject.erode by @wkearn in #226
- Add fixture for the memory order tests by @wkearn in #227
- Add memory order tests for evansslope and aspect by @wkearn in #228
- Add memory order test for prominence by @wkearn in #229
- Fix memory ordering problems with FlowObject by @wkearn in #230
- Add automatic downloads from OpenTopography by @Teschl in #216
- Fix type stability bug in ezgetnal and plotdz by @wkearn in #231
- Add a first test for graphflood by @bgailleton in #234
- Support Python v3.12 and v3.13 by @wkearn in #235
- Increment version number to 0.0.4 by @wkearn in #236
New Contributors
- @XueSongTap made their first contribution in #192
Full Changelog: v0.0.3...v0.0.4
v0.0.3
This release includes several fixes necessary to build and run pytopotoolbox with older versions of dependencies, especially numpy. It introduces a minimum version bound on numpy: v1.23.5 is now necessary to run pytopotoolbox. This is technically a breaking change, but lower versions of numpy probably would not have run properly anyway.
Otherwise v0.0.3 has an identical API to v0.0.2.
What's Changed
- Document the release process in dev.rst by @wkearn in #168
- Use bool as the data type of the visited array by @wkearn in #169
- Add the upgrade flag to the docs by @wkearn in #170
- Use arctan2 instead of atan2 by @wkearn in #171
- Fix a minimum supported numpy version by @wkearn in #173
- Add the upgrade flag to the README install instructions by @wkearn in #174
- Bump version number to 0.0.3 for release by @wkearn in #175
Full Changelog: v0.0.2...v0.0.3
v0.0.2
What's Changed
- Add step to upload to test.pypi.org by @wkearn in #85
- Switch from test.pypi.org to the main PyPI repository by @wkearn in #86
- Restore NaNs in the original DEM after filling sinks by @wkearn in #88
- Add tests to ensure DEM is left unchanged by fillsinks by @wkearn in #89
- Number nodes of StreamObject correctly by @wkearn in #78
- Wrap streamquad_trapz_* by @wkearn in #79
- Add reproject method by @wkearn in #91
- utils.show: Index into the multidimensional axes object by @wkearn in #92
- Make shape, rows and columns properties of GridObject by @wkearn in #93
- Update installation instructions in README and docs by @wkearn in #87
- Fix links to CONTRIBUTING.md in docs by @wkearn in #94
- Add repository button to the docs by @wkearn in #95
- Move example notebooks to docs/examples by @wkearn in #96
- Add wrapping guide to docs by @Teschl in #98
- Use
fillsinks_hybridby @wkearn in #99 - Clear outputs from StreamObject notebook by @wkearn in #101
- Add Curvature to GridObject by @Teschl in #100
- Create a Getting Started with TopoToolbox guide by @wkearn in #102
- Add filter function to GridObject by @Teschl in #107
- Add erode to GridObject by @Teschl in #116
- Add dilate to GridObject by @Teschl in #117
- Implement
StreamObject.chitransformby @wkearn in #115 - Add curvature to the Getting Started guide by @wkearn in #118
- Add Evansslope to GridObject by @Teschl in #119
- Rename partial_derivitives -> partial_derivatives by @wkearn in #121
- Implement drainagebasins by @wkearn in #122
- Add shufflelabel method to GridObject by @wkearn in #123
- Add Drainage basin delineation section to the Getting Started guide by @wkearn in #124
- Make fillsinks memory-order agnostic by @wkearn in #125
- Add test dependencies as an optional dependency by @wkearn in #126
- Report the minimum and maximum data values in GridObject.info by @wkearn in #128
- Add xy method to StreamObject by @wkearn in #129
- Plot StreamObjects with line segments (plus an API change for the plotting) by @wkearn in #130
- Add Aspect to GridObject by @Teschl in #132
- Add aspect to the Getting Started guide by @wkearn in #137
- Replace GridObject.show with GridObject.plot by @wkearn in #142
- Add downstream_distance method to StreamObject by @wkearn in #143
- Pass zero-based source and target arrays to libtopotoolbox traversal by @wkearn in #144
- Use the new libtopotoolbox flow routing API by @wkearn in #147
- Add plotdz to StreamObject by @wkearn in #148
- Fix a few errors in documentation formatting for StreamObject by @wkearn in #149
- Add dunit and doffset keyword arguments to StreamObject.plotdz by @wkearn in #150
- docs: Use nearest-neighbor interpolation with discrete data by @wkearn in #151
- Pass a seed to shufflelabel for reproducible shuffling by @wkearn in #152
- Add trunk to StreamObject by @Teschl in #153
- Add trunk to the Getting Started Guide by @wkearn in #154
- Implement klargestconncomps by @wkearn in #155
- Add klargestconncomps to the Getting Started Guide by @wkearn in #156
- Add Prominence to GridObject by @Teschl in #158
- Fix numbering of rows and columns in the StreamObject tests by @wkearn in #159
- Clean up the StreamObject tests by @wkearn in #160
- Split the one StreamObject test into several test functions by @wkearn in #161
- Remove unused tests/test_utils.py and tests/init.py by @wkearn in #162
- Make sure the excesstopography TypeError test runs by @wkearn in #163
- Add hillshade to GridObject by @wkearn in #164
- Only run the release workflow on the main TopoToolbox repository by @wkearn in #166
- Add a plot_hs method to GridObject by @wkearn in #165
- Bump the version in pyproject.toml by @wkearn in #167
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
- basic package struct by @Teschl in #2
- Add GPL v3.0 by @wkearn in #4
- Basic GridObject and .info() function by @Teschl in #11
- Interface with libtopotoolbox through scikit-build-core and pybind11 by @wkearn in #12
- added fillsinks with pybind11 by @Teschl in #14
- Added GridObj generation with OpenSimplex noise by @Teschl in #15
- Add pybind11 license to LICENSES_bundled by @wkearn in #21
- Add magic functions by @Teschl in #19
- Implement Pep8 standard by @Teschl in #23
- Add basic CI workflow by @wkearn in #28
- Add Identifyflats by @Teschl in #24
- Windows Installation Guide by @Teschl in #25
- Provide example data by @Teschl in #29
- Add Sphinx docs generation by @Teschl in #33
- Refactor package by @Teschl in #39
- Update Documentation and add CONTRIBUTING by @Teschl in #40
- Add show and saving functions by @Teschl in #48
- Fix matrix passing to C/C++ by @Teschl in #51
- Bump versions of actions/checkout and actions/setup-python by @wkearn in #52
- Add Excesstopography by @Teschl in #54
- Fix a few minor typos and formatting problems around the docs by @wkearn in #56
- Rework example gallery by @Teschl in #58
- Add linting and type checks by @Teschl in #59
- Add FlowObject by @Teschl in #61
- Fix the build time version of numpy to 2.0.0 or greater by @wkearn in #66
- Adds Graphflood binding by @bgailleton in #57
- Add StreamObject by @Teschl in #65
- Implement gradient8 by @Teschl in #63
- Supply boundary conditions to fillsinks and handle NaNs properly by @wkearn in #70
- Update docstring and docs for graphflood by @Teschl in #68
- Remove version specifications from pyproject.toml by @wkearn in #77
- Add a release workflow by @wkearn in #83
- Set version number to 0.0.1 by @wkearn in #84
New Contributors
- @Teschl made their first contribution in #2
- @wkearn made their first contribution in #4
- @bgailleton made their first contribution in #57
Full Changelog: https://github.com/TopoToolbox/pytopotoolbox/commits/v0.0.1
Testing the PyPI upload process
This release is identical to v0.0.1, and is aimed at testing the CI workflow that uploads the package to PyPI.