We’ll take a survey of 40 images (see note on imaging) of the glass slide cover at 100x:
We’ll then process the images in full-contrast black and white and fill any “holes” in the image so that the image can be processed more easily. We’ll use ImageJ, which may have standard functions for contrast if not hole filling, though Ott and Peters used it to do that.
Each individual particle will be sized as if it was a circle of the same area (projected area diameter) as the as the particle's outline (the projected area) and measured for circularity. Circularity is a ratio of the area to perimeter: 1 / (4π gravity x Area / Perimeter2) Again, we’ll use ImageJ, which should have standard functions for this.
At this stage we’ll know:
- number of images x image area = survey area
- number of PM2.5 & of PM10 -sized particles on the survey area
- time the monitor was exposed.
we want to figure out what the average mass concentration of dust was in the air over the sample period, in a micrograms per cubic meter (μg/m3) equivalent.
We’ll be following the mass concentration analysis used in on field samples in Ott et al. I’ve tried to collect a procedure, for a deeper explanation please read the paper:
Darrin K. Ott, Naresh Kumar, Thomas M. Peters. Passive sampling to capture spatial variability in PM10–2.5. Atmospheric Environment 42 746–756 (2008)
…with supplementary information from its references:
Darrin K. Ott, William Cyrs, Thomas M. Peters. Passive measurement of coarse particulate matter, PM10-2.5. Aerosol Science 39 156 – 167 (2008)
Jeff Wagner and David Leith. Passive Aerosol Sampler. Part I: Principle of Operation. Aerosol Science and Technology 34: 186– 192 (2001)
Jeff Wagner and David Leith. Passive Aerosol Sampler. Part II: Wind Tunnel Experiments. Aerosol Science and Technology 34: 193– 201 (2001)
I’ve used annotation that is more “pseudocode” than math annotations in text, and then drawn the symbolic math by hand because I don't know how to do math annotation on a computer (this research note probably accepts LaTeX syntax but i don't know it)
Calculating Individual Particle Mass
the mass of the particle is a volume times particle density, corrected for the relative circularity of the particle:
Mass = (π/6) x particleDensity x (projectedDiameter / ParticleCircularity)3
particle circularity is: 1 / (4π gravity x Area / Perimeter2)
We know the projected-area diameter and circularity of each particle, and we can assume, as Ott et al. and Wagner & Macher 2003 did, that dust is 2g/m^-3.
They assume this number because particle density has a smaller effect on the results than other factors and is hard to know over a varied sample period. We can pick a different concentration from the literature or based on test results of background dust characteristics from a filter-based assessment (more on page 157, Ott et al.).
Calculating a particle’s contribution to the mass concentration
The Contribution of the particle is the mass flux of the particle divided by its deposition value
Contribution = massFlux / depositionValue
unpacking this (explained below) into one equation, we get
Contribution = [Mass / (sampleArea x Time)] / [ [[(particleDensity x projectedDiameter2) / (18 x dynamicViscosity)] x g] x .00595 x [[projectedDiameter x [(particleDensity x projectedDiameter2) / (18 x dynamicViscosity)]g] / kinematicViscosity]^-0.439 ]
I could use help understanding what the kinematicViscosity or dynamicViscosity are, all other numbers accounted for
Mass Flux of the Particle
I don’t really know what mass flux means but its the mass of a particle divided by the total sample area times the total sample time:
massFlux = Mass / sampleArea x Time
Deposition Value of a Particle
The deposition value of particle is the ambient deposition value multiplied by an empirical “mesh factor” derived in a wind tunnel data in Wagner and Leith Pt. II.
depositionValue = depositionAmbient x meshFactor
Ambient Deposition factor
Ott et al. ’s deposition factor is the “relaxation time of the particle” multiplied by gravitational constant.
depositionAmbient = relaxationTime x gravity
relaxationTime = (particleDensity x projectedDiameter2) / (18 x dynamicViscosity)
the mesh factor is a “best fit” line for emipirical data. It depends on the relaxation time like the ambient deposition factor, and something called kinematic viscosity of air:
.00595 [(projectedDiameter x relaxationTime x gravity) / kinematicViscosity)^-0.439
Both of these factors are dependent on a physics concepts left unexplained in the literature that I’m stuck on, but assume are easily calculatable but temperature dependent: the dynamic and kinematic viscosity of air. see Ott, Cyrs & Peters 2008 page 159.
Can I just plug in numbers for dynamic and kinematic viscosity from a table of values like this one?
Calculating the Average Mass Concentration
The average mass concentration is discrete integral of the individual particle’s contribution to mass concentration, multiplied by a curve for respirable PM10 and PM2.5 following Hinds 1999 page 255:
|Values of Ei|
|E = 0.9585—(0.00408 x projectedDiameter2) | for projectedDiameter <15μm|
|E = 0 | for projectedDiameter > 15μm|
E for PM 2.5:
PM2. 5 = [1 + exp((3.233 x projectedDiameter) - 9.495)^-3.368
What I want to do
I want to document the manual steps of processing the images of passive particle monitors, stepping through the first part of the process outlined in my previous note on analysis. See also: imaging passive particle monitors, replicating passive particle monitors, research background
the goal is to take a full-color microscope image and:
- Set the scale
- convert to a high-contrast black and white image through "thresholding"
- fill any "holes" in the high contrast particles
- measure the particles' perimeter and area
My attempt and results
I used Fiji, a distribution of ImageJ with a nice interface and easier scripting capabilities all ready to use.
Setting the Scale
Now go to the menu Analyze > Set Scale.
- Set unit length to μm (you an type um)
- check "global"
- this will make it apply to all the other images opened
You can find and check this calibration under Plugins > Utilities > Image Properties
Thresholding the image
Thresholding makes everything on one side of a color or lightness threshold a single color. We are going to do it on a greyscale image to get a black and white image that is "binary," i.e. every pixel is either black or white.
First, convert the image to greyscale by going to Image > Type > 8 bit
Now we want to threshold the image to a binary image. Go to Image > Adjust > Threshold
There are a variety of available modes, all of them seem to produce a decent binary image if the brightness is adjusted correctly. It is an open question as to which we should use.
select a threshold that isolates particles without including noise. This should be the same threshold used universally during processing, so some testing is called for.
Now to make sure there aren't any greyscale elements left by using the command Process > Binary > Make Binary
You should have something like this:
While thresholding gave us a good high-contrast image, somewhat transparent or reflective particles have "holes" inside them (left) that we want to fill (right):
Go to Process > Binary > Fill Holes
Now our image is ready to analyze. We first need to set the measurements that will be taken. Go to Analyze > Set Measurements and check off:
- Shape Descriptors
Shape Descriptors will give us the "circularity" factor needed for our volume calculations.
Now go to Analyze > Analyze Particles
ImageJ has now calculated the area and perimeter of the particles and represents them as idealized ovals.
We also have a .xls (Excel spreadsheet) file that we can use to run the volumetric equivalents described previously.
Questions and next steps
The manual procedure will be useful in helping us make decisions about how best to image the particles and what thresholding system to use. ultimately though, we want to create an automated script.