From 1b163c507ba5927a44934580779ddc2ec39da63c Mon Sep 17 00:00:00 2001 From: "Marco A. Lopez-Sanchez" Date: Mon, 6 Apr 2020 11:22:42 +0200 Subject: [PATCH] update docs --- .gitignore | 1 + DOCS/getting_started.md | 2 +- DOCS/imageJ_tutorial.md | 10 +-- .../notebook_example-checkpoint.ipynb | 87 ++++++++++++++++++- 4 files changed, 87 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 8a2795c..015b0d0 100644 --- a/.gitignore +++ b/.gitignore @@ -233,3 +233,4 @@ Saltykov_output.csv ## Notebook checkpoints ############# .ipynb_checkpoints +grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb diff --git a/DOCS/getting_started.md b/DOCS/getting_started.md index bf0f57c..442c3e4 100644 --- a/DOCS/getting_started.md +++ b/DOCS/getting_started.md @@ -45,7 +45,7 @@ differential stress via paleopizometers. Get a list of the main methods using: get.function_list() ``` -Alternatively, if you are using a Jupyter notebook you have an example in the link below: +Alternatively, if you are using a Jupyter notebook you have an example in the link below (you can also find this example notebook on your hard drive inside the ``grain_size_tools`` folder): https://github.com/marcoalopez/GrainSizeTools/blob/master/grain_size_tools/notebook_example.ipynb diff --git a/DOCS/imageJ_tutorial.md b/DOCS/imageJ_tutorial.md index e76c453..ec251bf 100644 --- a/DOCS/imageJ_tutorial.md +++ b/DOCS/imageJ_tutorial.md @@ -12,7 +12,7 @@ Grain size studies in rocks are usually based on measures performed in thin sect ![Figure 1. An example of a grain boundary map](https://raw.githubusercontent.com/marcoalopez/GrainSizeTools/master/FIGURES/GBmap.png) *Figure 1. An example of a grain boundary map* -Nowadays, these measures are mostly made on digital images made by pixels (e.g. Heilbronner and Barret 2014), also known as raster graphics image. You can obtain some information on raster graphics [here](https://en.wikipedia.org/wiki/Raster_graphics). For example, in a 8-bit grayscale image -the most used type of grayscale image-, each pixel contains three values: information about its location in the image -their x and y coordinates- and its "grey" value in a range that goes from 0 (black) to 255 (white) (i.e. it allows 256 different grey intensities). In the case of a grain boundary map (Fig. 1), we usually use a binary image where only two possible values exist, 0 for white pixels (the grain boundary) and 1 for black pixels (the grains). +Nowadays, these measures are mostly made on digital images made by pixels (e.g. Heilbronner and Barret 2014), also known as raster graphics image. You can obtain some information on raster graphics [here](https://en.wikipedia.org/wiki/Raster_graphics). For example, in a 8-bit grayscale image -the most used type of grayscale image-, each pixel contains three values: information about its location in the image -their x and y coordinates- and its "grey" value in a range that goes from 0 (black) to 255 (white) (i.e. it allows 256 different grey intensities). In the case of a grain boundary map (Fig. 1), a binary image is normally used where only two possible values exist, 0 for black pixels (the grains) and 1 for white pixels (the grain boundary). One of the key points about raster images is that they are resolution dependent, which means that each pixel have a physical dimension. Consequently, the smaller the size of the pixel the higher the resolution. The resolution depends on the number of pixels per unit area or length, and it is usually measured in pixel per (square) inch (PPI) (more information about [Image resolution](https://en.wikipedia.org/wiki/Image_resolution) and [Pixel density](https://en.wikipedia.org/wiki/Pixel_density)). This concept is key since the resolution of the raw image -the image obtained directly from the microscope- will limit the precision of the measures. Known the size of the pixels is therefore essential and it will allow us to set the scale of the image to measure of the areas of the grain profiles. In addition, it will allow us to later make a perimeter correction when calculating the equivalent diameters from the areas of the grain profiles. So be sure about the image resolution at every step, from the raw image you get from the microscope until you get the grain boundary map. @@ -65,13 +65,5 @@ Heilbronner, R., Barret, S., 2014. Image Analysis in Earth Sciences. Springer-Ve > This book focuses on image analysis related with Earth Sciences putting much emphasis on methods used in structural geology. The first two chapters deals with image processing and grain segmentation techniques using the software Image SXM, which is a different flavour of the ImageJ family applications (see [here](http://fiji.sc/ImageJ)). -Heilbronner, R., 2000. Automatic grain boundary detection and grain size analysis using polarization micrographs or orientation images. *J. Struct. Geol.* 22, 969–981. doi:[10.1016/S0191-8141(00)00014-6](http://www.sciencedirect.com/science/article/pii/S0191814100000146) - -> This paper explains a simple procedure for creating grain boundary maps from thin sections using a semi-automatic method implemented in a NIH Image macro named Lazy Grain Boundary (LGB). NIH Image is the predecessor of ImageJ (no longer under active development). The authors compare the results obtained using the LGB method and manual segmentation using digital images obtained from a quartzite under light microscopy using different techniques. Interestingly, all the steps described in the protocol can be automated using the ImageJ software and using more sophisticated segmentation algorithms than those originally implemented in the LGB macro (e.g. using the Canny edge detector instead of the Sobel one or more sophisticated noise reduction filters). - -Barraud, J., 2006. The use of watershed segmentation and GIS software for textural analysis of thin sections. *Journal of Volcanology and Geothermal Research* 154, 17–33. doi:[10.1016/j.jvolgeores.2005.09.017](http://dx.doi.org/10.1016%2Fj.jvolgeores.2005.09.017) - -> This paper propose a workflow for grain segmentation and grain analysis that differs slightly from other approaches referred here. For the acquisition, it uses three different images from light microscopy with different orientations, combining them in a false-colour RGB image. For grain segmentation it uses the anisotropic diffusion for noise reduction plus watershed methods (both available in ImageJ). - [next section](https://github.com/marcoalopez/GrainSizeTools/blob/master/DOCS/references.md) [table of contents](https://github.com/marcoalopez/GrainSizeTools/blob/master/DOCS/tableOfContents.md) diff --git a/grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb b/grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb index 65bc822..e11831d 100644 --- a/grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb +++ b/grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb @@ -873,7 +873,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The ``summarize`` method returns different central tendency estimators (averages), the confidence intervals, and several distribution features such as dispersion and shape. Also a Shapiro-Wilk warning telling as that our distribution is not normally distributed, which is to be expected since we know that this is a lognormal distribution. Note that the geometric mean and the lognormal shape are very close to the values used to generate the syntethic dataset. Let's do the same using the dataset that comes from a real rock, for this we have to pass the column with the diameters:" + "The ``summarize`` method returns different central tendency estimators (averages), the confidence intervals, and several distribution features such as dispersion and shape. Also a Shapiro-Wilk warning telling as that our distribution is not normally distributed, which is to be expected since we know that this is a lognormal distribution. Note that the geometric mean and the lognormal shape are very close to the values used to generate the syntethic dataset, 20 and 1.5 respectively. Let's do the same using the dataset that comes from a real rock, for this we have to pass the column with the diameters:" ] }, { @@ -936,7 +936,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -966,7 +966,9 @@ "source": [ "fig, ax = plot.distribution(dataset['diameters']) # this is just to show the plot in the notebook\n", "\n", - "# fig - " + "# fig stems for the figure\n", + "# ax stems for the axe to the current figure\n", + "# if you can't tell the difference between a figure and an axe check the elements of a figure here: https://matplotlib.org/3.2.1/gallery/showcase/anatomy.html" ] }, { @@ -978,6 +980,85 @@ "# If you want to save the plot in your hard disk\n", "fig.savefig(\"test_distribution.png\", dpi=300)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's plot the area weighted distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "=======================================\n", + "DESCRIPTIVE STATISTICS\n", + "Area-weighted mean grain size = 53.88 microns\n", + "=======================================\n", + "HISTOGRAM FEATURES\n", + "The modal interval is 40.85 - 44.26 microns\n", + "The number of classes are 46\n", + "The bin size is 3.40 according to the auto rule\n", + "=======================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig2, ax = plot.area_weighted(dataset['diameters'], dataset['Area'])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "=======================================\n", + "Normalized SD = 0.16\n", + "KDE bandwidth = 0.04\n", + "=======================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig3, ax = plot.normalized(dataset['diameters'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {