{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/usnistgov/AFL-agent/blob/main/docs/source/how-to/building_xarray_datasets.ipynb)\n", "\n", "# Build an xarray.Dataset from Scratch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this `How-To` we'll go through the process of building up an xarray.Dataset that could be used as an input to `Pipeline.calculate`. We'll generate random compositions and fake data to go along with these compositions. \n", "\n", "\n", "The dataset generated in this notebook is the basis for the `Building Pipelines` tutorial." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Google Colab Setup\n", "\n", "Only uncomment and run the next cell if you are running this notebook in Google Colab or if don't already have the AFL-agent package installed." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# !pip install git+https://github.com/usnistgov/AFL-agent.git" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## First Steps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To begin, let's import the necessary libraries for this document and then make an empty :py:class:`xarray.Dataset`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 0B\n",
       "Dimensions:  ()\n",
       "Data variables:\n",
       "    *empty*
" ], "text/plain": [ " Size: 0B\n", "Dimensions: ()\n", "Data variables:\n", " *empty*" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import numpy as np\n", "import xarray as xr\n", "import matplotlib.pyplot as plt\n", "\n", "ds = xr.Dataset()\n", "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compositions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we generate random 'compositions' that we'll do simulated/virtual measurements at. We'll generate the compositions for a 2-dimensional space with components \"A\" and \"B\" as placeholders. You could imagine that A and B are the concentrations of two different preservatives in a liquid mixtures. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.93506959, 4.33877746],\n", " [ 3.99993228, 15.11981127],\n", " [ 5.14403166, 1.65850983],\n", " [ 4.57883235, 12.34183192],\n", " [ 8.05567528, 10.47358865],\n", " [ 1.04161007, 22.83361697],\n", " [ 5.85757901, 18.81270953],\n", " [ 4.29558185, 16.91442648],\n", " [ 3.14950211, 2.08947439],\n", " [ 7.65251749, 13.05015789],\n", " [ 5.58833051, 7.55301393],\n", " [ 8.75864958, 13.90004698],\n", " [ 9.03579843, 1.04110731],\n", " [ 6.94709288, 22.03909555],\n", " [ 6.30872735, 23.08178649],\n", " [ 8.38214203, 24.28281802],\n", " [ 6.09861924, 5.67560421],\n", " [ 0.12177663, 1.50263558],\n", " [ 5.4271795 , 24.05339109],\n", " [ 3.32773495, 12.91733508],\n", " [ 8.22656778, 18.12750637],\n", " [ 7.77255352, 1.61982803],\n", " [ 1.58024907, 8.89957219],\n", " [ 0.62964449, 13.64241493],\n", " [ 4.87628903, 11.61657773],\n", " [ 5.13234999, 15.35880089],\n", " [ 3.02453785, 10.78092744],\n", " [ 6.29667967, 9.70296135],\n", " [ 2.87889006, 21.23149213],\n", " [ 7.33476093, 23.21218938],\n", " [ 6.96178175, 14.54078124],\n", " [ 9.94068744, 13.1306839 ],\n", " [ 5.81347609, 18.31807371],\n", " [ 3.65653358, 1.86819243],\n", " [ 8.97030945, 15.30596251],\n", " [ 2.93130382, 20.47763125],\n", " [ 9.37753719, 17.91516725],\n", " [ 0.41716654, 1.43289172],\n", " [ 1.1435741 , 4.91629814],\n", " [ 1.08112256, 11.13119176],\n", " [ 5.25354877, 9.45231719],\n", " [ 7.20589227, 18.57879028],\n", " [ 7.89243271, 11.31509607],\n", " [ 6.94687163, 14.82218341],\n", " [ 7.23403931, 6.79257162],\n", " [ 8.68249381, 12.53839805],\n", " [ 1.06877839, 10.32097668],\n", " [ 7.89831494, 0.4644321 ],\n", " [ 1.55458517, 24.16727467],\n", " [ 0.45829217, 3.24497194],\n", " [ 8.9361479 , 15.47144486],\n", " [ 6.41770086, 10.88253153],\n", " [ 5.88298706, 18.25514364],\n", " [ 1.345648 , 11.08596411],\n", " [ 1.03642353, 21.48281264],\n", " [ 8.17349873, 17.80265345],\n", " [ 8.24719952, 23.52786849],\n", " [ 7.19131724, 9.11486603],\n", " [ 0.78123421, 3.94805308],\n", " [ 6.24072184, 17.0863877 ],\n", " [ 0.50409961, 16.27277289],\n", " [ 8.38188047, 1.72138619],\n", " [ 2.60295083, 4.67442285],\n", " [ 2.58444436, 16.57143555],\n", " [ 9.35239534, 16.00199993],\n", " [ 6.50574801, 17.33916381],\n", " [ 3.27476499, 7.83797279],\n", " [ 7.75461602, 23.60987228],\n", " [ 0.55448762, 24.08902153],\n", " [ 3.82063523, 20.43360895],\n", " [ 1.96279418, 8.66791611],\n", " [ 8.31501072, 0.0249756 ],\n", " [ 2.4606 , 5.38843633],\n", " [ 9.1328654 , 19.8844552 ],\n", " [ 4.08471932, 1.10690158],\n", " [ 8.48469695, 11.10944636],\n", " [ 5.99946032, 10.58338866],\n", " [ 7.99427379, 10.09969 ],\n", " [ 8.71171219, 7.02035713],\n", " [ 7.30678607, 24.33877297],\n", " [ 7.76378269, 21.99343589],\n", " [ 7.45991402, 8.11174006],\n", " [ 7.63854343, 13.54025074],\n", " [ 0.81733253, 9.43775453],\n", " [ 7.20059135, 5.85811728],\n", " [ 2.20804772, 6.7721729 ],\n", " [ 3.65472461, 4.43961665],\n", " [ 8.21345636, 10.74735116],\n", " [ 9.92147334, 15.55468087],\n", " [ 9.52663079, 6.77762994],\n", " [ 7.01379838, 22.20232276],\n", " [ 0.23914684, 3.4963898 ],\n", " [ 3.46456904, 12.84968187],\n", " [ 0.26618359, 8.12557401],\n", " [ 1.1156883 , 0.45431966],\n", " [ 6.91416382, 21.4816626 ],\n", " [ 0.59623227, 7.69198605],\n", " [ 2.02031934, 4.93580074],\n", " [ 5.21402634, 4.84272796],\n", " [ 7.87824238, 14.33035062]])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_measurements = 100\n", "A = np.random.uniform(0,10,size=num_measurements)\n", "B = np.random.uniform(0,25,size=num_measurements)\n", "compositions = np.array([A,B]).T\n", "compositions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's add this information to the :py:class:`xarray.Dataset`. \n", "\n", "Note how, for the `composition` variable, we need to not only specify the name of the variable in the dataset but also the names of the dimensions of the data ('sample' and 'components')." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 2kB\n",
       "Dimensions:      (sample: 100, component: 2)\n",
       "Coordinates:\n",
       "  * component    (component) <U1 8B 'A' 'B'\n",
       "Dimensions without coordinates: sample\n",
       "Data variables:\n",
       "    composition  (sample, component) float64 2kB 1.935 4.339 4.0 ... 7.878 14.33
