Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modules: Pre-processing #19

Open
15 tasks
utkinis opened this issue Sep 3, 2023 · 0 comments
Open
15 tasks

Modules: Pre-processing #19

utkinis opened this issue Sep 3, 2023 · 0 comments
Assignees
Labels
dev Development step

Comments

@utkinis
Copy link
Member

utkinis commented Sep 3, 2023

Description

Write a module to generate the input data for FastIce from topography data. Most of the functionality is already implemented in the scripts, need to package and expose API.

The pre-processing happens in two stages:

  1. Extract the data from the source, e.g., BedMachine. Keep only relevant data, convert to the format supported by FastIce.
  2. In FastIce, load the data in a compatible format, select a subset of the data, transform, and create the object supporting sampling this data.

Step 1 should be outside the FastIce repo, and step 2 could be the part of the core library. We need to support synthetic data sources to be able to generate topography analytically.

Tasks

Data extraction (Stage 1)

  • BedMachine Greenland/Antarctica - NetCDF
  • Vavilov ice cap - GeoTIFF
  • GLAMOS (Swiss glaciers) - GeoTIFF

Data processing (Stage 2)

  • Load data for a selected region. By default, the region includes the whole data range.
  • Transform the data (scale, translate, rotate)
  • Compute the axis-aligned bounding-box (AABB)
  • Generate the rotation matrix minimising the AABB volume
  • Create the DEM sampler object returning the value at (x, y) in 3D, or (x) in 2D, and optionally the gradient vector at a point (using AD)
  • For DEM data, create an SDF object returning the signed distance to the closest point on a surface, and optionally the gradient vector (using AD)
  • For DEM, make a combined sampler returning the result of a binary operation between the two samplers, for example, to offset the smooth real data with a procedural noise

Synthetic data sources

  • Make a collection of SDF primitives: sphere, box, etc. Each primitive should conform to the same interface as the SDF object for a real data
  • Set operations: Union, Intersection, Difference
  • Create an SDF object returning the distance estimate for an arbitrary smooth function
  • Make a data source stochastically generating the bed topography

Extensions for distributed computing

  • Each MPI rank must load only the subset of the data that is relevant to it's local subdomain
@utkinis utkinis added the dev Development step label Sep 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev Development step
Projects
None yet
Development

No branches or pull requests

2 participants