the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
Short Communications: Multiscale topographic complexity analysis with pyTopoComplexity
Abstract. pyTopoComplexity is a Python package designed for efficient and customizable quantification of topographic complexity using four advanced methods: two-dimensional continuous wavelet transform analysis, fractal dimension estimation, Rugosity Index, and Terrain Position Index calculations. This package addresses the lack of open-source software for these advanced terrain analysis techniques essential for modern geomorphology research, enhancing data comparison and reproducibility. By assessing topographic complexity across multiple spatial scales, pyTopoComplexity allows researchers to identify characteristic morphological scales of the studied landform. The software repository also includes a Jupyter Notebook that integrates components from the surface-process modeling platform Landlab (Hobley et al., 2017), facilitating the exploration of how terrestrial processes, such as hillslope diffusion and stream power incision, drive the evolution of topographic complexity over time. When these complexity metrics are calibrated with absolute age dating, they offer a means to estimate in-situ hillslope diffusivity and fluvial erodibility, which are critical factors in determining the efficiency of landscape recovery after significant geomorphic disturbances like landslides. By integrating these features, pyTopoComplexity expands the analytical toolkit for measuring and simulating the time-dependent persistence of geomorphic signatures against environmental and geological forces.
- Preprint
(15456 KB) - Metadata XML
-
Supplement
(5675 KB) - BibTeX
- EndNote
Status: final response (author comments only)
-
RC1: 'Comment on egusphere-2024-3415', Anonymous Referee #1, 28 Dec 2024
This is a neat contribution to the ever-growing Python suite of morphometry tools, and the authors have chosen an excellent test case in dating landslide deposits. In addition to using these tools to ask questions about rates and dates of upland processes, the application to landslide (and probably terrace?) dating means that nonspecialists might consider using the package to assess geohazards in other sites. For this reason, my advice to the authors mostly focuses on pitching their manuscript/software to a broader, less technical audience.
The number one piece of feedback I have is to reconsider the figures chosen for this manuscript. While they are very cool for a geomorphologist intimately interested in landscape evolution and morphometry, in general, the use of small multiples with teeny font and tricky-to-interpret contours does not convince a more generic potential user of the software to try it out. Figure 3 is the figure most “on the right track” toward this end. I strongly recommend designing a schematic showing each of the topographic metrics the package can perform demonstrating on some sort of sketch for a representative landscape (perhaps a landslide). You can keep many elements of the current Figure 1, but instead of showing the modulation of the grid size, just show one grid size and use a consistent colorbar. Make a figure that a hazard practitioner might understand. For the other figures, I recommend re-envisioning how maybe only one or two panels might be zoomed in to and annotated.
The second piece of advice is to be more explicit in explaining to reader why these mathematically and computationally complex approaches are indeed more informative than the simple ones alluded to in this text. For the text, this involves explaining how this packages’ metrics capture process geomorphology well/better than the status quo (Lines 36-37). For the figures, the comparison figure/table between the R2 and RMSE in age prediction using the metrics in the package and the more “conventional” approaches should feature in the main text rather than the supplement.
My line-by-line comments fulfil some of those tasks:
Line 21: Maybe I'm out of the loop but I am more familiar with roughness than complexity, so maybe start with "roughness" and then say "and we're gonna call that topographic complexity"
Line 23: Are “utility and popularity” necessary?
Line 36-37: “…because they can be more directly connected to process-based geomorphic models.” Provide example or at least a citation?
Line 50: I have been chastised in the past for providing imperial units, even when the data were collected in imperial units. Maybe this is a more grave offense in an EGU journal.
Line 53: “users” instead of “researchers” here and throughout (might be students in a course!)
Figure 1: Cartoon! I need a cartoon first! These small multiples are fun but maybe start with a more general schematic of a landscape, ID the different indices, and then give us an example
Line 63: Clarify that the package is not limited to Linux? (the “pip install” command can be executed in Windows, etc)
Line 67: Recommend using the phrasing in Line 94 (“2D Ricker or Marr wavelet (i.e., Mexican hat wavelet) function”), or “also called Mexican hat wavelet.” As someone coming across this phrase for the first time it feel colloquial, even if it’s not. Might help non-native English speakers out a bit.
Lines 90-92: I'm getting a little lost here. I think these two sentences need to be broken up by an example. Then I think the second sentence could use a schematic diagram.
Line 122: Is there a more recent example of how fractal analysis is crucial for studying surface processes?
Line 147: re: Rugosity Index, maybe I'm out of the loop, but I recommend starting off with a definition before giving the examples of its use.
Line 162: Loop this into the introduction - say TI of 1 is flat, and with increasing surface (contoured) are to planimetric area it'll go up, or something like that
Lines 165-166: Maybe elaborating on this would help someone who has never used these tools before but is a practitioner of say geohazards or restoration etc.
Line 176: What is the difference between "ruggedness" and "roughness"?
Section 2.5: I wonder if the description of the Landlab components and defaults belong in the supplement? This being a short communication about your software, perhaps you can save space and cite out this already-published software?
Line 209: "...consistent with the Taylor series expansion"?
Line 211: Watch in text citation format
Lines 269-272: This section is a good example of meaningfully connecting process and morphometry. Do more of this throughout!
Figure 3: Color the points in (b) with the color of the landslide or label the number?
Line 288: When I got to the end of the first paragraph I actually wrote "now show me the performance of traditional metrics!" So I was pleased to see that you did just that! But, I think that means I'd like to see the R2/RMSE metrics of the traditional vs fancy metrics in the main text. The burden of proof lies in the authors to convince geomorphologists and practitioners to adopt their software over things like GRASS, and so I recommend you provide a convincing table to demonstrate that.
Section 4: I think this section is really solid. Nice work.
I am happy to report that I cloned the repo, built the environment, and successfully ran an example notebook with an example DEM as well as a DEM from my own research. All on my Windows laptop in under 20 seconds! Well documented and easy to use. My only small suggestion is to use Pathlib instead of os.path to name files.
Citation: https://doi.org/10.5194/egusphere-2024-3415-RC1 -
RC2: 'Comment on egusphere-2024-3415', Anonymous Referee #2, 13 Jan 2025
General comments
I really enjoyed reading this work and believe it will be relevant and useful to the broader scientific community. The authors’ goal to address the lack of open-source software that facilitates advanced analysis of topographic features is clearly presented. The pyTopoCompelxity toolkit seems to be a resource that will help fill that gap and broaden the accessibility of quantitative topographic analysis.
One broad comment is related to the intended audience and schematics. I think that the accessibility of the article (and the toolkit in general) would increase with additional figures or text that demonstrate the utility of each topographic metric. This may be beyond the scope of this work, but including a simple schematic of each of the four topographic metrics that can be measured with the pyTopoComplexity toolkit would be incredibly useful. A figure along these lines could increase your audience as well as make it more likely that someone will utilize this cool resource. In particular, it would really help prepare the readers to look at Figure 2. PyTopoComplexity could help lead to greater incorporation of more rigorous topographic analysis in fields outside of typical Geoscience/Earth Science studies; such as ecological or biological studies.
A second broad comment relates to figures. The figures contain a lot of really good information, but it is a little easy to get lost and difficult to read the axes at times (is there space to increase font sizes?). For figures that contain multiple subplots (within the a and b panels), it might be helpful to add additional labels. For example, a Fig 4a.2, in text citation might help readers go back and forth between the text and figures more easily when you reference specific observations/trends.
Third, I really like the use of a case study. It helps demonstrate how this toolkit can be useful compared to other traditional tools and connect complicated mathematical concepts into the “real world” examples.
Lastly, the authors discuss how to install using Linux, but in reality this can be installed in other ways as well. To increase the applicability and access I would emphasize that those who don’t use linux can also utilize the resources. This could be done briefly in the text and/or the github repository page. I don’t use a linux system right now and I was able to download the zip file from the author’s github repository. Then use the “environment.yml” file to create a new environment with conda prompt on my own machine. I was unable to run the landlab example (see technical note below - maybe something wrong with my own installation), but the other four example notebooks ran smoothly with my own GeoTIFF!
Specific comments
Lines 24-29: This is a great list of previous applications of terrain analysis. To further emphasize the point, and similar to your last example, you could include references to the growing literature using topographic metrics and analysis for soil organic matter/carbon and other nutrient dynamic studies.
Lines 34 - 37: I agree with this statement, but it should be backed up with a citation if there is an appropriate one. These more rigorous metrics are more connected to process-based geomorphic models, but is there evidence that this demonstrates that they are more effective than conventional metrics?
Lines 41-42: “... they have been confined to marine bathymetric studies and involve various mathematical limitations, assumptions, and designs.” I interpreted this as the limitations inable use for terrestrial landscapes? It might add clarity to add a few words at the end here if so along the lines of - “bathymetric studies and involve various mathematical limitations, assumptions, and designs that make them not suitable for terrestrial studies”
Figure 1: I like the idea and the inclusion of figure 1 because it is helpful to see two scales for each module method. However, from a visual perspective, I think it could be helpful to add a little more space between the bottom two modules and the top two modules. Additionally, the axis labels could benefit from being larger (a little difficult to read).
I think it would be helpful to include an annotated schematic of each of these topographic metrics on a simple landscape. Maybe even before the presentation of this first figure. This would help convince people who are less familiar with the metrics (or even those who are) of their utility. Since figure 1 is a little complicated, a simpler schematic presented first would also prepare people to digest figure 1.
Line 63: I would suggest including the fact that one could access the pyTopoComplexity package from the Lead Author’s github page and a Zenodo link. Although Linux may be an easy way to install and use for many researchers, the fact one could access the code from other sources is a perk. I downloaded and installed the environment with the .yml file in the conda prompt (but also maybe this is why I had an issue with the landlab notebook?).
Line 67: I believe the term Ricker wavelet is synonymous with the Mexican hat wavelet. Is there a reason for choosing one name over the other? *I see now on line 93 you say “Ricker or Marr wavelet (i.e., Mexican hat wavelet)...” I would bring this up to line 67 and then stick with Ricker through the rest of the text (and Table 1). Although this might mean you would have to change the name of your python scripts as well if you choose to go that route.
Line 68: small comment that might add clarity “for the Mexican hat wavelet in 2D-CWT analysis or the size of the moving window (Δ) for the other three methods"
Line 69: Nothing to change, but just an appreciation comment. This automatic conversion to maintain consistency is really great and will help out if/when I will use this tool for an undergraduate introductory class!
Lines 91 - 93: I like how you explain what an increase/decrease in these values mean in the physical world (larger s means you are capturing larger scale features while smaller s values mean you are capturing smaller scale landscape features). This could be done to a greater extent for the FD analysis.
Line 105: do you see different final results depending on the use of “fftconvolve” versus “convolve2d”? And if so, how big of a difference?
Line 119: I am a little lost in your discussion of Fractal dimension analysis. I am less familiar with the calculator of this metric. It could be helpful to add a brief sentence or two saying what values of this mean in the “real world” like you do for the other metrics. For example, as FD increases, do we see more or less similarity across the landscape?
Line 124 - 127: Since I am less familiar with this method and metric, does how you have adapted the variogram method change what results you see? Maybe this is a naive question.
Line 144: What population of values does pyfracd.py calculate the standard error and coefficient of determination of? Within a cell? Across the whole landscape?
Line 165: the pyTopoComplexity toolkit can calculate both the RI and the ACR-RI, correct? It might be helpful to explicitly reiterate that.
Line 166: Citation for “could provide a better representation of local surface complexity because it is not biased by slope.”
Line 204 - 205: A little unclear what this sentence is saying. Are you redefining or are you saying where those two values are equal it “represents the vector of topographic…”
Line 205: To clarify, Shd and Sc are simply gradient values or are they the magnitude of slope? Does the magnitude of slope refer to something else here? If it is not just hillslope gradient, it might help to clarify that.
Figure 2: I really like this example to demonstrate the landlab implementation of the pyTopoComplexity toolkit.
Line 240: citation for published NFSR valley landslide inventory?
Line 243-244: Did you exclude these areas in your analysis or did Booth et al. (2017) exclude them from their analysis? I think your analysis, but clarification would be helpful.
Line 249: Can you include the age of your oldest landslide directly in the text? It is in the figures/supplement, but would be helpful to have directly here.
Line 250: Do you set a threshold to define “low RMSE”?
Line 256-257: Is this what you expected?/Does this make sense when we think about real world context, what we know about processes, and what these metrics represent?
Line 268 - 272: This addresses my previous comment (line 256-257)! I like this. I think it really helps put what your toolkit can measure in real world context and why someone might choose one metric over another.
Line 290-291: Perhaps I missed it somewhere but do you have all the R2 and RMSE values for this comparison somewhere in a table? If so, please reference it here.
Line 352 - 362: I really like this real world application and thoughts about spatial scale variability. Figure 4 has a lot of information and I found myself getting a little lost going between the text and the figure. It could be helpful to have figure 4a.1 - 4a.10 or something like that. So when you say “For a given D, the non-linear diffusion model tends to underpredict the reduction rate of surface complexity during the early stages of landscape recovery following a catastrophic landslide.“ you could reference a specific subplot in the bigger figure. It would help the reader process your conclusions.
Line 374 - 376: At what time scale would you expect tree throw to occur and be relevant again? Decades? Centuries?
Technical comments
I had some issues with running the landlab simulation notebook. It could be related to me installing pyTopoComplexity in conda with the environment.yml file? Side note - this warning started to show up; “DeprecationWarning: landlab.io.read_esri_ascii has been deprecated, use landlab.io.esri_ascii.load instead”.
The example script “Example_pyfracd.ipnb” worked with my own imported .tif file, but not the example DEM provided. There was a "ZeroDivisionError: division by zero” error. Perhaps again, this is an issue with my installation. The other three example notebooks worked with the example DEM though.
____________________________________________________________________________
Again, I enjoyed reading this work and think it has the potential for wide use across multiple fields of study (beyond geomorphology). I look forward to trying to incorporate it into future courses.
Citation: https://doi.org/10.5194/egusphere-2024-3415-RC2
Viewed
HTML | XML | Total | Supplement | BibTeX | EndNote | |
---|---|---|---|---|---|---|
156 | 73 | 7 | 236 | 23 | 2 | 3 |
- HTML: 156
- PDF: 73
- XML: 7
- Total: 236
- Supplement: 23
- BibTeX: 2
- EndNote: 3
Viewed (geographical distribution)
Country | # | Views | % |
---|
Total: | 0 |
HTML: | 0 |
PDF: | 0 |
XML: | 0 |
- 1