User Manual v1.0

Sachida Nanda Mahanta1,a, Priyadarshi Chinmoy Kumar2, b, *, Eshan Srivastava3, c, Jitender Kumar2, d, Giuseppe Francesco Rizzo3, 4, e, Maurizio Gasparo Morticelli3, 5, f, Attilio Sulli3, 5, g, Kalachand Sain6, h

1Department of Applied Geology, Dr. Harisingh Gaur Vishwavidhyalaya, Sagar, M.P, India
2Wadia Institute of Himalayan Geology, 33 GMS Road, Dehradun, India
3Department of Earth and Marine Sciences, University of Palermo, Palermo, Italy
4Department of Earth Science and Geo-Environment, University of Bari, Bari, Italy
5Istituto Nazionale di Geofisica e Vulcanologia, Rome, Italy.
6CSIR-National Geophysical Research Institute, Hyderabad, India

Emails: asachida5908@gmail.com; bchinmoy@wihg.res.in; ceshaan.srivastava@unipa.it; djitender@wihg.res.in; egiuseppefrancesco.rizzo@unipa.it; fmaurizio.gasparo@unipa.it; gattilio.sulli@unipa.it; hkalachandsain7@gmail.com

Why We Need FracSTAT

Quantitative characterization of fracture networks has become an indispensable component of structural geology, rock mechanics, and reservoir characterization. These networks exert fundamental control over the mechanical, hydraulic, and transport properties of rocks (National Research Council, 1996), which in turn influences critical factors like fluid migration (Berkowitz, 2002), reservoir productivity, geothermal circulation, groundwater flow, mineralization, and the long-term integrity of subsurface engineering systems. Because fracture populations are commonly scale-dependent, their length, spacing, and aperture distributions must be characterized statistically rather than described by single representative values (Bonnet et al., 2001), and both mechanical and chemical processes contribute to the patterns that are ultimately measured (Laubach et al., 2019).

The Fragmentation Problem

Despite significant advancements in software development over the past decade, the process of analyzing fracture networks often remains fragmented across multiple environments. Existing open tools each cover part of the problem well — trace-pattern quantification in FracPaQ (Healy et al., 2017), topological and geometric network analysis in NetworkGT (Nyberg et al., 2018), and spherical projection in OSXStereonet (Cardozo & Allmendinger, 2013) — but no single environment carries a dataset through all of them. This creates several bottlenecks for researchers and engineers:

  • Digitization, topological analysis, statistical analysis, stress evaluation, and uncertainty quantification are frequently performed in entirely different software packages or through custom scripts.
  • This disjointed workflow requires unnecessary data transfer, repeated preprocessing, and leads to inconsistent parameter handling.
  • It severely limits reproducibility and creates a steep learning curve, especially for students or researchers without extensive scientific programming experience.
  • Many of these fragmented workflows rely on proprietary software environments, making comprehensive fracture characterization both technically demanding and time-consuming.

The FracSTAT Solution

FracSTAT is not designed to simply replace existing software, but to provide a cohesive, open-source, and user-oriented computational framework that unifies these critical analytical components into a single application. Key benefits include:

  • Integrated Workflow: It combines geometric analysis, statistical characterization, spatial analysis, network topology (Sanderson & Nixon, 2015), visualization, stress-based fracture assessment (Morris et al., 1996), and uncertainty quantification into a consistent, reproducible pipeline.
  • Seamless Data Utilization: Information generated in one module is smoothly transferred and utilized by subsequent modules, minimizing manual intervention and ensuring methodological consistency.
  • Open-Source Accessibility: FracSTAT is completely Python-based and open-source, building on NumPy (Harris et al., 2020), SciPy (Virtanen et al., 2020), pandas (McKinney, 2010), and Matplotlib (Hunter, 2007), which removes the reliance on proprietary tools. It features a graphical user interface (GUI) that allows for advanced analysis without requiring deep programming expertise.
  • Extensible Architecture: While accessible to beginners, its modular design provides advanced users with the flexibility to extend the software's capabilities as new research challenges arise.
  • Uncertainty Quantification: Modern geological investigations require more than deterministic measurements. FracSTAT answers this by incorporating rigorous quantification of uncertainties through Monte Carlo and Latin hypercube sampling (McKay et al., 1979); Helton & Davis (2003), with global sensitivity measures (Saltelli et al., 2008), and evaluating their implications for geomechanical interpretation directly within the workflow.

Ultimately, FracSTAT serves as an integrated analytical platform intended to bridge the gap between conventional fracture characterization and modern quantitative structural analysis. It delivers a transparent, extensible framework to investigate all facets of a fracture network within one unified environment.

User Interface Technology

FracSTAT's desktop interface is built on PySide6 (Qt for Python). Plots are native Matplotlib figures embedded through Matplotlib's backend_qtagg Qt canvas.

