Analytical methods of analyzing planar trace fossils

advertisement
SUPPLEMENTAL FILE 3
OCCUPIED SPACE PERCENTAGE AND BURROW SHAPE CALCULATIONS
Step-by-step burrow shape methodology.—The calculation of the burrow area shape
(BAS) and the occupied space percentage (OSP) required the creation of a representative buffer,
which was done as a series of steps (Fig. 10). The procedure started with exporting the initial
shape as a DXF file from CorelDRAW into ArcGIS. The DXF was brought into ArcGIS with the
Coordinate System set to Behrmann (world). The DXF file converts the initial trace of the
burrows into a line with minimal thickness, so the original thickness of the line needed to be
restored. To do this, the DXF was converted to a shapefile by running the Unsplit Line tool,
which merged all of the individual elements of the line. The Buffer tool was then run with the
radius of the actual trace fossil to recreate the traces as they were in CorelDRAW to get an
‘actual trace representation’.
The Buffer tool was then run again on the actual trace representation with the distance set
to the average distance between the burrows. The setting, ‘Dissolve Type’, in the Buffer tool was
set to ‘All’ in order to merge all of the buffers together. This created a single (or possible
multiple depending on the spacing of the burrows) outline of all of the traces with equal spacing.
Following the creation of the buffer, doughnuts and islands were eliminated, leaving the largest
one (or two) buffers as one (or two) solid piece(s). The Smooth Polygon tool then was used to
smooth out the edges of the buffer. The distance of the Smooth Polygon tool was set to four
times the buffer distance. This process created a Final Buffer that was representative of the
overall shape and but does not conform to each and every nook and cranny, which would
1
artificially decrease the BAS value. The calculation of the BAS was accomplished by measuring
the perimeter and area of the Final Buffer using the Measure Tool in ArcGIS.
Occupied space percentage calculations.—To calculate the OSP, the Final Buffer from
the BAS calculations was set to black with the actual trace representation placed on top and set
to white. These layers then were exported as an EMF file. The EMF file was brought into
CorelDRAW and exported as a grayscale PNG file with the transparent background turned on.
The dpi does not have much of an impact in the calculations for higher dpi values, so 500 dpi
was kept standard. The reason ArcGIS was not used to export the PNG file directly was because
the background did come through as transparent so an alternative method needed to be
determined. The PNG file was then ready to be run through the Matlab script.
Calculation of the OSP was done using the Image Process Tools, Version 2.4.1, which
was found within Matlab, Version 7.12.0 (R2011a). There are no variables within the OSP script
that need to be altered. The Matlab script converts the image from grayscale to black and white,
then counts the individual pixels and calculates the percentage of black and white. The final
image the script creates is a figure with the picture analyzed next to the results of the analysis.
The results include the total number of pixels in the image, the percentage of black pixels, and
the percentage of white pixels. The Matlab script was modified from a script originally created
by Brett Shoelson of The Mathworks and is available online at:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/279293
Matlab occupied space percentage (OSP) script.—
clc;
clear all;
close all;
imtool close all;
workspace;
fontSize = 15;
%Clears workspace
%Delete all variables
%Close all figure windows except those created by imtool
%Close all figure windows created by imtool
%Make sure the workspace panel is showing
2
%Pull in original image in MATLAB in 8-bit greyscale, 500 DPI, png with
%transparent background
OriginalImage = 'File_Location.png';
%Set different files to read with and without background color so that it
%is not counted in the final analysis
grayImage1 = imread(OriginalImage, 'BackgroundColor',1);
grayImage2 = imread(OriginalImage);
grayImage3 = imread(OriginalImage, 'BackgroundColor',0.8);
%Convert original images to binary image. It sets the value between the
%range of black and white from 2-tone original image
binaryImage1 = grayImage1 > 100;
binaryImage2 = grayImage2 > 100;
[rows columns numberOfColorBands] = size(binaryImage2);
subplot(1, 2, 1);
imshow(grayImage3);
title('Trace Fossil Analyzed', 'FontSize', fontSize);
%Calculates the number
numberOfWhitePixels1 =
numberOfBlackPixels2 =
numberOfWhitePixels2 =
of White and Black Pixels
sum(sum(binaryImage1));
sum(sum(binaryImage2 == 0));
sum(sum(binaryImage2));
%Determines the number of extra pixels that are within the transparent
%background
numberOfExtraPixels = numberOfWhitePixels1 - numberOfWhitePixels2;
totalNumberOfPixels = (rows * columns) - numberOfExtraPixels;
numberOfBlackPixels = numberOfBlackPixels2 - numberOfExtraPixels;
numberOfWhitePixels = numberOfWhitePixels2;
%Calculates percentages of pixels
percentBlackPixels = 100.0 * numberOfBlackPixels / totalNumberOfPixels;
percentWhitePixels = 100.0 * numberOfWhitePixels / totalNumberOfPixels;
message = sprintf('Image Results\nTotal number of pixels = %d\nBlack pixels =
%d = %.1f%%\nWhite pixels = %d = %.1f%%', totalNumberOfPixels,
numberOfBlackPixels, percentBlackPixels, numberOfWhitePixels,
percentWhitePixels);
subplot(1, 2, 2);
axis([0 100 0 100]);
text (20,50,message);
axis off;
3
Download