Skip to main content

Software for the Practical Analysis of Materials

Project description

Welcome to radioSphere

Join the chat room for support here.

This project contains a series of tools for the analysis of divergent radiographs containing spherical particles, in particular to measure 3D positions from a single radiograph like this one:

Sample Radiograph

radioSphere is mostly a collection of python libraries (currently bound with a bit of C for the projector).

The technique has been developed by Edward Andò (CNRS), Benjy Marks, and Stéphane Roux (CNRS), there is a paper under review in Measurement Science and Technology at the moment.

The technique proposed is a two-step approach:

  • Step 1: is a technique called tomopack which is an FFT-based pattern matching approach. It uses a template image, or "structuring element" that we call ψ to pick out spheres. Since the size of ψ needs to be very close to the correct size, this allows us to distinguish different sized projections of spheres.

  • Step 2: Position optimisation: Starting from a guess of particle positions, the projection is computed and compared to the measured projection. Particle positions are modified iteratively in order to minimise the difference between computed projection and measured one.

Geometry in radioSphere is everything: the coordinate systems defined are as follows:

Geometry

Notes on the repository

  • src/radioSphere: this folder contains the core functions of radioSphere:

    • detectSpheres: functions related to tomopack (Step 1)

    • optimisePositions: functions related to the optimiser (Step 2)

    • projectSphere: The tools to create projections (units mm)

  • tests: contains tests to test the functionality of what is in tools

  • examples and paper/figureScripts: examples of the use of radioSphere on both synthetic and experimental data

  • data: where the presented experimental and synthetic data is stored to run the examples

  • figures: figures for paper and this website

  • paper: will contain final sources to the paper

  • presentations: sources for presentations given about this topic

Todo next in Sydney

  • Separate analysis of Benjy's 25mm and 14mm experiments
  • Attempt to measure transformation matrix between two source-detector setups (is same SSD assumed)
  • Attempt a two-source-detector optimisation that should elimiate X-drection error
  • Evaluate attenuation difference between 25 and 14mm particles
  • Attempt a mix of 25 and 14mm, by eyeballing it, they should separate nicely (no overlap), for each angle separately
    • Does the residual need to be computed with a different attenuation curve for each one?
  • Attemps a non-separatable mix using both source informations + non-overlapping together

Todo next in the Alps

  • Do a physical ψ-scan with about 1/20 particle diameter steps
  • Don't forget the calibration sphere
  • No need to do a noise-scan, but a sample rotation (in a cylindrical holder) would be good
  • Attempt to measure L vs I/I0 directly on a tomopack reconstruction -> Recognise 3D positions from tomopack-scan
    • assemble ψ-scan
    • run ψ-scan on the centred ψ-image to get fXseries and compute characteristic template for one particle
    • chop this off on detector and in X-direction and save this as a convolution kernel
    • run ψ-scan on real pack of spheres to get fXseries, and run kernel on it
    • threshold centres, that's your 3D reconstruction! -> compute P (in mm) and plot, for (every?) pixel on the detector P vs I/I0 -> Fit attenuation (hopefully a nice line) and look at fitting residuals on the detector -> do optimisation in greylevels to avoid ln(I/I0) -> party

Installing radioSphere

Please clone this repository once checked out, activate your virtual environment, and then: pip install .

run the tests to make sure everything is OK: pytest tests/ or python setup.py test

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

radioSphere-2.0.0.tar.gz (624.9 kB view details)

Uploaded Source

Built Distribution

radioSphere-2.0.0-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

Details for the file radioSphere-2.0.0.tar.gz.

File metadata

  • Download URL: radioSphere-2.0.0.tar.gz
  • Upload date:
  • Size: 624.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for radioSphere-2.0.0.tar.gz
Algorithm Hash digest
SHA256 68806ab7219b1598bd91d394a71777552a8df957b83036e62af3af46fdc98e6a
MD5 62e0006a93ba82dee20ad23b0a03bfba
BLAKE2b-256 b4b9b073bca55b819e9547df58e0b749f9cf76409c8a349f26610e69300208a6

See more details on using hashes here.

File details

Details for the file radioSphere-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: radioSphere-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 65.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for radioSphere-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0884f6b3248a4836f3a03b470a8a5a3f2eb543b14ea9bfb933807fcbdaacf741
MD5 3acef26679e363ad99c18357d4d20643
BLAKE2b-256 d9ad6ca9cca36df58cce0871cbe46cc68e7d939b67c6ee6532f60520ed536dbe

See more details on using hashes here.

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