Skip to main content

Multi-Modal Electron Microscopy Data Fusion for Spectral Maps

Project description

2D Multi-Modal Data Fusion for Electron Microscopy

License PyPI Python

Fused multi-modal electron microscopy, a combines elastic scattering (HAADF) and inelastic spectroscopic signals (EELS/EDX) to recover high signal-to-noise ratio chemical maps at nano- and atomic-resolution.

By linking simultaneously acquired modalities through regularized optimization, the method can reduce dose requirements by over one order of magnitude while substantially improving SNR for chemical maps.

Demo Screenshot

Installation

The package is available on PyPI:

pip install mapfusion

For local development, clone the repository and install in editable mode:

git clone https://github.com/jtschwar/Multi-Modal-2D-Data-Fusion.git --recursive
cd Multi-Modal-2D-Data-Fusion
pip install -e . 

Quick Start

from mapfusion import DataFusion

# Initialize fusion with list of elements
elements = ['Co', 'S', 'O']
fusion = DataFusion(elements)

# Load your chemical maps
# Provide as a dictionary where keys match your element list
# This helper function loads starter data from github
cobalt_map, sulfur_map, oxygen_map, haadf_im = fusion.load_edx_example()
chemical_maps = {
    'Co': cobalt_map,      # 2D numpy arrays
    'S': sulfur_map, 
    'O': oxygen_map
}
fusion.load_chemical_maps(chemical_maps)

# Load the simultaneously acquired HAADF image
fusion.load_haadf(haadf_im)  # 2D numpy array

# Run the fusion algorithm 
# We can adjust with regularization parameters
fusion.run(
    nIter=50, 
    lambdaEDS = 0.005, lambdaTV=0.1,
    plot_images=True, plot_convergence=True)

# Get results in dictionary format
results = fusion.get_results()
fused_cobalt = results['Co']
fused_sulfur = results['S']

Documentation

Refer to the comprehensive tutorial to learn how to adjust the hyperparameters.

Citation

If you use any of the data and source codes in your publications and/or presentations, we request that you cite our papers:

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

mapfusion-0.9.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mapfusion-0.9.0-cp312-cp312-win_amd64.whl (92.4 kB view details)

Uploaded CPython 3.12Windows x86-64