" ], "text/plain": [ " Size: 2kB\n", "Dimensions: (sample: 100, component: 2)\n", "Coordinates:\n", " * component (component) \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 2kB\n",
       "Dimensions:              (sample: 100, component: 2)\n",
       "Coordinates:\n",
       "  * component            (component) <U1 8B 'A' 'B'\n",
       "Dimensions without coordinates: sample\n",
       "Data variables:\n",
       "    composition          (sample, component) float64 2kB 1.935 4.339 ... 14.33\n",
       "    ground_truth_labels  (sample) int64 800B 1 1 1 1 1 0 1 1 ... 1 0 1 1 0 1 1 1
" ], "text/plain": [ " Size: 2kB\n", "Dimensions: (sample: 100, component: 2)\n", "Coordinates:\n", " * component (component) (0.25*B-1)).astype(int)\n", "ds['ground_truth_labels'] = ('sample',labels)\n", "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot the data. We do this using xarray by first extracting the compositions data variable into a new standalone xarray.Dataset and then calling plot.scatter on it. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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9Xry5MnYZpttdO2YW265BfX19XoXExERUaZZuzodf3mkJo7/TR122GFYvnw5LrnkEp3gO3z4cLz22mvtEoCJiIgo97iism93sLIvERGR+3imsi8RERFROgxkiIiIyLUYyBAREZFrMZAhIiIi12IgQ0RERK7FQIaIiIhci4EMERERuRYDGSIiInItx1f27a7men+qsA4RERG5Q/N1+4/q9no+kKmtrdV/DhgwwO6hEBERUReu46rCb84eUaBOy168eDGKi4ubDgLrWlSoAqFFixbxmIMs4P2dXby/s4f3dXbx/nb3/a3CExXE9O/fH4Zh5O6MjPrHr7feehn5XuoXwydD9vD+zi7e39nD+zq7eH+79/5e20xMMyb7EhERkWsxkCEiIiLXYiDTAaFQCJdeeqn+k3oe7+/s4v2dPbyvs4v3d27c355P9iUiIiLv4owMERERuRYDGSIiInItBjJERETkWgxkiIiIyLUYyPyBO+64AxtssAHy8vIwcuRIvP/++3YPyZOmTp2KbbfdVldg7tOnDyZOnIhvv/3W7mHljGuvvVZXvj7zzDPtHopn/fbbb5g0aRIqKyuRn5+PLbbYAh9++KHdw/KkRCKBiy++GIMGDdL39eDBg3HllVf+4Zk91DFz587FvvvuqyvuqteNmTNnJvWr+/mSSy7BOuuso+//3XffHd9//z16CgOZtXjyySdx9tln6+1kH3/8MbbcckuMGzcOy5Yts3tonjNnzhyccsopmD9/PmbNmoVYLIY999wT9fX1dg/N8z744APcc889GDZsmN1D8azVq1dj9OjRCAQCePXVV/HVV1/hxhtvRHl5ud1D86TrrrsOd911F26//XZ8/fXX+vPrr78et912m91D84T6+np9PVRv9FNR9/Wtt96Ku+++G++99x4KCwv1tbOxsbFnBqS2X1Nq2223nTzllFNaPk8kErJ///5y6tSpto4rFyxbtky9dZJz5syxeyieVltbKzfeeGM5a9Ysucsuu8gzzjjD7iF50gUXXCB33HFHu4eRMyZMmCCPP/74pLYDDzxQHnXUUbaNyasAyBkzZrR8bpqm7Nevn7zhhhta2qqqqmQoFJLTp0/vkTFwRiaNaDSKjz76SE+JtT63SX0+b948W8eWC6qrq/WfFRUVdg/F09Qs2IQJE5Ie55R5L7zwArbZZhsccsgheul0q622wr333mv3sDxrhx12wOzZs/Hdd9/pzz/77DO88847GD9+vN1D87wFCxZgyZIlSa8p6rwklZrRU9dOzx8a2VUrVqzQ66x9+/ZNaleff/PNN7aNKxeoE8tVroaaih86dKjdw/GsJ554Qi+ZqqUl6lk//fSTXupQS9X/+Mc/9H1++umnIxgMYvLkyXYPz3P+/ve/65OYhwwZAp/Pp1/Lr776ahx11FF2D83zlixZov9Mde1s7ss0BjLkyFmCL7/8Ur+Dop6xaNEinHHGGTofSSWyU88H52pG5pprrtGfqxkZ9RhXOQQMZDLvqaeewmOPPYbHH38cm2++OT799FP95kglp/L+9h4uLaXRq1cvHckvXbo0qV193q9fP9vG5XWnnnoqXnrpJbz11ltYb7317B6OZ6llU5W0vvXWW8Pv9+ubSrhWCXrqY/UOljJH7d7YbLPNkto23XRTLFy40LYxedl5552nZ2UOP/xwvTvs6KOPxllnnaV3R1LPar4+ZvPayUAmDTXlO2LECL3O2vpdlfp8++23t3VsXqRyxlQQM2PGDLz55pt62yT1nN122w1ffPGFfqfafFMzBmrqXX2sgnjKHLVM2racgMrfWH/99W0bk5eFw2Gd09iaekyr13DqWeq1WwUsra+daplP7V7qqWsnl5bWQq1nq2lI9QK/3Xbb4ZZbbtHbzo477ji7h+bJ5SQ1Dfz888/rWjLNa6kqSUzVIaDMUvdx2/wjtUVS1ThhXlLmqdkAlYCqlpYOPfRQXY9q2rRp+kaZp2qcqJyYgQMH6qWlTz75BDfddBOOP/54u4fmCXV1dfjhhx+SEnzVGyC1OUPd52oZ76qrrsLGG2+sAxtV00ct66n6YD2iR/ZCechtt90mBw4cKIPBoN6OPX/+fLuH5EnqoZjq9sADD9g9tJzB7dc968UXX5RDhw7V21CHDBkip02bZveQPKumpkY/ltVrd15entxwww3lhRdeKCORiN1D84S33nor5ev15MmTW7ZgX3zxxbJv37768b7bbrvJb7/9tsfGI9T/eiZEIiIiIupZzJEhIiIi12IgQ0RERK7FQIaIiIhci4EMERERuRYDGSIiInItBjJERETkWgxkiIiIyLUYyBAREZFrMZAhIiIi12IgQ0SuNG/ePH0Q4IQJE+weChHZiEcUEJEr/fnPf0ZRURHuu+8+fbK0OpSOiHIPZ2SIyJWn7z755JP461//qmdkHnzwQbuHREQ2YSBDRK7z1FNPYciQIfjTn/6ESZMm4f777wcnl4lyEwMZInIdtZykAhhlr732QnV1NebMmWP3sIjIBsyRISJXUfkwQ4cOxW+//YY+ffrotlNPPVUHM4888ojdwyOiLPNn+wcSEXV3NiYejycl96r3Y6FQCLfffjtKS0ttHR8RZReXlojINVQA8/DDD+PGG2/Ep59+2nL77LPPdGAzffp0u4dIRFnGpSUico2ZM2fisMMOw7Jly9rNvFxwwQV488038cEHH9g2PiLKPgYyROQa++67L0zTxMsvv9yu7/3338fIkSP17MywYcNsGR8RZR8DGSIiInIt5sgQERGRazGQISIiItdiIENERESuxUCGiIiIXIuBDBEREbkWAxkiIiJyLQYyRERE5FoMZIiIiMi1GMgQERGRazGQISIiItdiIENERERwq/8HSqiJICZzCqwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ds.composition.to_dataset('component').plot.scatter(x='A',y='B',c=ds.ground_truth_labels)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulated Measurement Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's generate the 'measurement' data. We'll generate one measurement for each composition generated above. We'll generate two kinds of data that depend on the data label:\n", "\n", "1. A flat background signal with random Gaussian noise\n", "2. A power-law with a power of -4 that decays to a flat background\n", "\n", "Both kinds of data will have random Gaussian noise.\n", "\n", "Now we can define a method (Python's name for a function) that randomly generates one of two measurement signals. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "def measure(x,label):\n", " \"\"\"Generate one of two signals with noise\"\"\"\n", "\n", " if label==0:\n", " m = np.ones_like(x) #flat background\n", " else:\n", " m = 1e-6*np.power(x,-4) + 1.0 #power law\n", "\n", " # add noise\n", " m += np.random.normal(loc=m, scale=0.25*m, size=x.shape[0])\n", "\n", " return m\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's define a domain for the measurement (x), generate the data, and the create an `xarray.Dataset` with it." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 124kB\n",
       "Dimensions:              (sample: 100, component: 2, x: 150)\n",
       "Coordinates:\n",
       "  * component            (component) <U1 8B 'A' 'B'\n",
       "  * x                    (x) float64 1kB 0.001 0.001047 0.001097 ... 0.9547 1.0\n",
       "Dimensions without coordinates: sample\n",
       "Data variables:\n",
       "    composition          (sample, component) float64 2kB 1.935 4.339 ... 14.33\n",
       "    ground_truth_labels  (sample) int64 800B 1 1 1 1 1 0 1 1 ... 1 0 1 1 0 1 1 1\n",
       "    measurement          (sample, x) float64 120kB 2.047e+06 1.318e+06 ... 2.065
