Skip to content

Parallelized sequential Gaussian simulation script for simulating subglacial topography

License

Notifications You must be signed in to change notification settings

GatorGlaciology/SGS-topography-parallelization

Repository files navigation

SGS Topography Parallelization

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].

Github_p2

Python Script

This script enables users to generate multiple topographic realizations at a specified resolution using subglacial bed-elevation datasets.

Files required to execute script:

  • 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

How to use?

  1. Ensure all the dependencies are already installed on your system
    • All dependencies can be installed using pip install [package]
  2. Download this repository with git clone https://github.com/GatorGlaciology/SGS-topography-parallelization
  3. Enter python3 sgs_main.py
  4. 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
  5. Find the resulting csv file(s) and plot(s) in the Output folder

Notebook

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:

Final_readme

Dependencies

  • numpy
  • pandas
  • skgstat
  • multiprocessing
  • sklearn
  • matplotlib
  • itertools
  • pyvista
    • Only required for Jupyter Notebook
    • ipyvtklink required for interactive visualization

Contributors

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

Cite as

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

Datasets

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

About

Parallelized sequential Gaussian simulation script for simulating subglacial topography

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published