A parallelized Sequential Gaussian Simulation (SGS) script in Python designed for simulating subglacial topography. It is modeled after the non-stationary SGS with adaptive partitioning technique presented in the open source package GStatSim. Our script is intended for geostaticians interested in reducing the time required to generate subglacial topographic realizations. Using our parallelization strategy, have noticed a speed improvement of up to 14x when compared with serial implementations of SGS. Additionally, we created a Jupyter notebook that walks through the steps of our parallelized algorithm. This notebook features an interactive 3D visualization of the simulated bed topography using PyVista.
We hope our script will make topographic modeling with SGS more accessible and time efficient. If you have any feedback or suggestions, feel free contact me at [email protected].
This script enables users to generate multiple topographic realizations at a specified resolution using subglacial bed-elevation datasets.
- sgs_main.py - Main file, provides an overview of simulation steps
- sgs_preprocess.py - Functions to prepare data for simulation
- sgs_alg.py - Functions that perform calculations to simulate bed elevation in parallel
- sgs_plts.py - Functions to plot topographic realizations
- Ensure all the dependencies are already installed on your system
- All dependencies can be installed using pip install [package]
- Download this repository with git clone https://github.com/GatorGlaciology/SGS-topography-parallelization
- Enter python3 sgs_main.py
- Follow the command line arguments
- Enter relative or absolute file path if dataset is not in same folder as sgs_main.py
- Dataset must be a csv file in polar stereographic coordinates
- Find the resulting csv file(s) and plot(s) in the Output folder
SGS_parallel_demo.ipynb is designed to demonstrate the steps of SGS and increase understanding on how SGS was parallelized. Additionally, users can input their own dataset to generate results. To run, please ensure all dependencies are installed. Using PyVista, after simulating the bed elevation values, we can visualize the topography as shown below:
- numpy
- pandas
- skgstat
- multiprocessing
- sklearn
- matplotlib
- itertools
- pyvista
- Only required for Jupyter Notebook
- ipyvtklink required for interactive visualization
Nathan Schoedl, University of Florida
(Emma) Mickey MacKie, University of Florida
Michael Field, University of Florida
Eric Stubbs, University of Florida
Allan Zhang, University of Florida
Matthew Hibbs, University of Florida
Mathieu Gravey, Utrecht University
Schoedl, Nathan, MacKie, Emma, Field, Michael, Stubbs, Eric, Zhang, Allan, Hibbs, Matthew, Gravey, Mathieu. (2023). SGS Topography Parallelization (1.0). Zenodo. http://doi.org/10.5281/zenodo.7627029
The demo use radar bed measurements in northwest Greenland from the Center for the Remote Sensing of Ice Sheets (CReSIS, 2020) and measurements from Pine Island Glacier in West Antarctica (Fremand, 2022).
CReSIS. 2020. Radar depth sounder, Lawrence, Kansas, USA. Digital Media. http://data.cresis.ku.edu/.
Fremand, A. C., Fretwell, P., Bodart, J., Pritchard, H. D., Aitken, A., Bamber, J. L., ... & Zirizzotti, A. (2022). Antarctic Bedmap data: FAIR sharing of 60 years of ice bed, surface and thickness data. Earth System Science Data Discussions, 1-25