Note for readers of the module pages: the widget classes named throughout this documentation — CTkFrame, CTkTabview, CTkScrollableFrame, FigureCanvasTkAgg, StringVar, ttk.Treeview, and the after() scheduling calls — are provided by FracSTAT's own ui_common.qtk layer. This layer keeps a familiar Tk-style API surface while implementing every widget on top of PySide6 (for example, ttk.Treeview is a QTreeWidget subclass and after() is driven by QTimer). These names therefore describe Qt widgets, not CustomTkinter or Tkinter ones.

References

Sources are listed alphabetically within each group. In-text citations throughout this page link to the corresponding entry below.

Fracture Networks, Scaling and Topology

  • Berkowitz, B. (2002). Characterizing flow and transport in fractured geological media: A review. Advances in Water Resources, 25(8–12), 861–884. https://doi.org/10.1016/S0309-1708(02)00042-8
  • Bonnet, E., Bour, O., Odling, N. E., Davy, P., Main, I., Cowie, P., & Berkowitz, B. (2001). Scaling of fracture systems in geological media. Reviews of Geophysics, 39(3), 347–383. https://doi.org/10.1029/1999RG000074
  • Laubach, S. E., Lander, R. H., Criscenti, L. J., Anovitz, L. M., Urai, J. L., Pollyea, R. M., … Pyrak-Nolte, L. J. (2019). The role of chemistry in fracture pattern development and opportunities to advance interpretations of geological materials. Reviews of Geophysics, 57(3), 1065–1111. https://doi.org/10.1029/2019RG000671
  • National Research Council (1996). Rock Fractures and Fluid Flow: Contemporary Understanding and Applications. National Academies Press, Washington, D.C. https://doi.org/10.17226/2309
  • Sanderson, D. J., & Nixon, C. W. (2015). The use of topology in fracture network characterization. Journal of Structural Geology, 72, 55–66. https://doi.org/10.1016/j.jsg.2015.01.005

Existing Fracture-Analysis Software

  • Cardozo, N., & Allmendinger, R. W. (2013). Spherical projections with OSXStereonet. Computers & Geosciences, 51, 193–205. https://doi.org/10.1016/j.cageo.2012.07.021
  • Healy, D., Rizzo, R. E., Cornwell, D. G., Farrell, N. J. C., Watkins, H., Timms, N. E., … Smith, M. (2017). FracPaQ: A MATLAB™ toolbox for the quantification of fracture patterns. Journal of Structural Geology, 95, 1–16. https://doi.org/10.1016/j.jsg.2016.12.003
  • Nyberg, B., Nixon, C. W., & Sanderson, D. J. (2018). NetworkGT: A GIS tool for geometric and topological analysis of two-dimensional fracture networks. Geosphere, 14(4), 1618–1634. https://doi.org/10.1130/GES01595.1

Stress-Based Assessment and Uncertainty Quantification

  • Helton, J. C., & Davis, F. J. (2003). Latin hypercube sampling and the propagation of uncertainty in analyses of complex systems. Reliability Engineering & System Safety, 81(1), 23–69. https://doi.org/10.1016/S0951-8320(03)00058-9
  • McKay, M. D., Beckman, R. J., & Conover, W. J. (1979). A comparison of three methods for selecting values of input variables in the analysis of output from a computer code. Technometrics, 21(2), 239–245. https://doi.org/10.2307/1268522
  • Morris, A., Ferrill, D. A., & Henderson, D. B. (1996). Slip-tendency analysis and fault reactivation. Geology, 24(3), 275–278. https://doi.org/10.1130/0091-7613(1996)024<0275:STAAFR>2.3.CO;2
  • Saltelli, A., Ratto, M., Andres, T., Campolongo, F., Cariboni, J., Gatelli, D., Saisana, M., & Tarantola, S. (2008). Global Sensitivity Analysis: The Primer. John Wiley & Sons. https://doi.org/10.1002/9780470725184

Scientific Python Stack

  • Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357–362. https://doi.org/10.1038/s41586-020-2649-2
  • Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90–95. https://doi.org/10.1109/MCSE.2007.55
  • McKinney, W. (2010). Data structures for statistical computing in Python. In Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
  • Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., … van Mulbregt, P. (2020). SciPy 1.0: fundamental algorithms for scientific computing in Python. Nature Methods, 17(3), 261–272. https://doi.org/10.1038/s41592-019-0686-2

How to cite FracSTAT. If any part of an analysis in a publication was produced with this software, cite the application itself in addition to the method sources listed on the individual tab pages:

Mahanta, S. N., Kumar, P. C., Srivastava, E., Kumar, J., Rizzo, G. F., Gasparo Morticelli, M., Sulli, A., & Sain, K. (2026). FracSTAT: an integrated open-source platform for fracture statistics, stress-based and uncertainty analysis (Version 1.0.0) [Computer software]. https://github.com/sachi5908/FracSTAT

Also state the FracSTAT version (shown as the badge below the launcher logo, and in full on the in-app About page), the Python version, and whether the analysis was run from source or from the standalone desktop build — the version number is what fixes the algorithms and defaults a reader would need to reproduce a figure. Each tab page carries its own methods statement naming the estimators, conventions and parameter values that page's plots depend on; cite those in the methods section rather than citing this page alone.