TopoToolbox / pytopotoolbox

Python interface to TopoToolbox
https://topotoolbox.github.io/pytopotoolbox/
GNU General Public License v3.0
1 stars 2 forks source link

Add excesstopography function #42

Open Teschl opened 3 weeks ago

Teschl commented 1 week ago

@wkearn We have two options on how to implement this:

  1. provide excesstopography() with the option to change method like so for example: excesstopography(method='fsm2d')
  2. provide excesstopography_fsm2d, excesstopography_fmm2d and excesstopography_fmm3d separately

I think both are valid options, but I would prefer 1 if one of the algorithms is used more commonly than the others.

wkearn commented 1 week ago

I like option 1 the best, at least for the 2D versions, which should otherwise have a similar interface. fsm2d is probably a better default, because it requires less memory and is generally faster.

I might suggest only doing the interface for the 2D versions for now. excesstopography_fmm3d was made for TTLEM3D, and I'm not sure how much of the landscape evolution modeling stuff we want to provide here at the moment.

Teschl commented 1 week ago

Ok, sounds good. Option one with fsm2d as default it is.

Regarding the threshold_slopes, how will this be provided? Right now, I have just been using a matrix that is filled with one value (like 0.2). Do we expect the user to provide a matrix?

I was thinking something like this:

  1. excesstopography(0.2) where the whole threshold_slopes will be filled with 0.2
  2. excesstopography(some_matrix) where the threshold_slopes is some_matrix
  3. excesstopography() where a default threshold_slope will be used
  4. all of the above

For option 2 we might have to implement an easy way to generate the required matrix.

wkearn commented 1 week ago

I think all of the above options are reasonable to provide if that's possible. Another option is that you have a GridObject that contains the threshold_slopes. This would be similar to option 2, but it might be nicer to call dem.excesstopography(thresholds) than to have to remember to call dem.excesstopography(thresholds.z) in that case.