-
Notifications
You must be signed in to change notification settings - Fork 0
bsavitzky/rdf
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This file describes the data processing to be performed on the PbSe
QDS data acquired over large fields of view (600-1000 nm) with sufficient
pixel density to resolve QD centeroids.
The goal is to extract the RDF directly from real space, extract a
self-consistent correlation length which described the length scale over
which long range order decays, and compare this number to the sample
thickness.
Ideally, this entire process will be non-interactive. As of now, user
input is required. See below.
########
Script 1: centroids.py
Description: Finds all of the QDs in an image and identifies their centroidswith subpixel resolution. Determines SL spacing in the process.
Usage: python centroids.py filename.tif threshold
May need to manually set minDist at line 475 if spacing is not
extracted correctly
Input: Image file, as a tiff
Threshold value (~0.1-0.01 seems to work, takes ~5min)
Output: .npz file with all particle centers and the average spacing.
Extract by:
import numpy as np
data = np.load("centroids.npz")
x = data['x'] # np.ndarray
y = data['y'] # np.ndarray
spacing = float(data['spacing'] # float
Script 2: view_centroids.py
Description: Loads image and .npz centers file, and displays overlay. Use
to determine success of a run of centroids.py, or centroids_SP.py.
Optionally highlights a given particle with the -pn flag.
Usage: python view_centroids.py [-pn particleNumber] image_file.tif
centroid_file.npz
input: image file, as a tiff
centers file, as .npz
output: none
options: -pn # Highlights particle number #
Script 3: edit_centroids.ipynb
Description: Displays image with centers overlaid. Allows erroneous
centers to be removed, and missed centers to be added manually. Be sure to
refine centers after with centroids_SP.
input: image file, as a tiff
centers file, as .npz
output: centers file, as .npz
Script 4: SP_centroids.py
Description: Refines a set of centroids with subpixel resolution. Returns
pixelated centroid for any particles which cannot be fit to a gaussian.
Throws out any particles on images egde, then shifts the positions and FOV
accordingly in the output .npz file.
Usage: python SP_centroids.py image_file.tif centroid_file.npz
Input: image file, as tiff
centers file, as .npz
output: centers file, as .npz
Script 5: rdf_exp.py
Description: Generates the RDF for the data given, using centroids.
Note that rdf.py does not save plots of g(r) - these must be calculated
separately from plot_rdf.py. Also note that 'fov_pixels' should be read
directly from the centroids file, as it will have been shifted while
eliminating edger particles - do NOT use 'fov_pixels' from mdscape.py!
Usage: python rdf.py image_file.tif centroid_file.npz dr
Input: -.tif image file
-.npz file with particle centers
-dr, step size in g(r) calculation, in particle diameters
Output: .npz files with:
-Radii, in nm
-Experimental RDF
Grab data via:
data = np.load('rdf_exp.npz')
r_nm, g_exp = data['r_nm'],data['g_exp']
Script 6: rdf_models.py
Desciption: Calculates best fit paracrystalline and projection paracrystalline
rdfs based on g_exp
Usage: python rdf_models.py exp_rdf_file.npz
Input: -.npz file with r and g_exp
Output: -Radii, in nm
-Experimental RDF
-Ideal paracrystalline RDF
-Projection RDF
-best fit sigma, mu, and c
Grab data via:
data = np.load('rdf_exp.npz')
r_nm, g_exp, g_ideal, g_proj, sigma_nm, mu_nm, c = data['r_nm'],data['g_exp'],...etc
Script 7: plot_rdf.py
Description: Makes plots of various rdfs (experimental, ideal, projection)
Input: -.npz file with g(r) (exper, ideal, proj)
Script 8: corr_len.py
Description: Finds the correlation length for an experimental RDF
Input: .npz file with RDF
Output: -.npz file with correlation length and envelope curve used in fit
-.pdf with RDF and envelope fit to find correlation length
############
The 'sample_files/' directory contains one sample file, and two small bash
scripts which import variables and run .py files to strealine workflow
using this package. These should be edited for each dataset as necessary.
About
Set of scripts which calculate experimental and theoretical radial distribution function for electron micrographs of nanoparticles.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published