" ], "text/plain": [ " Size: 124kB\n", "Dimensions: (sample: 100, component: 2, x: 150)\n", "Coordinates:\n", " * component (component) " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for label, sub_ds in ds.groupby('ground_truth_labels'):\n", " plt.figure()\n", " sub_ds.measurement.plot.line(x='x',marker='.',ls='None',xscale='log',yscale='log',add_legend=False)\n", " plt.title(f'Group {label}')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Composition Grid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay, the final piece of data that you need to start is the composition grid. This grid defines the space that the agent will evaluate when choosing the next composition" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 164kB\n",
       "Dimensions:              (sample: 100, component: 2, x: 150, grid: 2500)\n",
       "Coordinates:\n",
       "  * component            (component) <U1 8B 'A' 'B'\n",
       "  * x                    (x) float64 1kB 0.001 0.001047 0.001097 ... 0.9547 1.0\n",
       "Dimensions without coordinates: sample, grid\n",
       "Data variables:\n",
       "    composition          (sample, component) float64 2kB 1.935 4.339 ... 14.33\n",
       "    ground_truth_labels  (sample) int64 800B 1 1 1 1 1 0 1 1 ... 1 0 1 1 0 1 1 1\n",
       "    measurement          (sample, x) float64 120kB 2.047e+06 1.318e+06 ... 2.065\n",
       "    composition_grid     (grid, component) float64 40kB 0.0 0.0 ... 10.0 25.0
