From 552ab6fb77e4c64e957725b908533bff2e58bbbe Mon Sep 17 00:00:00 2001 From: "Marco A. Lopez-Sanchez" Date: Tue, 14 Nov 2023 10:01:22 +0100 Subject: [PATCH] major_reorganization Reorganization of the repository structure in anticipation of the release of the new version of the script (expected in late 2023 or early 2024). --- .gitignore | 3 + DOCS/JN_example.ipynb | 265 ------------------ .../apparent_grain_sizes.ipynb | 158 ++++++----- DOCS/paleopiezometry_module.ipynb | 43 +++ DOCS/stereology_module.ipynb | 45 +++ templates/grain_size_analysis.ipynb | 43 +++ templates/paleopizometry_analisys.ipynb | 83 ++++++ templates/stereology_analysis.ipynb | 79 ++++++ 8 files changed, 377 insertions(+), 342 deletions(-) delete mode 100644 DOCS/JN_example.ipynb rename grain_size_tools/example_notebooks/new_describing_grain_size_populations.ipynb => DOCS/apparent_grain_sizes.ipynb (98%) create mode 100644 DOCS/paleopiezometry_module.ipynb create mode 100644 DOCS/stereology_module.ipynb create mode 100644 templates/grain_size_analysis.ipynb create mode 100644 templates/paleopizometry_analisys.ipynb create mode 100644 templates/stereology_analysis.ipynb diff --git a/.gitignore b/.gitignore index f9b4fb8..8f0ff28 100644 --- a/.gitignore +++ b/.gitignore @@ -237,3 +237,6 @@ grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb grain_size_tools/.ipynb_checkpoints/notebook_example-checkpoint.ipynb grain_size_tools/example_notebooks/2step_plot.png grain_size_tools/example_notebooks/saltykov_plot.png +templates/.jupyter/desktop-workspaces/default-37a8.jupyterlab-workspace +DOCS/test_distribution.png +DOCS/.jupyter/desktop-workspaces/default-37a8.jupyterlab-workspace diff --git a/DOCS/JN_example.ipynb b/DOCS/JN_example.ipynb deleted file mode 100644 index 42871c7..0000000 --- a/DOCS/JN_example.ipynb +++ /dev/null @@ -1,265 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Using the GrainSizeTools script with Jupyter notebooks: a simple example " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "======================================================================================\n", - "Welcome to GrainSizeTools script v2.0.1\n", - "======================================================================================\n", - "GrainSizeTools is a free open-source cross-platform script to visualize and characterize\n", - "the grain size in polycrystalline materials from thin sections and estimate differential\n", - "stresses via paleopizometers.\n", - "\n", - "\n", - "METHODS AVAILABLE\n", - "================== ==================================================================\n", - "List of functions Description\n", - "================== ==================================================================\n", - "area2diameter Estimate the equivalent circular diameter from area sections\n", - "calc_diffstress Estimate diff. stress from grain size using piezometers\n", - "calc_grain_size Estimate the apparent grain size and visualize their distribution\n", - "calc_shape Characterize the log shape of the actual grain size distribution\n", - "confidence_interval Estimate a robust confidence interval using the t-distribution\n", - "extract_column Extract data from tabular-like text files (txt, csv or xlsx)\n", - "Saltykov Estimate the actual grain size distribution via the Saltykov method\n", - "================== ==================================================================\n", - "\n", - "You can get more information about the methods in the following ways:\n", - " (1) Typing help plus the name of the function e.g. help(calc_shape)\n", - " (2) In the Spyder IDE by writing the name of the function and clicking Ctrl + I\n", - " (3) Visiting the script documentation at https://marcoalopez.github.io/GrainSizeTools/\n", - " (4) Get a list of the methods available: print(functions_list)\n", - "\n" - ] - } - ], - "source": [ - "# Set the inline mode for plots and run the script\n", - "%matplotlib inline\n", - "%run .../grain_size_tools/GrainSizeTools_script.py" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - " Area Circ. Feret FeretX FeretY FeretAngle MinFeret AR \\\n", - "0 1 157.25 0.680 18.062 1535.0 0.5 131.634 13.500 1.101 \n", - "1 2 2059.75 0.771 62.097 753.5 16.5 165.069 46.697 1.314 \n", - "2 3 1961.50 0.842 57.871 727.0 65.0 71.878 46.923 1.139 \n", - "3 4 5428.50 0.709 114.657 1494.5 83.5 19.620 63.449 1.896 \n", - "4 5 374.00 0.699 29.262 2328.0 34.0 33.147 16.000 1.515 \n", - "\n", - " Round Solidity \n", - "0 0.908 0.937 \n", - "1 0.761 0.972 \n", - "2 0.878 0.972 \n", - "3 0.528 0.947 \n", - "4 0.660 0.970 \n", - " Area Circ. Feret FeretX FeretY FeretAngle MinFeret \\\n", - "2656 2657 452.50 0.789 28.504 1368.0 1565.5 127.875 22.500 \n", - "2657 2658 1081.25 0.756 47.909 1349.5 1569.5 108.246 31.363 \n", - "2658 2659 513.50 0.720 32.962 1373.0 1586.0 112.286 20.496 \n", - "2659 2660 277.75 0.627 29.436 1316.0 1601.5 159.102 17.002 \n", - "2660 2661 725.00 0.748 39.437 1335.5 1615.5 129.341 28.025 \n", - "\n", - " AR Round Solidity \n", - "2656 1.235 0.810 0.960 \n", - "2657 1.446 0.692 0.960 \n", - "2658 1.493 0.670 0.953 \n", - "2659 1.727 0.579 0.920 \n", - "2660 1.351 0.740 0.960 \n", - " \n", - "column extracted:\n", - "Area = [ 157.25 2059.75 1961.5 ... 513.5 277.75 725. ]\n", - "n = 2661\n", - " \n" - ] - } - ], - "source": [ - "areas = extract_column(file_path='.../data_set.txt')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "diameters = area2diameter(areas, 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "DESCRIPTIVE STATISTICS\n", - " \n", - "Arithmetic mean grain size = 35.29 microns\n", - "Standard deviation = 18.32 (1-sigma)\n", - "RMS mean = 39.76 microns\n", - "Geometric mean = 30.69 microns\n", - " \n", - "Median grain size = 32.03 microns\n", - "Interquartile range (IQR) = 23.98\n", - " \n", - "Peak grain size (based on KDE) = 24.78 microns\n", - "KDE bandwidth = 4.01 (silverman rule)\n", - " \n", - "HISTOGRAM FEATURES\n", - "The modal interval is 17.33 - 20.74\n", - "The number of classes are 45\n", - "The bin size is 3.41 according to the auto rule\n", - " \n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "calc_grain_size(diameters, plot='lin')" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bin size = 10.47\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Saltykov(diameters, numbins=15)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "OPTIMAL VALUES\n", - "Number of clasess: 11\n", - "MSD (shape) = 1.61 ± 0.05\n", - "Geometric mean (location) = 36.2 ± 1.11\n", - " \n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsnXl4lNXZ/z+zZIfsAcJOAiHsq4RFFkUQqhXXY4uo2ApU61JbbcENl1bbH+p7vZVWrb6tWjeOopW+r0gVFWRfBEIgAULCZvZ9m8xMMvP7YzKPWSaZJysTcj7XlYvwzD3nuSfbd8459/neBqfTiUKhUCgUvobxYiegUCgUCoUnlEApFAqFwidRAqVQKBQKn0QJlEKhUCh8EiVQCoVCofBJlEApFAqFwidRAqVQKBQKn0QJlEKhUCh8EiVQCoVCofBJzBc7gYuMstFQKBSKi4PBW0BPFyiysrLa/Nzo6GgKCgo6MJuOx9dz9PX8QOXYEfh6fuD7Ofp6fqA/x/79++saTy3xKRQKhcInUQKlUCgUCp9ECZRCoVAofJIevwelUCg6jurqamprazEYGu5/5+bmYrVaL1JW+vD1HH09P/ghR3cbp8DAQEwmU5vHUwKlUCg6BLvdDkBISEiTx8xmc7v+UHUFvp6jr+cHDXN0Op1UVlYSFBTU5rzVEp9CoegQbDYbAQEBFzsNhY9gMBgICQmhurq6zWMogVIoFB1G46U9Rc+mvT8PSqAUCkWHoMRJ4Yn2/FyoPShFi9hsNtLT0ykuLsbPz48hQ4bQp08f9cdIoVB0OkqgFM1y7tw5Dh8+jNPpxM/PD6fTyYULF4iIiGD69OkEBQVd7BQVimYZMGAAJ0+e9Fi00Vo2bNjA1KlTiY+P9/h4UVERK1euJCcnh8svv5ywsDD69evHXXfdxa5du7Db7cydO7fdefQ0lEApPHL69GmSk5MbbHobDAYCAwOprKzkyy+/ZN68efTu3fsiZqlQdA0ffvghkZGRzQrUxo0biY2N5aOPPmry2O7du6msrFQC1QYM7nr1HopTefE1JS8vj507d7ZYkeV0OnE6ncyfP79dM6lL9WvY1fhCjlVVVQQHB2v/nzlzZqfeb9euXS0+PmDAAO688072799PRUUFq1evZsmSJQD8+9//5pVXXqGqqorIyEjWrVvHyJEj2bVrF0888QQVFRUYjUZ+9atf4XA4WL16NREREQQHB7NmzRoWL16s3Sc9PZ3rr78ep9NJVFQUzz77LNu2bSMkJIQlS5Y0eGzx4sWsWbOmTa/XbDZTU1PTpud2FZ5ybPxzAZoXnzKLVbQOu93O/v378ff3bzHOYDDgdDrZsWMH8+fPx2hU9TYK32PRokU899xzZGZmcu211zJv3jwuXLjAO++8w8aNGwkKCuLTTz/liSeeQErJk08+ySOPPMJVV11FaWkpGRkZTJo0iQ0bNrBq1SoWLFjQ5B7Dhw/nrrvuorKykieffBKAbdu2NfuYQj9KoBQNOHLkCLW1tZjN3n80jEYjlZWVHDlyhEmTJnVBdoruRP0ZzsV69z9lyhQAhg0bxpAhQzhx4gR79uwhNTWVq6++GgCHw4Gfnx8AEyZM4IUXXiAtLY2pU6cyffr0Ls9Z8QNKoBQa5eXlnD9/vlWHLf39/Tlz5gxDhgwhMjKyE7NTKNqH+yCxw+HgpptuYu3atU1i/vSnP3HgwAH27t3Lk08+yezZs3niiSfadV9V8dp21LqMQuPw4cPaO8nW4O/vz4EDB3A4HJ2QlULRdiwWCwD79++nvLycxMRE5s2bx8cff0x6eroWs337dgA+/fRTxo8fzy9/+UtWrFhBWloaABEREVy4cAGA1u7bh4eHc/78+TY9t6ejBEoBuGZPBQUFbdpLMhgMVFVVab/wCoWv8Mtf/pK5c+fy+OOP8+qrrxIQEMDEiRN55plnuOeee5g9ezbz5s3jwIEDAOzcuVO79u677/L4448DsGLFCl5//XVmzZrF559/3qoclixZQlZWFklJSfzxj3/s8Nd4KaOq+FQVHwB79uxps0C5cTgcLFq0SNf+VWvzu5ioHPXhqVrLTXetQPMlfD0/6PgqPjWDUmC328nLy2siTk6nk5ycHFJTU8nIyMBms7U4Tm1tLampqZ2ZqkKh6EGoIgkF6enpTdbGMzMz2bJlS4N35WazmcmTJzNnzhwCAwObjOPn58eZM2dITExs016WQqFQ1EfNoHo4TqeT8+fPNxCUvXv38u6771JQUECvXr1ISEigf//+1NTUsG/fPt544w3y8vI8judwONQsSqFQdAhqBtXDKSkpoaKiQpsRHTp0iC+++AKAOXPmMGvWLK3ZWE5ODv/7v/9LTk4O//znP1m6dCmxsbENxvPz8+PcuXOMHj26VXtRCoVC0Rg1g+rhnDp1SnONyMnJ0SqUFi9ezJw5cxp0wuzXrx/Lly9nxIgRWCwWPvjgA0pLS5uMWVNTw6lTp7rmBSgUikuWLnuLK4RIBP4ORAP5wM+klCdaEyeEeBu4HLABecAvpJTH6x57E1gElNQb7iYp5bHOek3dHafTqVXuORwONm3aRG1tLZMnT9ZO4DfGbDZz8803895773H27Fk+/PBDli9f3mC25D68O3LkSGWBpFAo2kxX/vX4GHhWSpkAPAe83Ya4fwEJUspE4E3gb42e+3spZWK9DyVOLVBYWKi1Yz506BB5eXmEhYV59Burj8lk4qabbiI8PJycnBy++eabJjHV1dXa4USFoiWsO/ZRev/jlPz0Xkrvfxzrjn2dcp/z588zduzYFmN27dql+eh1FkIIDh065DVuw4YNnD59ulNz8XW6RKCEEEOASCnlZgAp5f8BQ4QQsa2Jk1J+LKV0F9kfBBpugChaRUZGBv7+/thsNk1kFixYoKsCLzg4mBtuuAGDwcCePXs4e/Zsg8f9/f3VwV2FV6w79mF5/T2cBUUAOAuKsLz+XqeJlDd2797d6QIlpdTlXfnhhx+SkZHRqbn4Ol21xDcAyG10LQ/oD2S3IQ5gFfBZo2uPCyEeBLKAZ6SUWxsnIoRYCawE1w9KdHR0K15GQ8xmc7ue3xU0l6PT6cRisdCrVy927NiBxWJh8ODBTJo0Sbd32IgRI5g3bx5ff/01mzdv5oEHHmiw1FddXY3JZCIiIqLV+fkSKkd95ObmtlgY4+mxsg2boPH5OpsN64ZNhMxrf7uO3bt38/jjj2O1WgkJCcFgMGC1Wlm0aBE1NTU4nU7GjBnDyy+/TGZmJm+++SZOp5OtW7eyePFiHnroIY+xwcHBrFu3TjPEzc7OJi4ujr/+9a+Eh4dTWFjI7373O1JTUzGZTNx3330IIQBYuHAha9euZdasWdxwww0MGDCAU6dOkZ+fz8KFC/njH/+IlJLDhw/z6KOP8vvf/57HHnuM4cOH85vf/Ia8vDycTifLly/n3nvvbffXqKNp/H0OCAho889mV5ZZ1Xq45qmng9c4IcQ9wExgTr3L90gpLXWPXwl8LIQYKqWsvyeFlPJv/LA06GzP6XtfOL3vjeZyLCkpobCwED8/P7799lsApk+frnmX6WX69OkkJydTUFDAtm3bmDFjhvaYw+Fgx44dDa7pzc+XUDnqw2q1NiiqqU9zLgiOuplTk+uFRe12TSgrK2PVqlW8/fbbjB07llOnTnHDDTdgNpv56KOPiIqKwul0cuedd/LRRx9xxx13sHz58gatMWpraz3GLl26FIfDgb+/P6+++iq9e/fmoYceYv369axevZrHHnuM+Ph4Xn31VQoLC7n22mtJSEhg7NixOJ1OamtrNdGLiopi3bp11NTUMHPmTJYuXcqNN97Ie++916DFx8qVK1myZAnLly/HYrGQnJzsc84Snr7PVqu1yc9mnZOEV7pqDyqLpstxfequtypOCPEIcBdwlZSyzH3dLU51n38F5ABx7c78EuXMmTP4+fmRmppKeXk5MTExjBgxotXjmEwmFi5cCMC3335LeXm59pjRaCQ/Px+73d5heSsuLQzRnh3wDVHtd8Y/ePAgw4cP1/ad6h8u//DDD7n55puZN28eBw8eJCcnp9lxWoodOXKk1lX6mmuu0faWvv76a5YtWwZAVFQUCxYsaHbpcPr06fj5+REUFMTQoUNpzn5t4sSJvPHGG7z00kvs3bu32UKmS4kuESgp5RmgWAixGEAI8WOgUEp5VggRW2+PqaU4kxDiL8B8YL6UsoEkCyGuFUKY6j6fBYQCaV3x+rojBQUFmEwmDh8+DMDUqVPb3BYgPj6ehIQEbDabNhtz43A4evw6uqJ5Am+9Dho3x/T3d11vJ9XV1R73U9evX8/WrVt56aWX2LZtG7feeqvmpNL4d6Cl2MbY7fZmW9W4G3x6w2QyNRv3wAMP8Nprr9G7d29efvlln1ze62i6sorvJuAJIcRJYA1wc9315+s+vMUNAu4F4oH9Qoi0uo9pdY8vBzKFEGnAC7hKzKs68wV1V2w2GxUVFRQVFXHmzBnMZjNjxoxp15hXXnklBoOBw4cPU1xcrF339/fn3Llz7U1ZcYkScPk0glYsdc2kDK4ZVdCKpQRcPs37k70wfvx4jhw5Qm6ua1vb/WasuLiYCRMmMHjwYCoqKjh58qT2nMatMVqKhR/aedhsNt5//32uuuoqAObOncv7778PuKplt2zZwpw5c2gNjVt8fPbZZwwdOpQVK1bwyCOPaK1ALmW6bA9KSpmKa9+o8fXlOuPO0IL7rZTy5uYeUzQkKysLp9PJkSNHABg1apRHbz2bzYbRaCQgIAC73Y7dbsff39/jTCs6Oppx48aRnJzM9u3bWbJkifZYeXk5xcXFLRZLKHouAZdP6xBBasyAAQNYvXo1S5YsoVevXowbNw6Au+++m5UrVzJr1iz69OnTYFN/yZIlbNy4kaSkJK6//voWYwG2b9/OwoULqaioYOHChdx2220APPvss6xevZrZs2djMpl46KGHGD9+fKvyX7FiBb/61a944403ePzxx0lLS2Pt2rX4+/sTEhLSI1p3qHYbPbDdxs6dOykuLuaVV16huLiYZcuWMXToUO1xp9OJ3W5n+PDhJCYmYjabcTgcZGVlcfToUWw2m8elE/eYDoeDX/ziF1rljsPhIDo62mP77O76NfQ1fCHHntZu48UXX2xQUNHZdNevoWq3odCN0+mktLSUvLw8iouLCQkJYfDgwQ1i3NVEY8eO1d4xGo1GBg4cyMKFC4mJifFY+BAREcHEiRMBtPJb93Pz8/OprfVUoKlQKBSeUQLVw6isrKS6ulpzHG9sR2S1WpkyZQp9+vTx+HyTycSMGTPo37+/x/5QM2bMwGAwkJKS0sCnz263q70oxSXFb37zmy6bPfVUlED1ML7//nuMRqO2wZqYmKg9VlNTw4ABAxg4cGCLYxgMBqZOnUp0dHST6XxERASjRo3C4XCwb98PbgABAQGcOXOm416IQqG45FEC1cPIy8ujrKyMwsJCgoKCGDJkiPaYwWDQZcHijp0xYwb+/v5NymJnznTVuHz33XdalZPBYKCkpISqKlVYqVAo9KEEqgfhdDopLy/XDCjj4uK0k/9Wq5WEhIRWdcI1mUzMnDmzyX5Uv379GDZsGHa7nYMHDzaI7+nmlwqFQj9KoHoQ7v0n98HZ+Ph47TF/f3+GDx/e6jFDQ0MZOXJkk/0ot73RwYMHteIIs9lMdna2rgOLCoVCoVqe9iDc4uB2Ho+LczlB2e32BrOp1pKYmMj333+P1WrVzkhdhj+LBo0l0mCi8qMvyL5sLAVxA6moqKCkpESdieohfPfdd5SWlmo9xzqKsLAwJk+e3GHjKXwTNYPqQeTl5ZGVlUVNTQ19+/alV69e2mMjR45s87juogn3LCo64wLD9xwl2mjGaDDQ21ZD/J6jRGdcUG04ehilpaVYLJYO//DUybkxL774osdK0/a+nr/+9a8dOmZzPP/88/zjH//oknv5KkqgehAVFRVkZmYCPyzvOZ1OIiMjtbbvbSU8PJyBAwdSW1vL4MMnMDU682Squ+4+E9WR76YVCk+89NJLHW5UXFZW1mUCtWbNGu66664uuZevopb4eghWq5WqqipNoIYNG6Zd97b39Mwzz2CxWLyKmMPh4Pz581xeHQQe7JACKqv45JNPqK2tZdu2bQQGBmIwGLROvvXHDwsL49e//nVrX6ZCAcBjjz0GwKJFizAYDGzYsIE//elPWK1WcnJyyM/P55///Cc/+clPeOutt7TjFklJSdr//+u//osPP/wQp9NJnz59ePXVV3nssccoKyvTfPW2b9/e5N5JSUlcffXV7N27F5PJxGeffca///1vXnnlFaqqqoiMjGTdunXEx8djs9l45pln+PrrrwkKCqKyspKVK1dy11138cwzzxASEsJvfvMbLBYLTz31FLt378ZgMCCE4Je//CUAN998M/379yc9PZ38/HwWLFjAc88910Vf6c5FCVQPoaCgAIvFQm5uLiaTiUGDBgGu80l9+/Zt8bkWi4Xnn3++xRiAzMxMXnvtNapyLYRUN33nWh0cxA03XIXT6SQiIoLY2Fg2bdrEnXfeqQmmm7Vr17bi1SkUDfnDH/7Am2++yeeff05ISIh23eFw8O677zZryeQmNTWVd955h927d+Pv709KSgp+fn784Q9/YPHixR6FqT79+/dn8+bNGI1Gjh07xjvvvMPGjRsJCgri008/5YknnuC9997T7Ma2b9+O0Whk1apVHsf77//+b+x2O9988w3V1dXccsstDB8+nKuvvhqAmJgYXnzxRc0FZtmyZYwePbqVXzXfQy3x9RCysrLIy8sDIDY2FrPZrDVLq+8k4Qk9y3+ZmZlIKbn77ru5MGUMtY0KLqodDr4JdZWwGwwGTpw4wYYNGzyKk0LRWUyfPt2rOIHrqATAww8/zDvvvENERESrusLOmzdP+73aunUrqampXH311cyZM4d169aRne1qEP7FF19w++23YzKZMBgMzeb2zTffsGzZMoxGI8HBwVx//fV8/fXXDV6Xnp5S3Q0lUD2E8vJyzbrf7b1ntVq1Sr724BYnIQTDhw8n8uorOHHZKKpDgnAC5f5m/lx4jg8y0nA6neTn57N3717mzp3bptJ2haKjaK5PU0REhOZUfvr0aRYtWsTRo0fb1DPN4XBw0003sX37drZv386OHTs0camurm62h1Rb8oaW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BQsamNPu2bOHhQsXMnfuXH7xi1+0+L1oD22eQUkp/9WRiSj0YbPZdP8yFxQUcPLkScC1/BATE4PBYCAwMLDZ53SGOIFLgOLj4/nqq684dOgQSUlJfPHFFxw6dIjJkyfj5+dHVlYWo0aN8npPxaVDW3/evJ2TGzVqFOPHj2fWrFnMmDGD0aNHM2fOHMaOHQvA7NmzNeuinJwcZs2axU9/+lPN6gjg/vvv55133uEf//iH1i/qpz/9KW+++SZPP/00paWlfPbZZ2zbtq3BvV944QVOnDjBG2+8gb+/P3/84x+x2WweW2UEBQWxa9cuZs2axZEjR3A6nVx22WUeX5PNZmPdunXExsZy++23s3HjRt555x0CAgKYN28e3333HVOmTOH+++/n97//PWPHjqWkpIQFCxYwe/bsZluFRERE8MknnzRp1XH//fezdOlSbr31Vs6cOcMNN9zA5s2bCQ4O5t577+Xtt99m7NixnDp1ihtuuMHr964tKLPYbkZpaanuX+aUlBRtXXjIkCEAHn2+3HSWOLlxOp0cOnSIadOmMWXKFIKCgrQzUeBagqiurvY6juLSoD0/b95mZiaTiXfffZdXX32VsWPHkpqayi233ML69esB1yz+scceY8GCBQghsNvtuqyi7rjjDjZu3EhVVRXvv/8+P/rRjxpYdf3lL39hz549vP7661qO33zzDbfddpvHVhm33XabNsN5//33uf3225u9d3x8PLGxsdrn48ePp1evXvj5+TFs2DBycnLIycnhyJEj3HvvvcyZM4frrruOmpqaZk1owXOrjoqKCpKTk7nlllsAGDp0KJMmTWLv3r0cPHiQ4cOHa2Lf0hve9tLSQd1TgFejPimlLl+OOleKvwPRuNwofialPNGaOCHE28DlgA3IA37hdrDQO353JywsTPcv89atW7Vfkr59+1JbW+vR984d39nnoj766COuueYaamtrMZlMjBkzhgMHDpCcnEy/fv0wGo1kZGQwevRobDab1zEV3ZfO/nkD16z9sssu02Yk27dv5+mnn+a+++5DCMHtt9/OU089RXBwMGPHjvVYxNG4vcaAAQOYOXMmGzZs4O23326yNJiZmUlGRgYnT57U/oB7GtN9r5tuuokXX3yRnJwcvvjiC60TsDcamzwbjUacTicOh4Pg4GCPDRXd7XZaon6rDoPB0OD1uz+vrq5u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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "calc_shape(diameters)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "differential stress = 43.29 MPa\n", - "Ensure that you entered the apparent grain size as the root mean square (RMS)!\n", - " \n" - ] - } - ], - "source": [ - "calc_diffstress(32, phase='quartz', piezometer='Stipp_Tullis')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/grain_size_tools/example_notebooks/new_describing_grain_size_populations.ipynb b/DOCS/apparent_grain_sizes.ipynb similarity index 98% rename from grain_size_tools/example_notebooks/new_describing_grain_size_populations.ipynb rename to DOCS/apparent_grain_sizes.ipynb index 935898d..cea427e 100644 --- a/grain_size_tools/example_notebooks/new_describing_grain_size_populations.ipynb +++ b/DOCS/apparent_grain_sizes.ipynb @@ -30,7 +30,7 @@ "A free open-source cross-platform script to visualize and characterize grain size\n", "population and estimate differential stress via paleopizometers.\n", "\n", - "Version: 2023.11.xx\n", + "Version: v3.0.2 (2020-12-30)\n", "Documentation: https://marcoalopez.github.io/GrainSizeTools/\n", "\n", "Type get.functions_list() to get a list of the main methods\n", @@ -517,7 +517,7 @@ "============================================================================\n", "Shapiro-Wilk test warnings:\n", "Data is not normally distributed!\n", - "Normality test: 0.89, 0.00 (test statistic, p-value)\n", + "Normality test: 0.92, 0.00 (test statistic, p-value)\n", "============================================================================\n" ] } @@ -583,7 +583,7 @@ "Data is not normally distributed!\n", "Normality test: 0.95, 0.00 (test statistic, p-value)\n", "Data is not lognormally distributed!\n", - "Lognormality test: 0.99, 0.02 (test statistic, p-value)\n", + "Lognormality test: 0.98, 0.01 (test statistic, p-value)\n", "============================================================================\n" ] } @@ -685,75 +685,77 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[1;31mSignature:\u001b[0m\n", - "\u001b[0mplot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdistribution\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'hist'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'kde'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mavg\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'amean'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'gmean'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'median'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'mode'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mbinsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'auto'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mbandwidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'silverman'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfig_kw\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mDocstring:\u001b[0m\n", - "Return a plot with the ditribution of (apparent or actual) grain sizes\n", - "in a dataset.\n", - "\n", - "Parameters\n", - "----------\n", - "data : array_like\n", - " the size of the grains\n", - "\n", - "plot : string, tuple or list; optional\n", - " the type of plot, either histogram ('hist'), kernel density estimate\n", - " ('kde') or both ('hist', 'kde'). Default is both.\n", - "\n", - "avg : string, tuple or list; optional\n", - " the central tendency measures o show, either the arithmetic ('amean')\n", - " or geometric ('gmean') means, the median ('median'), and/or the\n", - " KDE-based mode ('mode'). Default all averages.\n", - "\n", - "binsize : string or positive scalar; optional\n", - " If 'auto', it defines the plug-in method to calculate the bin size.\n", - " When integer or float, it directly specifies the bin size.\n", - " Default: the 'auto' method.\n", - "\n", - " | Available plug-in methods:\n", - " | 'auto' (fd if sample_size > 1000 or Sturges otherwise)\n", - " | 'doane' (Doane's rule)\n", - " | 'fd' (Freedman-Diaconis rule)\n", - " | 'rice' (Rice's rule)\n", - " | 'scott' (Scott rule)\n", - " | 'sqrt' (square-root rule)\n", - " | 'sturges' (Sturge's rule)\n", - "\n", - "bandwidth : string {'silverman' or 'scott'} or positive scalar; optional\n", - " the method to estimate the bandwidth or a scalar directly defining the\n", - " bandwidth. It uses the Silverman plug-in method by default.\n", - "\n", - "**fig_kw :\n", - " additional keyword arguments to control the size (figsize) and\n", - " resolution (dpi) of the plot. Default figsize is (6.4, 4.8).\n", - " Default resolution is 100 dpi.\n", - "\n", - "Call functions\n", - "--------------\n", - "- gaussian_kde (from Scipy stats)\n", - "\n", - "Examples\n", - "--------\n", - ">>> distribution(data['diameters'])\n", - ">>> distribution(data['diameters'], figsize=(6.4, 4.8))\n", - "\n", - "Returns\n", - "-------\n", - "A plot showing the distribution of (apparent) grain sizes and\n", - "the location of the averages defined.\n", - "\u001b[1;31mFile:\u001b[0m c:\\users\\marco\\documents\\github\\grainsizetools\\grain_size_tools\\plot.py\n", - "\u001b[1;31mType:\u001b[0m function" - ] + "data": { + "text/plain": [ + "\u001b[1;31mSignature:\u001b[0m\n", + "\u001b[0mplot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdistribution\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mplot\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'hist'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'kde'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mavg\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'amean'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'gmean'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'median'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'mode'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mbinsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'auto'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mbandwidth\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'silverman'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfig_kw\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mDocstring:\u001b[0m\n", + "Return a plot with the ditribution of (apparent or actual) grain sizes\n", + "in a dataset.\n", + "\n", + "Parameters\n", + "----------\n", + "data : array_like\n", + " the size of the grains\n", + "\n", + "plot : string, tuple or list; optional\n", + " the type of plot, either histogram ('hist'), kernel density estimate\n", + " ('kde') or both ('hist', 'kde'). Default is both.\n", + "\n", + "avg : string, tuple or list; optional\n", + " the central tendency measures o show, either the arithmetic ('amean')\n", + " or geometric ('gmean') means, the median ('median'), and/or the\n", + " KDE-based mode ('mode'). Default all averages.\n", + "\n", + "binsize : string or positive scalar; optional\n", + " If 'auto', it defines the plug-in method to calculate the bin size.\n", + " When integer or float, it directly specifies the bin size.\n", + " Default: the 'auto' method.\n", + "\n", + " | Available plug-in methods:\n", + " | 'auto' (fd if sample_size > 1000 or Sturges otherwise)\n", + " | 'doane' (Doane's rule)\n", + " | 'fd' (Freedman-Diaconis rule)\n", + " | 'rice' (Rice's rule)\n", + " | 'scott' (Scott rule)\n", + " | 'sqrt' (square-root rule)\n", + " | 'sturges' (Sturge's rule)\n", + "\n", + "bandwidth : string {'silverman' or 'scott'} or positive scalar; optional\n", + " the method to estimate the bandwidth or a scalar directly defining the\n", + " bandwidth. It uses the Silverman plug-in method by default.\n", + "\n", + "**fig_kw :\n", + " additional keyword arguments to control the size (figsize) and\n", + " resolution (dpi) of the plot. Default figsize is (6.4, 4.8).\n", + " Default resolution is 100 dpi.\n", + "\n", + "Call functions\n", + "--------------\n", + "- gaussian_kde (from Scipy stats)\n", + "\n", + "Examples\n", + "--------\n", + ">>> distribution(data['diameters'])\n", + ">>> distribution(data['diameters'], figsize=(6.4, 4.8))\n", + "\n", + "Returns\n", + "-------\n", + "A plot showing the distribution of (apparent) grain sizes and\n", + "the location of the averages defined.\n", + "\u001b[1;31mFile:\u001b[0m c:\\users\\marco\\documents\\github\\grainsizetools\\grain_size_tools\\plot.py\n", + "\u001b[1;31mType:\u001b[0m function" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -780,7 +782,7 @@ "text": [ "=======================================\n", "Shapiro-Wilk test (lognormal):\n", - "0.99, 0.01 (test statistic, p-value)\n", + "0.98, 0.00 (test statistic, p-value)\n", "It doesnt look like a lognormal distribution (p-value < 0.05)\n", "(╯°□°)╯︵ ┻━┻\n", "=======================================\n" @@ -952,13 +954,15 @@ { "cell_type": "code", "execution_count": 14, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Notebook tested in 2023-11-13 using:\n", + "Notebook tested in 2023-11-14 using:\n", "Python 3.10.13 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:24:38) [MSC v.1916 64 bit (AMD64)]\n", "Numpy 1.26.0\n", "Matplotlib 3.8.0\n" @@ -980,7 +984,7 @@ ], "metadata": { "kernelspec": { - "display_name": "main", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -998,5 +1002,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/DOCS/paleopiezometry_module.ipynb b/DOCS/paleopiezometry_module.ipynb new file mode 100644 index 0000000..7019c1c --- /dev/null +++ b/DOCS/paleopiezometry_module.ipynb @@ -0,0 +1,43 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "10bf9962-b18d-47a5-80d4-b66348dd8956", + "metadata": {}, + "source": [ + "# The paleopiezometry module\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93287c25-1187-44c0-985d-3f293cf99762", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/DOCS/stereology_module.ipynb b/DOCS/stereology_module.ipynb new file mode 100644 index 0000000..91cfadb --- /dev/null +++ b/DOCS/stereology_module.ipynb @@ -0,0 +1,45 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7f085718-4204-45b0-a268-6d4df51d81ef", + "metadata": { + "tags": [] + }, + "source": [ + "# The Stereology module\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "315f5820-a286-4277-a4a5-e1a24f6940d6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/templates/grain_size_analysis.ipynb b/templates/grain_size_analysis.ipynb new file mode 100644 index 0000000..86fbdb3 --- /dev/null +++ b/templates/grain_size_analysis.ipynb @@ -0,0 +1,43 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f45741ac-0aa1-44c0-917f-b0d3ee2990fd", + "metadata": {}, + "source": [ + "# Grain Size Analysis Template\n", + "\n", + "**Goal**: TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6d4b773-f3cd-4cb5-8b63-027062c090c6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/templates/paleopizometry_analisys.ipynb b/templates/paleopizometry_analisys.ipynb new file mode 100644 index 0000000..fe525f4 --- /dev/null +++ b/templates/paleopizometry_analisys.ipynb @@ -0,0 +1,83 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4ff7a692-9472-4360-a326-897003bec04f", + "metadata": {}, + "source": [ + "# Paleopiezometry analysis Template\n", + "\n", + "**Goal**: TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "013a329a-5942-42e9-9131-ea82de57766d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "e60e3a8c-0e26-4d0e-a3c6-0feb72ff7ffc", + "metadata": {}, + "source": [ + "## Quartz\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "markdown", + "id": "35d51867-30b3-4ad4-a2b6-b31972344922", + "metadata": { + "tags": [] + }, + "source": [ + "## Olivine\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "markdown", + "id": "30815d82-c0bf-4524-a351-631d504bcc76", + "metadata": {}, + "source": [ + "## Calcite\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db83063c-de8d-46ad-a907-1ea0af859197", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/templates/stereology_analysis.ipynb b/templates/stereology_analysis.ipynb new file mode 100644 index 0000000..0f262e2 --- /dev/null +++ b/templates/stereology_analysis.ipynb @@ -0,0 +1,79 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "892ec73c-434d-4fc4-bf86-559861a4954f", + "metadata": {}, + "source": [ + "# Stereology Analysis Template\n", + "\n", + "**Goal**: TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c472f09e-1aa7-4578-b5e9-3c9a242febfe", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "c847e718-36c1-46f0-bf6b-7881dcb6b86e", + "metadata": {}, + "source": [ + "# Using the Saltykov method\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a20f652-d5db-42dc-b3a6-6fcc40e7899d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "458148cc-b7c4-431b-8006-27a11d0a544a", + "metadata": {}, + "source": [ + "## Using the two-step method\n", + "\n", + "TODO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b954b3f-e440-4c2a-a61a-f66828f75ae4", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}