Skip to content

Releases: TopoToolbox/pytopotoolbox

v0.0.10

23 Mar 18:17
63df4f5

Choose a tag to compare

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

23 Mar 09:40
fa048c6

Choose a tag to compare

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

29 Sep 08:57
f94a329

Choose a tag to compare

What's Changed

Full Changelog: v0.0.6...v0.0.7

v0.0.6

05 Aug 07:08
ae3ea96

Choose a tag to compare

What's Changed

  • Call autoscale_view automatically from StreamObject.{plot, plotdz} by @wkearn in #336
  • georef -> crs in write_tif by @wkearn in #338
  • Use hillshade_fused by default by @wkearn in #339
  • Increase version number for 0.0.6 release by @wkearn in #340

Full Changelog: v0.0.5...v0.0.6

v0.0.5

25 Jul 18:24
7b4fbdc

Choose a tag to compare

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.downstreamto and StreamObject.clean by @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_surface by @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 flowpathextract by @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_alignment by @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 knickpointfinder by @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

Full Changelog: v0.0.4...v0.0.5

v0.0.4

23 Apr 09:44
0c5ab5a

Choose a tag to compare

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 streampoi by @wkearn in #188
  • Implement FlowObject.flowpathextract in 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 excesstopography with 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_alignment by @wkearn in #211
  • Make validate_alignment work for ndarray by @wkearn in #213
  • Implement FlowObject.ezgetnal by @wkearn in #214
  • Transform bounds in GridObject.reproject by @wkearn in #218
  • Implement GridObject.astype by @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

Full Changelog: v0.0.3...v0.0.4

v0.0.3

17 Mar 15:39
075b5ea

Choose a tag to compare

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

13 Mar 14:38
adfffc1

Choose a tag to compare

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_hybrid by @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.chitransform by @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

20 Nov 10:50
06e8620

Choose a tag to compare

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

Full Changelog: https://github.com/TopoToolbox/pytopotoolbox/commits/v0.0.1

Testing the PyPI upload process

20 Nov 12:51
379bf88

Choose a tag to compare

Pre-release

This release is identical to v0.0.1, and is aimed at testing the CI workflow that uploads the package to PyPI.