Skip to main content

A python package for processing 3d volumetric data to build meshes for the Sand Atlas data repository

Project description

Sand Atlas

Code style: black

Documentation here, or compile it yourself following the details below.

Installation

First, install ffmpeg and blender on your system. Both of these need to be available in your system path (so that running ffmpeg and blender in the command line works).

This package can then be installed via pip install sand-atlas. If installing from github, try cloning and then running:

pip install -e .

If you make any changes to the source code, re-run those two lines to have your changes reflected in your installed package.

Usage

Processing particles

If you are interested in reproducing a dataset that is available in the Sand Atlas, you can use the installed script sand_atlas_process, like so:

sand_atlas_process <path_to_json_file> --label <path_to_labelled_image> --raw <path_to_raw_image>

If you supply only the raw image, the script will attempt to label the image for you. If you supply the labelled image, the script will use that to generate the dataset. The json file contains the metadata for the dataset you are interested in. The json files for the datasets in the Sand Atlas are available here.

VDB files

VDB files are the industry standard for level set data. They can be viewed in recent versions of the open source software blender, via Add -> Volume -> Import OpenVDB. If you would like to use these files in a python environment that doesn't include the pyopenvdb package, you can use the vdb_to_npy script provided by the sand_atlas package to convert the VDB file to a numpy array:

vdb_to_npy <path_to_vdb_file>

This will produce a .npy file in the same directory where you run the script. You can then load this file in python with np.load:

import numpy as np
data = np.load('path_to_npy_file.npy')

Downloading particles from the python API

You can query the server to get a list of all of the available types of particles with

import sand_atlas
particles = sand_atlas.data.list()
print(particles)

If you would like to download all of the particles with a particular mesh quality to the current working directory, you do this via

import sand_atlas
sand_atlas.data.get_all('SAND-NAME', MESH-QUALITY)

If you would like to download a specific particle, you can do this via

import sand_atlas
sand_atlas.data.get_by_id('SAND-NAME', MESH-QUALITY, PARTICLE-ID)

Documentation

We use sphinx to manage the docs. Update documentation with:

cd docs
make html

Once these are built, you can commit and push the changes to github to have them refreshed on github pages. You can also view them locally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sand_atlas-1.1.1.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

sand_atlas-1.1.1-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file sand_atlas-1.1.1.tar.gz.

File metadata

  • Download URL: sand_atlas-1.1.1.tar.gz
  • Upload date:
  • Size: 29.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sand_atlas-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5421884ee021e582060983085a60945a23204e53d307e651635a715700ded73b
MD5 84c6461f837143f20ddd587bafb6ee50
BLAKE2b-256 49940e0b25eff78b104766ff70da0ede2e9745e0cafc46577791a24c22820f30

See more details on using hashes here.

Provenance

The following attestation bundles were made for sand_atlas-1.1.1.tar.gz:

Publisher: workflow.yml on scigem/sand-atlas-python

Attestations:

File details

Details for the file sand_atlas-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: sand_atlas-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sand_atlas-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87d78a6efea8e9609c40fbfd7961e4bb4c0b6f3eef6f4ff390e5dc0cb789f992
MD5 0fef9d61fa1aca4f5ccc6de796793222
BLAKE2b-256 8f70f86bdb0f5f3b1ba2d7adca452852924d369aa55b495ac32e0977889d3c7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sand_atlas-1.1.1-py3-none-any.whl:

Publisher: workflow.yml on scigem/sand-atlas-python

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page