mapfusion-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (147.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

mapfusion-0.9.0-cp312-cp312-macosx_11_0_arm64.whl (99.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mapfusion-0.9.0-cp311-cp311-win_amd64.whl (91.1 kB view details)

Uploaded CPython 3.11Windows x86-64

mapfusion-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (146.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mapfusion-0.9.0-cp311-cp311-macosx_11_0_arm64.whl (98.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mapfusion-0.9.0-cp310-cp310-win_amd64.whl (90.5 kB view details)

Uploaded CPython 3.10Windows x86-64

mapfusion-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mapfusion-0.9.0-cp310-cp310-macosx_11_0_arm64.whl (97.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mapfusion-0.9.0-cp39-cp39-win_amd64.whl (91.4 kB view details)

Uploaded CPython 3.9Windows x86-64

mapfusion-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mapfusion-0.9.0-cp39-cp39-macosx_11_0_arm64.whl (97.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mapfusion-0.9.0-cp38-cp38-win_amd64.whl (90.2 kB view details)

Uploaded CPython 3.8Windows x86-64

mapfusion-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mapfusion-0.9.0-cp38-cp38-macosx_11_0_arm64.whl (96.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file mapfusion-0.9.0.tar.gz.

File metadata

  • Download URL: mapfusion-0.9.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0.tar.gz
Algorithm Hash digest
SHA256 c5aa7befc1005563a068e299110b449722aa74e7f6cfaeef70329cadd4294a81
MD5 ee7836ed5cc80a13001fde20d49286a6
BLAKE2b-256 66963b2784e30599f86e4965553ddc357716dd358238f5c5ab612566cbe51d45

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mapfusion-0.9.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 07977bd83d6ec09c1055e7726e92d4c3de11d4742bef52abff9d81964659e9df
MD5 5eeac3c6e74d087ebc5a826f43d34883
BLAKE2b-256 29bd0387d9d2ea7f4e36711fed7e0e0191576e3f6e1b28e3f38548e5b5d5c3bd

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c680e70bf5b485cfde53c0683043e54d64b90997e0d65f808923ece8657cdbb5
MD5 e65667ddf661b0e0e43256ecfac9c7ec
BLAKE2b-256 9b2a85dafd10f149a73d2d4f6f405176304bf78735baf2796c10fc6678eff979

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73c92e048afb40057d659298c4549fe5fb84f6a298e971ac5f2cc2a85f000a8b
MD5 4d21fc972997054638d182c30d39c5ae
BLAKE2b-256 6001ca9e3f63b1f183c49f896e853ec653650f27bd56871d98bb05ab7637bdf6

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mapfusion-0.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 91.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ced3841603ec846e51e01df140223e2b6c9eed683b03188fac5ce139024ac5ee
MD5 f8540f38a442d579a557cd8ddaa12747
BLAKE2b-256 4e272dadb6338ea20ee5af7c8edf9356f77eeef6245c7f58490711932cb57e71

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f39dd6728f15eb02fab9990b16a00ff8a357fed2761d11e2922639fadfc9a6d0
MD5 44ab2ca49fc087fbaab30fd7215db7b1
BLAKE2b-256 91c0723fbc69560efb347c6c9751f9b5bb813885d40d7c28f77872c88421ebd2

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58f00fa7a001e59240a2095f3c2517232db153021e91e19e48bff218dc0436f6
MD5 2f700982c62966c09065f8ba7b665d80
BLAKE2b-256 4f390b847a6ebb95efb71d64cfa640815d4d0d229a47a3bfd24d762c9710c37e

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mapfusion-0.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 90.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f7b82eca4c2ff14a83f82d4af292dcfb33b0924377ba612729a27d718d4062bc
MD5 c36006ae49db9f0ae1d85cd09e8eb7d5
BLAKE2b-256 08bbbdb844b1035e60c374dd620229a337fe81b0cbc40ce941d6266a5e4319f8

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b100f8d17852f3c64f0865f1296a115bd200c2f511940973e722371cb8e9a4a
MD5 567a85b9f13f12492cf611f492c04261
BLAKE2b-256 5561d6568cafda89a9c11cff17d6e51de29fac4c20c791755aafb27e5a741344

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48cf4bcad5e47779481405afda12f6bc7da8a9a7f5fe45efc97f07304fff183f
MD5 516a7e78ee7bdb98622b7121e5d3feaa
BLAKE2b-256 0688f3e89b1f5de44c34b651b5c6efe3b34bd399b534328f5b677b60259ebf62

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mapfusion-0.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 91.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f578c3ed2dd5f1946a82ccb4473b4f97d5ea969272f526b6de980b6d9075d9ee
MD5 f4d0e439c381756905c76dda95d38757
BLAKE2b-256 79d6c2007827ee6a2bbe98d179254fd9451e3088c206bbd4fd1078732b70a0e9

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a918be3ae12c85339ecd163fa8e6a74b139179351701668c5ed2499b840e6a4
MD5 8647ef6f77fd00a3145ad0a95857c8a1
BLAKE2b-256 2b4b9ea0b7cd1361d5556fe6a5e0d937f633a7f0908e461f37f1e28fdb5e17ab

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84d5a6a7e8fbb3550b4ac1f9e17dbd5f9755ce945fed836ebc8a5ee4f0417318
MD5 1d2605a693bb4c76f3a717178062392f
BLAKE2b-256 c305235b981130793059b9c066cb85ac5155f7e4f34edca0a9027c339121c0c4

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mapfusion-0.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 90.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mapfusion-0.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1c44703f9c2bf8054fc190da3c2c847babd9c329052b35dc45848190d7d30cd6
MD5 adc4a6111792f8aebecfbb477e10f144
BLAKE2b-256 7fbc182b313b887114458bc6b7743fd7100a15cb89b0be1f593b4974c1763be9

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03e5d9802d6d4c9d403514dc535d42c32855e4289799654d8d4e847817223709
MD5 9543b5278ff2a2cd4edea32ef769638f
BLAKE2b-256 1faf676bebb54fbd442548f88cce7c0c01a8099ec06cc78f9dbce77b36cfb168

See more details on using hashes here.

File details

Details for the file mapfusion-0.9.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapfusion-0.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4295e250313c7a2052ec0c32a30bb0aa51608afe99283b84d36f72ca6ed382bc
MD5 2dcd592842eaea75511c0c02260aa2e5
BLAKE2b-256 7daf97e6fcaf164c5bc2f5be35672c76446b02a2f768f635d32a82c4c1dfeb7b

See more details on using hashes here.

Supported by

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