" ], "text/plain": [ " Size: 164kB\n", "Dimensions: (sample: 100, component: 2, x: 150, grid: 2500)\n", "Coordinates:\n", " * component (component) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ds.composition_grid.to_dataset('component').plot.scatter(x='A',y='B',edgecolor='None')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving the Dataset to disk" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can save this dataset to disk for use in other notebooks or to memorialize the input data used in a calculation. We'll use the `netcdf` format for this:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "\n", "ds.to_netcdf('../data/example_dataset.nc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we demonstrated how to build an `xarray.Dataset` from scratch. \n", "\n", "We:\n", "\n", "1. Created an empty dataset\n", "2. Added composition data for samples\n", "3. Added ground truth labels for the samples\n", "4. Added simulated measurement data\n", "5. Added a composition grid for the agent to explore\n", "6. Saved the dataset to disk in netCDF format\n", "\n", "The resulting dataset contains all the necessary components for training and evaluating an active learning agent:\n", "- Sample compositions and their corresponding measurements\n", "- Ground truth labels for validation\n", "- A grid defining the composition space for exploration\n", "\n", "This dataset structure represents a typical format expected by many agent pipelines in `AFL.double_agent`. The exact variables and variable names will change with the pipeline, but the concept of having measurement data and composition information that shares dimensions is a foundational feature of analyzing formulations and materials problems where the composition is varying. " ] } ], "metadata": { "kernelspec": { "display_name": "venv", "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.11.10" } }, "nbformat": 4, "nbformat_minor": 2 }