{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example - Categorical Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import geopandas\n", "import pandas\n", "\n", "from geocube.api.core import make_geocube\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load in soil data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "ssurgo_data = geopandas.read_file(\"../../test/test_data/input/soil_data_group.geojson\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAD4CAYAAAA3vfm6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO29eXxkVZ33//7Wlsq+dzpLJ+md3qCBKDQNIsIACiLiAgjuDM+ICKMPj8LMPKMOOoPbiDw4jgwoIs8o/PBREZG1BZRuGtJ00+l9TXcnvWTf16r6/v6om+5KZ6uq1K2qVM779cort86959xzk6pPnfM93/P9iqpiMBgMduBIdAcMBkPqYgTGYDDYhhEYg8FgG0ZgDAaDbRiBMRgMtuFKdAfspKioSKurqxPdDYMhpdm0aVOLqhaPdy6lBaa6upra2tpEd8NgSGlE5NBE58wUyWAw2IYRGIPBYBtGYAwGg20YgTEYDLYRtsCIiFNENovIM9br20Vkn4ioiBRNUs8vIlusn6dDyueLyEarjSdExGOVp1mv91nnq0Pq3GOV7xaRK6J5YIPBED8iGcHcCewMef06cBkwoQXZol9VV1s/14SUfwf4oaouAtqBz1vlnwfarfIfWtchIsuBG4AVwJXAf4iIM4L+GwyGOBOWwIhIBXAV8PBImapuVtX6aG4qIgK8D3jKKvoFcK11/CHrNdb5S63rPwT8WlUHVfUgsA94dzT3NxgM8SHcEcz9wFeBQBT38IpIrYi8ISIjIlIIdKiqz3rdAJRbx+XAEQDrfKd1/cnyceqcRERute5X29zcHEV3DQZDrJjS0U5ErgaaVHWTiLw3intUqWqjiCwA1olIHUHRsAVVfQh4CKCmpiasYDcPPr+etw402NWlWU2a00Hmf29FbAo7VPLxSk5c0G9P47Oc76/+Ig6Z3jpQOJ68a4FrROQDgBfIEZHHVfXmcG6gqo3W7wMi8gpwNvAbIE9EXNYopQJotKo0AvOABhFxAblAa0j5CKF1psWBpjY2HYxJU4bTWJCfS/9rO6e+MArK31/JiTMbaerssKV9w/SZUp5U9R5VrVDVaoJG1nXhiouI5ItImnVcRFCsdmgwjN6fgY9al34a+L11/LT1Guv8Ouv6p4EbrFWm+cBi4M1w+mFIHIN+f8zb9Bans+pXazj2v5QmvxGXZCbqvUgicgdBu8xcYKuIPKuqt4hIDfB3qnoLsAz4qYgECIrZfaq6w2ria8CvReRbwGbgEav8EeCXIrIPaCMoaqjqdhF5EtgB+IAvqmrs372GmNLv85MWg3ayF+RQ8Yn56FovB9KbqAscmbqSIeFEJDCq+grwinX8APDAONfUArdYx+uBVRO0dYBxVoFUdQD42AR1vg18O5I+GxLLgM8XlsC4st0UnTuH7BW5eBdkQJmb4fwA3d5B2uimOzDITlqDF0ez1GBICCm9m9qQePqGhskBZJxz3uJ0Fv/LmbQvG6Qx0MpxlON0AV2nLjJiMqMxAmOwnbTcdIY6Q1Z6nMKqH7+LA8vaqPM3GhFJYYzAGGzHk59xUmDyzsin4McLqZOjYCxoKY/Z7GiwHU9uBgCLbj0D/0+LOSDHE9wjQ7wwIxiD7XgK0ln12PnUVTTMmlGLIFSkl+B1ZDCkg/T6emkf7sKvs2s+aATGYDv5X59LXeBAorsRF7wOD+WeBWw63sX+E0OcMli7EPJZXVxAUfYg+3sPJ7KbccMIjMF2ut29MJjoXtjPosxqNh8bZkd/y7jnFWFzczs0w3lzl+J3HaNtuGvca1MFY4Mx2M6wDie6C7azJHMxLx7oprk/PCXdeLyVwFCJzb1KPEZgDLYzdHLTfGqyJGMpzx1oQ8f19pmYt5vaWZRZbU+nkgQjMAbbGQ6k7gimIr2E5w+2ML4r4dQc7UztmGlGYAy2MxAYSnQXbMMdyI945BLKjrZOMpzeGPYouTACY7CVzAwnvhTdk1qSVshfGtqm1UZAocw7N0Y9Sj6MwBhspaoyPdFdsAVB6OnNZygwfb8WRwov5hqBMdhKfnFqvsWWZC6hrjU2sWgUm8L9JQGp+d83JA2enNRbQSpOy+fPh2IX6KrP3x2ztpINIzAGWxny9Ca6CzHFgYOBviIGYhSpzyXCicHWmLSVjBiBMdhKi396RtBko8K9hHda2mPW3vmlhSlrBAcjMAYbSU930uVLnRHMkowzeKVh/G0A0aE4PakdU9gIjME28nJSZ3VkSeZCnjsY2zxbqwrzOdKf2qErjMAYbCMrKzUEpjqjgpcOdhGtt+5ElOam7tRoBCMwBtvIyJr5b6+53iLeavTj09guJZdnZnCgtz6mbSYjYb8DRMQpIptF5Bnr9e0isk9E1Mp5NFndHBFpEJEHQ8quF5GtIrJdRL4TUv5DEdli/ewRkY6Qc/6Qc09H9qiGeOP1xvYbP94szKxizwkv3UOx30u1qsRLIIX9X0aIZAx7J7ATyLFevw48g5XGZAruBV4beSEihcD3gHNVtVlEfiEil6rqy6r65ZDrvkQwE+QI/aq6OoI+GxKIZ4Y68WY608l3VPHigWZiPS0CyHa7ODJwKObtJiNhjWBEpAK4Cnh4pExVN6tqfRh1zwVKgBdCihcAe1V1xGr2EvCRcarfCPwqnD4akg+nZ2Z9Q3scLpZkLOFoWwGvNUS/Q3oqLijPo98/CyJwEf4U6X6CWRwj2nghIg7gB8Bdp53aBywVkWor//S1jM47jYhUAfOBdSHFXhGpFZE3ROTaCe55q3VNbXNzbK3+hsgQ18wwYqY53CzJXEJrRwnPHWyjdcC+D/8FpYXs699tW/vJxpRTJBG5GmhS1U0i8t4I278NeFZVG0ROfRuoaruIfAF4gqBorQcWnlb3BuCp09LDVqlqo4gsANaJSJ2q7g+tpKoPAQ8B1NTUzKyv0BRDXb5gkt8kpciTR65jLhuPdbJzyH6HwJWFubSxP6X3Hp1OODaYtcA1IvIBwAvkiMjjqnpzGHXXABeJyG1AFuARkR5VvVtV/wD8AYKjDsbGm78B+GJogao2Wr8PiMgrBO0z+zEkJT5HcgaaWpAxj+7+DN480oISS8e5ianMysDpPUafL4kV1wamFBhVvQe4B8AawdwVprigqjeNHIvIZ4AaVb3bej1HVZtEJJ/gSOfjIdeeAeQDG0LK8oE+VR20Vq3WAt8Npx+GxDAsyRNoyuvwUJleze6WIV460QP0Y5eN5XTcDqGysJ+jA31xuV8yEbWjgojcISINQAWwVUQetsprRo6n4EcisoPgatR9qron5NwNwK9VRzkfLANqReQd4M9WnR3R9t9gPwOaHIbMJRlLONxSwHMH2jjY1RP3+19aVcjRgdlpD4zI1VJVX8FallbVB4AHxrmmFrhlnPJHgUdDXt84yX2+MU7ZemBVJP01JJZef//UF9mIIFSnLeW5g/GZBo3HsoIc9vXtmfrCFGXmu1oakhIRpc8/kNA+lDiX8PLhxImLS4T87C4CkS2+phRGYAy2kJ3lTuhqyaLMKtYfTWyclfNKCzk+kDiBSwaMwBhsITfHndD7n+hK7P0Bcryzd+QyghEYgy1kZSUu309lemlMg0JFS4DkWUVLFEZgDLaQnpG4jY7DQ7nEawl6MgYCibVBJQNGYAy2kJaemA+4IGxt6UzIvU8nzZG6CdXCxQiMwRbcCfpslXqLbAmvEA17mknprI3hYATGYAtOT2IMnFmOgoTcdzzqu3twDs2jJC15+hRvjMAYbCHgj/8UySVONh2Pv6fuZLzT0s7GIw4qPWdQ4MmZukKKYQTGYAtdLfEXmAUZ1TT3J8f2hFACCq8caWFro5cFacvIcWUmuktxwwiMwRYO1cd/BaW+ffqOfVlOBZscBIcCAV463Ex9Sw4LMiptuUeykRph3w1JR1v7EMtc2XT44pMWtTqjnHUnusK4Ujk3T7iqdJAV2d0UunvIdXWSIe24tQWhF8WFSg4+chjULIY1DQBBEQkK0FDAy/GhPA71Z7GpI50njwjDGt6orWNwmJcPDnHF/KXs6Uvt4FNGYAy2UeQopAP7BcaB0N6TAYw3PVIunSNcV9bD6uxGipx7ceg4WwhCBi2CD9E2PLThCRaMd1PmeOFML3wwH/5xQTnfr7+En9WH52CoCC/Vt7GiLINuX+qGcTACY7ANZ38GxMGht8qzlJePnNrzsywbPjFvgAvyj1Hu3oFTQ/YD2bQ9yq2N3FP1OF3Dn+KpxvBGMj5VytIq2O1L3d3WRmAMttHaKGCzqWFJ5hKeP9DMLdXKB+c2sdC7hzQ9eOqCOO+3/PKCPTzVuDTs6+s7/JD4bVO2YQTGYBs7d/ZQNT+NPpsi6C/OLOSusg38sLIel1opWBMc7jbXeRwIX2B2tnVwQVVRyu66NgJjsA2fX6lwlLPHfyCm7Z6XV8KH8/ew2vNHREi4qITyYltNhDUET6AI4hQbON4YgTHYynBLBuROvx2vw8MVRTlck7OeCtcfp9+gDbRqDV/ZmhFxvdcaWlhTWcSxFBzFGIEx2Mr2bf0UXORhIBBd6II0h5tr52Tx0ZxnyXHYn1okEhQPPplDnxbx+6ZlfGunG41iF3dAwTdYQCqOYozAGGyls3OY1YOL2ePeHlE9Bw4+MKeQT+S+QKHzqE29C6KkE5BsAngI4MGPG7968KkLHx6GAm7afVkcHcikvi+NPT0utncJ+3s0KkEZj43HW7m4upQj/cdi0l6yYATGYDvrX+nhjA/k0TLcEdb15+bO4bbiv1Lh2huzPviliF4tZUi9DAa8dPnSeacrnxeavPy1JVqhiOV2CMEVyAVmqcCIiBOoBRpV9WoRuR34e4IZGYtVdcLxnYjkADuA36nq7VbZ9cA/EvSUeEZVv2aVfwb4HtBoVX9QVUdSonwa+Cer/Fuq+otw+29IHMPDSlpjBcyZXGCKPFn8j9JOLvL+HInBZ3dIqtg/sJTnm4t56IBzEk/bxAenAtjW3ENmiu2HjGQEcyewExj5E7wOPIOVxmQK7gVeG3khIoUEReRcVW0WkV+IyKWq+rJ1yRMjQhRSpwD4OlBDcN1gk4g8raqJj41omJLa2k4u+PA8Dg4eGXPOgYPrSvK5Kfe3ZDii9/wdlGpe7zybje2ZvNnmZFs4OweSiBP9A1xSUsahfnunhPEkLIERkQrgKuDbwFcAVHWzdW6quucCJcBzBMUBYAGwV1VHslG9BHwEeHlsCye5AnhRVdusdl8ErgR+Fc4zGBKNcPztDBwrhEDIuvLK7GJuL3mL+a7IbDSnUzfwfm58q5jBQHKMRqJlYDA70V2IKeHupr4f+CpEluBFRBzAD4C7Tju1D1gqItUi4gKuBeaFnP+IiGwVkadEZKS8HAj9+muwyk6/560iUisitc3NszObXrJy4FAfSywntGxXOndVOvl+2aPTEheVbH5y9Cau2zhnxosLwIZjLZR75yS6GzFjSoERkauBJlXdFEX7twHPqmpDaKE1rfkC8ATwF6Ae8Fun/wBUq+qZwItARHYWVX1IVWtUtaa4uDiKLhvsZP1L/azKqObfq+v4m4ynp2Vr6ZOl3LjlOv59byqtVQjpkjoR8MIZwawFrhGReuDXwPtE5PEw218D3G7V/T7wKRG5D0BV/6Cq56nqGmA3sMcqb1U9mdT4YeBc67iR0aOcCk4Zgg0zhMEhZfuLfua5pmdn2DV0OWv+ch6bwluYmlF0DyaRa/I0mVJgVPUeVa1Q1WqCSenXqerN4TSuqjepaqVV9y7gMVW9G0BE5li/8wmOdEZWikpDmriGoGEZ4HngchHJt+pcbpUZZhiNnUJdy8VR1VWc/LLpBj64oZS+BITljAceZ+rEgYv6SUTkDhFpIDiS2CoiIwJRM3I8BT8SkR0EV6PuU9WRPet3iMh2EXkHuAP4DIBl3L0XeMv6+ZcRg69h5vG7urlR1ftV88f4l51pMe5NcpHuTp2MkKKaOsOx06mpqdHa2topr/vKL5/hhbrYOXUZpsbpCLDp75/EQfheBs93foTbt2TZ2KvEk+NxM7+4MymCUD1/8Q9wyNRjEBHZpKrj7vJMnbGYYUbhDzho6D077Ovf7PtgyosLwNqKrKQQl1hhBMaQMF7eO2/qiwgadG96K9/m3iSepfnZ7O3dl+huxBQjMIaEUXtoaltKg/8irtkwl2Rx57cLp0BJbt8oJ8RUIJUcCGYdDgdcfJWXTmcbHvHQVpfLnn29ie5W2Gw/NrlotOi7uHL9/JjtWE5mLqsuZG8KZhgwAjNDWbkii4wlbewaPHzSRdG19ASXLFlMYNBFd7vy9ttdJPM3f1ufoHgQxsaK6WYlV25YzmDqLKhMyJlFeezvS83A30ZgZijFC4fZNXh8VJlP/exiF6QBc+Hsawvp3TYnaUc1axcExhWXNj2XqzauoDM5ctjbSrbbRVp6Mz1DqTU1GsHYYGYUSnmpl/PX5NAwevfFuBwfaiWw7CALF0QextFuBOXbV20eU35g+BLe89cVtAwm78grlqytyKV1qDPR3bANM4JJclauyKJ4vp9+dzdNw630BwY5BKd2bk1Br3+AvJWNpB8ror8/zEpx4Kc3nqDA/daosvW91/Dp2jySeVoXS/LTPBweODj1hTMYM4JJYlauyKKreg+7Ars5NHiU/kB06T86fN2c/15vjHsXPZ9dM8B5pb8bVfZ2/1V8ujaf2SIuAO8uy446VvFMwQhMkuJ2C7LoKMPqi0l7+xx7yMyIQ5rFKVhZFuDONb9FQpZjTwTWcMObhQnsVfzJ9XhoHKxPdDdsxwhMknLBxVlhx7ANB5/6WbEyM2btRYPXpfzXx1/DwannGpYKPvjG4lmxFB3KmgqvbQnpkgkjMElIfp6bhvTYe3RmFsVmNBQtv/zUQTIdO0eV/eLYRbQPzy5xuai8iD29sU1Gl6wYgUlCVl/osuXbbTCtJ+Zthsvdl/ewNG90dI2A5HP/3hROzDwOl8wr4oR/9mysNQKTZJy/JofdAXucrtr9iVkOfc9iPzeufGpM+a6Bd6VEmMtwcAhcuaCAQ0O78GnyrObZjVmmTiLOOSeHI/nbUZv2owxr/D3XCjOVf//g8wj9Y8798UTqxJ6djByPm3eVu9jTm5reupNhBCZJyM5y0VtxkIDPPo/O4bh/cyr//anteIKeO2M41Jf4VS27mZ+TRUleJwf7Zmd2HTNFShJqLnHR5bPXpd8XiK+R9wfXtVOa/pcJzx/pS+3p0XlzC8nMOkbT4OwUFzAjmKSgqNDNHr/9cUACKE4n+OMwkLlu9TCXVf9m0mvq+wKkomNdtsfN2ooM9vTuDtvjOlUxI5gkYOU5XgKRpZyKmvw8+1dtzqv288/v+y3CxCMmJY2+lPvwKReUFrJkTi97evcnujNJgRGYhKO0ZsQv+0pJib0Bs1eWBfjJdU/joHXS64RBzslLjdFLttvFe+cVsaYSjgd20z48w3LW2oiZIiWYpUuyaBkem6/ZLnLz7ftOWVgU4Bc3PIuL41NfDHy4bIC3O5Jnj9RolNKMDIoz0kh3OXE7BLczGHnO6QARBfHR6evgxOBxDg+F98yzjbAFRkScQC3QqKpXi8jtwN8DC4FiVW2ZpG4OsAP43UhSexG5HvhHwAk8o6pfs8q/AtwC+IBm4HOqesg65wfqrGYPq+o1kTxsMlJc4iSe33eeLPumYl+6uA034YvlB4vr+N/UEE87TH6ah/m5mWR7nAQU/AEAJdMjuJx+fDpIj7+X1qEOfNpKD9CjBG0pKTels59IRjB3EkyClmO9fh14BngljLr3Aq+NvBCRQuB7wLmq2iwivxCRS1X1ZWAzUKOqfSLyBeC7wPVW1X5VXR1Bn5Med84w8QzDqmn27X+pzI9s71QmO7hxXg2/isMAbmFuNgsKAhzsO0IHATpOdwkasL8Ps5GwxssiUgFchZV9EUBVN6tqfRh1zwVKgBdCihcAe1V1JDv9S8BHrHb/rKojeRveIJjYLaVwOx1cGMhirT+DFteJuN6732lfSozGztyI63x94XNcU2anwiqXVxfhSD/E/r5DcTOmG4KEOyG/H/gqRPbfEREH8AOCaWND2QcsFZFqEXEB1zI67/QInwf+FPLaKyK1IvKGiFw7wT1vta6pbW5uHu+ShFKUmcGZW7up/68NHHp4I2VHI/9QTocOG7cLvLwn8tQiTm3i+4uf4MHVPZyTF+seKVfOL2Rf/y78aoQlEUw5RRKRq4EmVd0kIu+NsP3bgGdVtUHk1DxbVdut6c8TBEVrPUFbTuh9bwZqgNAkxlWq2igiC4B1IlKnqqPWA1X1IeAhCGZ2jLC/MaE8N5u5G07gLsigrspD72AwqNCyggICv3yHEw0hU4mmABTHr2/dvj7bfGGe2+7km5d6kQjnG8IgV+T+hivOAp/M5ejwUjZ2zOW3R7281a5Ea6O5uKKYPX27oqpriA3h2GDWAteIyAcAL5AjIo+r6s1h1F0DXCQitwFZgEdEelT1blX9A/AHCI46CDGhichlBA3AF6vqSaOBqjZavw+IyCvA2UDSORxU1fdz+C/Bbi1dU03G6jL8J3o5/NNXx3xUfIviv1QbCET/oZ2MAZ/QObycPPfbUbfh0uNUuo5TWQQfKwK/lHBkeBm/P1HOIwec9Ie5OTIvzU2HHo66H4bYMOUUSVXvUdUKVa0GbgDWhSkuqOpNqlpp1b0LeExV7wYQkTnW73yCI52HrddnAz8FrlHVppG2RCRfRNKs4yKCwrcj3AeNF0WZ6Rz5zZaTr5s21FP/k/Uc+X/vjPlIu3Pc7E8/Ftf+AdiZjvzhN2Nrg3fqCapdr3Bn+f9ly3t+x2/PO066Y+oHOL8sJ6VSsM5UonaKEJE7RKSBoBF2q4iMCETNyPEU/EhEdhBcjbpPVUe2mn6P4Gjn/xORLSLytFW+DKgVkXeAP1t1kk5g8tPSUH94n+AFn1nAYCC+O5wdCHYuCz+2MY0tLR+0pW2HdrHS+zyvXriNyZbest0ujsyCcJQzgYgc7VT1FaxlaVV9AHhgnGtqCfqxnF7+KPBoyOsbJ7jHZROUrwdWRdLfROCPYHigF8Y/2JJT7N/B/OnHynn+trXM9b5uS/v58jaXzVnFS03jnz+/LI/9A8bxLRkwWwViTCQC05QR/wBQhe6YL9WMQRE+8sgq+gLLbLvHpcVj48uMMCypm2dopmEEJsZkO8MclTiFdn/8Q1jmnPSTtJfuQeGmx9+Dj9KYt614eexw+oTnO8xeoKTBCEyMyWsKb4k2b0lOQpy+HAPx2/uzv8XBl//wQZSsmLa7pf997Owe/5xLxPa4OobwMQITQxYX5FH/s41hXZuzJD4jidPp74jvv/zVvU7u3/AxlNjYfoakkq/UTew45FNlrrcoJveazZyxvRQNTH+50QhMjHA5HWQ8Xw9h/lO88+OfLzrTmc6WzfGflv18g5d1h66bdjtdnMkVGy+hYWLzCwC5ztmVxC2mqHLWi+Xs/YddhDrHRosRmBhxniuH1rfD37XnLvfY2JvxqRiaz8BgYlzm7/9zwbTqH/a9h4v+unpKcQFo6U2IA/eMxzXsYOXDJWx7MHbeH0ZgYkBlXg4NP90QUR0tjK8Hb7Ennw1/Tpxtwu2M7nmVNJ7v/AiXvl5Nnz+8NupaOnGLCXUUEQFl6SOF7HwmtjmbjMBME4/LyZwNx/EPRhZQezg7viMJ3VfG4FDivtnzMiJ/Xr/M4ZbtN3D7liwicQ4c8PuZlx771atU5qyny9n1p9jHhTYCMw2WFeSzams3x1+LfDtUwBk/gTnDsZS6bRMsu8SJvPTIxE1J58u7ruS1CcOYTY4EEpuHeyaxan05236+c+oLo8CMI6MgzeViyZ+P0b6jjmg/thqnGVJ1Wjl/eTrx0ZS2HHGguBHC2xrxixPX8qfj0f+RdrT0kZntnFVZFKOhsqGQXd+zR1zAjGCiItPjpm3H9FzR7creGEqBO4cd67z4wtwbZSctvQ7+sPdjYV3rkzLu2zW9777G3j4WeBdPq42URxX3z4as3fX2YAQmCtr6+im//IxptZHeaf8+pOymSjo7458udiKe2pwd1nWvdZ6HPwZvzXWH2yj2RB4Ea7YwtyWf+k0Ntt7DCEyU9NSUTKt+YKe9H/w5ngLe2JBce3K2NDjo8a+c9BoljXt3xcYJcSgQIDAUx2heM4zCw/b7YhmBiZLDPT1IlEuvAG3RWi/DJLjnKPL+nVVQwLuz7fvW39gw+QbI+uELwvJ1CZe3TrSxOHN+7BpMIfqK7R/dGoGJAo/LyZnHA2HHfRmPE280k+Gwb1+Qyx+5I9/q/AKav/4nmv7Pqzgd9lihdQrr9gMHxwvNPD12NJl4vOPRnR1DJZ8AIzARkpfu5cxtPRx+cvO02hGFMv/0vFsnZTgyI+lZ+QU0f/M5dNjPYEsPZdmx3aA4QnnuxOtu/bKIZ47FXtiO9PRS5jVTpdPJb7F/Kd8ITARU5uVQ/qdDHH81Ng5JGcfsM/SqJ/zh76qCAlrvfY7A0ClnwSKHPX3zOCd2SBxSe0QNIMtpfxycmYb3uP1eKkZgwqQyLwfPI1vo3D1BGLUoGNxkX8zYg4F6srKm3sG8oiCfjnufxz8w+oOf3j1kS79ePVA2yVk7l9PNNOl0JA7eC0ZgwiAv3Uv27/Yy0BLbvTz7HztAmU07f4cCw9SsnTgoE8Dygnw6v/Uivv6xox1ttGcF6pcb01HGHx1lSQMZTnve9QGT93UMGodPvxGYMFjpT4vpyGUEHQrQf2cLc5322GJ2O3dw4XvGX/I9oyCfnn97GX/f+COV7m32ZDto7RU2HB0/KLhTW/mnM+xJbTsQsN+gOeOIgze5EZgw6PlrvW1td+3vYvArbba1vz9rG5dclUGa59S7qSI3m/7vrmO4e+ItBG1bj+B22vP2+OKTxRP6w3yoeCMS46lSttvF0f7Yf0HMeOyP/x6+wIiIU0Q2i8gz1uvbRWSfiKiVp2iyujki0iAiD4aUXS8iW0Vku4h8J6Q8TUSesNreKCLVIefuscp3i8gVkTxotFzoz6Rls73ejn2N9oZR2KW7WPaBbpYvzcLlFIpeOMBQx+Tf6OpXym1aSfIHHNzwywvp8J0z5pxH6/nSotjaS84qziMQh60ZM41kmyLdCbTJ7Y8AABwwSURBVITuinoduAw4FEbde4HXRl6ISCHB/EeXquoKYK6IXGqd/jzQrqqLgB8C37HqLCeY+G0FcCXwHyL25eBwiLC230v9w2/YdYuTVH2syvZ7nBhqo33hDs64qoPcs8PzkSm0cS/s4TbhkgffxTvj5FD6TPk7MbyTIm77RogzmjhYecMSGBGpAK7Cyr4IoKqbVbU+jLrnAiXACyHFC4C9qjqSnf4l4CPW8YeAX1jHTwGXSjB234eAX6vqoKoeBPYB7w6n/1PhEJiTlUlFbjY1+YVc6Mtk1YZWDj32ViyanxLfdfHLj9Tq62TPtZ2s+P0a0ksmdxX3dtpjDxnBH3DwyccqeLzuk2jIWzGbOj5aHps3/7tKCmkcMNOj8dAYhMScinC/ou4HvgqEt1vNQkQcwA+AmwmOdkbYByy1pj8NwLXAyNdqOXAEQFV9ItIJFFrlocOJBqvs9HveCtwKUFlZGVY/C15txPNkMFh3vNN1VX28igMa//Sx27OPUPhkNWWP+tn/893jXuM73A7z7A/t+d0Xs6jK/zAXVfzmZNnfL9jLU41LptmykpXeQ6ux746Lqz4JRjAicjXQpKqbomj/NuBZVR1lxFDVduALwBPAX4B6iM06oqo+pKo1qlpTXBye92ZgMHFLmM4bExcYqdXfxf5P9rLql2vGPd9d1xi3vnz3paJRmQfmON7ggmmu4J9dXMCh/qPT7FlqktmfxsGn622/TzhTpLXANSJSD/waeJ+IPB5m+2uA26263wc+JSL3AajqH1T1PFVdA+wGRnJTNwLzAETEBeQCraHlFhVW2Yyl4uoK9joS/wh15UdY+YOaMeVtO46R7o5PTLJDbQ76AqdGLILyxQXTs52UxDks6Uxi0bOF9HYmwV4kVb1HVStUtZqgkXWdqt4cTuOqepOqVlp17wIeU9W7AURkjvU7n+BIZ8S+8zTwaev4o9b91Cq/wVplmg8sBt4M7zGTE+9ncxPdhZPsOLuJhbeMjnEjwLws+9z3T0d1tJjlu6P/AAjKscH4Tz1nAlWHi9jx+K643CvqhSoRuUNEGgiOJLaKyMNWec3I8RT8SER2EFyNuk9VR0YwjwCFIrIP+ApwN4CqbgeeBHYAzwFfVJ258RBL3zeX3S57l78jIUCA45/0UbB6tMdBcbs9WwbGwymjPYq7fdHbf9KdLrp99m3FmKm4h1wM/bDT1ih2oUQ0/lXVV4BXrOMHgAfGuaYWuGWc8keBR0Ne3zjBPQaAcWMrquq3gW9H0udkpeD6OTSEtcIfP3r9A1R9axFtV5+KVdP+3A64sjoOd1fSHKNj5LQNRx/OYjAwY797bGX503PYdsC+GLynYzx5E0RXqb1LwNGyO/MoWfNOTYvatx1lXm5Ei4dR8eHVPhyMFpjNHdFHXPMreB3xT26XzGT0e9gep6nRCEZgEoAry0UDzVNfmAD8GqD6tqWjyuaI/X46n33XwTFl65qn50dZ6TWR7EKZV19A0JwZP4zAJICKqyqSOp1G37tHO2DZ7XBXmKlUZa8fVeaXQvZNM432W8d68NgU12Ym4j0Qh81Hp2EEJgFknh2/lZloOCgnyFt+aoe3r95eV/svX9KFMHrFqDNQPe12WwcGmZ++YNrtpAzx1xcjMAmhMLn/7IpSfnP1ydedm4/Yer/LFm0ZU3Z4cHpZG0aoPdaDx2HyCwLo5OGBbCG53+kpij87+Xf2OqpPGUg79jWR7U2z5T4fPWeIDMeOMeVvtMUmxGVz/yDVZhQDQOOZnThsCsExEUZg4owCPZnJuYIUylDhKREUoCIj9jl0BOWu96wfUx6QQv5jf+xGHZuP9eEWM4ppze9h6VWL4npPIzBxZsU/r+BQ4ESiuzElnd7RNpHcodiPur52eS8ZjrE+GW/3nk9/IHY7fU/0D1CZFt8PVrLSdnX8HCfBCEzccGenMf+Gpeyuifd+7ehoCXRCSGI554lpLumcRqZH+fjKl8aUKw7+bc+k8cui4qVDzVRnjNl8P+s4WtLO4kviN2U0AmMzGXNzqPr0uxj4u3NwfqyAIZ04bUcy4VM/afmn7C79u2M76vrutc24GLtXqEVr2GpDvHFF2N3kxGVfjLIZw+CH4/exNwJjIyUXLqDphqW87h3gWFcPgYyZE5ik2JnHYMupmL3Nb9bHLEZvVUGACyueH/fc49OOATMxjb19LMwwBt+DVc1Un1sRl3sZgbGJnAVF7K8ppKP/1Ie0VVsT2KPIKOod7avj6xlkaW5sdn//+4cPIoydcvmklJ/utzfK2ubj/cbgC7g/Fp84REZgbMKV5RklLvl5btqGuxLYo8hwHxpr1M09Nv3g5OdV+1mU+/K4517vOg+/zW/J430DzM+otvUeM4FdZxxj0cXVtt/HCIxN+HpGW+urqhPg5TQNems7xpS1vjD9Xbg31bQj4wQvHJJK/ml7fOLjHLUnp9zMQoRjtw6QmRd794NQjMDYgCcvHfcNo/P+5BQmv3PdCBkOLwf/79j82527T1CVN34it3BZNXdsiAolky9su4TjcXIP2tXehcO89enK6qfqEnttMeavHGNKLlpI/9+u5p3W0fYWpzd5NzeezvzOYgID4/e3fBp2aqcjQIFnrNfujxuv5bWWcSrYxFAgQInXnmyaM43hc+2VACMwMUKBqi+u5Z2VWRzrGmvADLji6+A0HYZemHgOMbAx+iBZVy4PjDHuru+9hh/ti7/RNds5vZFYqtBS0W1r+0ZgYkBWVQG5/3Axr/u68AXGDzQ95Ej+7QEQnB4d+Nn4aUwAjq3bRV565JHmstOUr17y9qiyE4Hz+UxtbPYcRUogYIJRAbRl9+Jw2LdyZwRmmlRcvYLjH17IjtbJQxr06czwganuKsLfP8l0LqAsTIvMYJ3jDfDHW98k330q882gVHPtm0vQeGRgHwf/zJmx2krApWTm22foNQ4B06D61jWsd/QS6J84ifwIXb7YutrbxfALUy+le0/0QZibq4PispFc16mQDCpZ/G3dxbQkcFDndvtg5sxabUP80NtuX3B0M4KJAnEKFf/rYv4qPQTCCkGoDASS/9081fRohN53wsuGkJeuPHvrG6PEBeDN3kvYkGCfw17/zPFJspPsvnRbMwyELTAi4hSRzSLyjPX6dhHZJyIqIpPuThORHBFpEJEHQ8puFJE6EdkqIs+NtCEiT4jIFuunXkS2WOXVItIfcu4/o3vk6eHJ9ZL3tffwRlfqJVSv7irC3zf13KFpwwHSXJMPfr0u5Y+3biDHNTaR/X27E7uC43E4OD4Yx2WrJCa3217/rEimSHcCO4ER8/vrwDNYaUym4F7gtZEXVsbGHwHLVbVFRL4L3A58Q1WvD7nuB0DoksZ+VV0dQZ9jSs6CIvo+fgZ1U9hbTscRhyTjsSCc6RFAYNhPpsfFoG/ijZv/ecNRsp1jxUUli21dCgmyvQAszMtiUJsSdv9kIv+VNOxMrhvWCEZEKoCrOJV9EVXdrKr1YdQ9FygBXggttn4yRUQIitbR0+oJ8HHgV+H00W5KLlzAiWsXUN8euRuozICJaIYjLazpEUD55ctp65vY7vThs4Y5e84z454bpohEigtAaaZZQQIoacll51N7pr5wGoT71r8f+CoQUbJfEXEAPyCYNvYkqjoMfAGoIygsywlmdAzlIuCEqu4NKZtvTdNeFZGLJrjnrSJSKyK1zc0xSA3iECrvvIgtq7Jo7Y1uJUhmwAimuqs4rOmROIXAxRPvSM7xBvinS59HJniruPUQ5yRmZfokHvfMCJlhN4VPuAn47c3fPeUUSUSuBppUdZOIvDfC9m8DnlXVhtAPmYi4CQrM2cAB4P8A9wDfCql7I6NHL8eASlVttUZFvxORFao6alyvqg8BDwHU1NRMy3rl8Dgp+p8Xsb5tehbJGaAv+F485XClQMnaRWStKsNfksWQO/g9pAJHfYNsbp94ivizm+pxM3GQcEG5a3Ern3irMGZ9j5S+gL3OZTOB6sNF7H5hv+33CccGsxa4RkQ+AHiBHBF5XFVvDqPuGuAiEbkNyAI8ItID/AZAVfcDiMiTWDmordcu4Drg3JEyVR0EBq3jTSKyH1gC1IbRj4hxZXrIvvMC3m6d/nKHjX5MMSHDkcb+R05l/Kv85lW82d0O+KB37KbHifjcBQMsyR0/zkso52RuxC3vZ1gT8YdRjg/MbgOva9hB4CfT3xkfDlNOkVT1HlWtUNVq4AZgXZjigqrepKqVVt27gMdU9W6gEVguIsXWpX9D0IA8wmXALlU9uR4qIsUiwXBkIrIAWExw9BNz0gozSbvjfOpiIC6Q/FOk0OmRJyfdEpfIKMtVvnT+H8O61qnNfHFRYqYpmS5XUie9iwcrfj+Xxh3xCd0atflRRO4QkQagAtgqIg9b5TUjxxOhqkeBbwKvichWYDXwryGX3MBY4+57rPtsAZ4C/k5VY75WnFmeS+Bvz2Z3W+QfsomQJB7CpDvSaPm3U2lbfQPDUbXzyI07cRL+ysz1pXunvsgGcjyz28A7v76Ybb+cftiNcInIk1dVX8FallbVB4AHxrmmFrhlnPJHgUdDXv8nMK4vi6p+Zpyy32BNrWKNoihQee0qDizK5EQUK0WT4XYlp8B4xMW833jZs+HUXNw/5EMEIklh/D8v7aU849WI7l0om1ievZwdcTaH9Pn8zKzIPLHF+7S9Rt3TMVsFgJ4r5tNeqTQODUN37Oemc0vSSDazYokzH+e329nzwvZR5eIQHCL4w1SYxcUBPnnW7yO+vxDg4xWDfGOnPQndJqJzaJByh2dGeFbHmpzudPauOzj1hTHECAwwHAjQNxTd1CAc8oucSSMwRe485g7P4cit79Cxu5W0nHTcOWm4s9NxZaWRc24lxwLh2keUh65/GwfRjfhW5XQQdJGKJ0KmK52BodknMPntmfRGMjSNAUZg4kB6dmyGpYs81fQdyaK7009r2zBt7YOogsvpwOkEh9OByyk4nYLTIbhcgsMBDkewrLvHR13HMHUMINcsnWAaFL7xNTcdCj1vRf08fk2MB2K/f2aEzog16T3uuN/TCEw8SB+O5HM7hnLPHIb2F/OXum4g1O0naNvx+RWfHxgn1u1ExOKLzCnTa+SJxtgnWAsH50xwrbYBd3f8n9sITBwYcPZGJTB5rmwK2qpY/3onqskyyTpFW58DH6XjJlCbigb/RfymMTHG70JPPt0++0IUJCuOzvj/vY3AxIF2f+Q2ijLPHPb/OYudnV0keu/OZHQMVVHkiUxgeljOTbWJS4DmEXsj6Scr2h5//5/ZOVaMI5kZTrp8ka1MVXhK2PtyFh2dyb9n5lDHnIiub9Nzed/6Go5OHaPLRmZOhoeYEVCaXo//DnIjMDZTVhpZ/Np5aaXsfCmDru7kFxeAdREkqm/0X8h7/7qC9uHEjsiGZkj40liyclM5zYfiH8PICIzNFBSFn2y9Kq2Mbc956emZOa7sT77tRsme8ro9Q5dx6V/n0x9IrLjkpbk53Be5zWgms2JTGbu+vWvqC23ACIzNpOeENxxf4lrI5j+66Zss4HYSMuhzcKx/8hhgb/V9kKs2lNmeFjYczirOIxBZ1JGZjSrNPzuOxtn/ZYTE/8dTHEmf3KHLgbB4cAWvPj3E4NDMtA28sr96wnPPd36ET7xVQLIYqtM9s8vBruJ4Ia0NsdtXFylGYGxmwDnxcmim00tx43Jee7mbZPkARsNjGzNRRk8FFSf/3XwDt2/JSlCvxqdnlgX7Ltyc2J1XZpnaZtr848dTKXbn0/ZWMfuOJp9/S6Qc7RT6A4vJcATn+UoaP278aEIyNk6Gx+HgxCwL9j20L6HLdWYEYydpHhl3iTrXlUXLxmIaErtWG1NaB+YCMCzlfGXP9UknLgAL87Lx6yyyvwCumsizcMb0/gm9e4rjcI7V73RHGsPbKjh6PLU8SZ/YuoS5C0q5b7ebwQSvFE1EVa6LPan1Z5+S+rNacTjE1txHk2FGMDbi843+tnSJk8z6Rew/kHrv8nWH8vjmTk/Sikumy0nDYH2iuxF3ujMHWLC2KmH3NwJjIz5fgDRHcAerIMxtWkbdtplvcxmPzq7k3qF8fmk+fbN0F3X3J8HlDt8fK5YYgbERVaGsYymF7lzmta7grbdSdwWju3uI0vScqS9MEA536o0aw+VoSTtn3HpGQu5tbDA2s/6vXUAuo8MspCZlrlyOJeFzOgUa++MT5DpZqbu0gXmvltKwLb5ezGYEY4gZ0pGcb6flBXmzMkRmKAEn5J0X/4x3yfmOMMxIDu3twJGEDoPluYnuQXIQKIz//yZsgRERp5W29Rnr9e0isk9EVEQm3VIrIjki0iAiD4aU3SgidSKyVUSeG2lDRL4hIo0issX6+UBInXuse+4WkSsif1yDnfT0DrM4q3jqC+PImtJC9vTuS3Q3koKhgvj7AEUygrmT0cnRXieYIO1QGHXvBV4beWFlbvwRcImqnglsBW4Puf6Hqrra+nnWqrOcYL6kFcCVwH+MJGIzJA/5w5mJ7sJJ5mZ46XUcTnQ3koae/Pg7doYlMCJSAVwFnEyopqqbVbU+jLrnEgwd/0JosfWTKcG0hznA0Sma+hDwa1UdVNWDwD7g3eH03xA/Wg8nR6wVQVleovT4kqM/yUBvRvyX6cMdwdwPfBUi2+cuIg7gBwTTxp5EVYeBLwB1BIVlOfBIyCW3W1Onn4lIvlVWDqOyqjdYZaff81YRqRWR2ubm5ki6a4gBRxo6KU5L/CjmivlF1Pc1JrobSUVJY/zdCKYUGBG5GmhS1U1RtH8b8GxojmmrTTdBgTkbKCM4RbrHOv0TYCHBdLLHCApU2KjqQ6pao6o1xcXJZQ+YDQhCtbswoX24vLqIPX27E9qHpEKV0qY8On8S/y/ccPxg1gLXWMZWL5AjIo+r6s1h1F0DXCQitwFZgEdEerBSwKrqfgAReRK42yo7MVJZRP4LeMZ62QjMC2m7wiozJBmBViC+CRtPcnl1Efv6ExO9LdnI7vWy4OUCjj1/nKaGcEylsWfKEYyq3qOqFapaTdDIui5McUFVb1LVSqvuXcBjqno3QWFYLiIjQ4y/wTIgi0hpSBMfBrZZx08DN4hImojMBxYDb4bTD0N8ObBv/BAVdmPE5RTL3inFf0s72x7ZOTMDTonIHSLSQHAksVVEHrbKa0aOJ0JVjwLfBF4Tka0Ep0P/ap3+7sjyNXAJ8GWrznbgSWAH8BzwRVWdWfElZwlDQz5ccUxu5hC4cn6hERcAVc56uZw9/7yLwb7EOxdKomJ1xoOamhqtra2d8rqv/PIZXqjbG4cezR4qLs5kb4/9c/6CNA9nlzk42Ncw9cUpjsMPK58oZfsTsRHaZ9sfxuGY+otCRDapas1458xeJIMtFATsT262rCCXrMwWDvZFntgu1UgbdDP/J9ls/3NyjeKMwBhsYbhDwWNP29luF2srcjnQv4/WITNLzu3OIO87sLfuYKK7MgYjMAZbaKjvwrFECMQwi2K2x80FZbkcHapnT9/s3h09wtzmXAJf76KhMTGG9akwAmOwhe7uIc7ImsOOnhNTXzwpysrCPCpyhSMDR9jbP7uSpk1GVUMRbfccpa8reb2VjcAYbCOnL/qUGQVpHs4tzaEn0MyJwf3siSy9d8qT0e+h719bk1pcwIRrMNjIgV0dOCWyEAFOgcsqiygrbGN//y5ODLba1LsZjCrzf5FLW5JOi0IxIxiDbXR3D1GRnsehvvAcvd5VUoArrZUDg8m1EpJsrKytYOefdiS6G2FhBMZgK9nOqfcMeBwOLqnOZG/vHpidcbnDprg9m4M/3J/oboSNmSIZbCWrf/LEX9keN2ur3OztTb4l1mSkfEMOA70zR4WNwBhspX5n54R2mOL0NM4q9XHIhFUIm/a/tiW6CxFhBMZgK51dgyzPKh1TXpmdyfyiXo4OmJg94VLQmUXD9pnl/2MExmA7ae3uUa+X5edQkNNCy1Dyr4IkExl9NrlG24gx8gKZXg/5mdH7bBgmp+lQH6UrcxgM+Ficl4Uj7TgDAch1Jz7y3UzCXwS5hVmJ7kZEGIEB7v3Y5YnugsEQHgcS3YHIMFMkg8FgG0ZgDAaDbRiBMRgMtmEExmAw2IYRGIPBYBtGYAwGg20YgTEYDLZhBMZgMNiGERiDwWAbKZ0XSUSagalyZhYBLXHoTrJgnje1ScTzVqnquIngU1pgwkFEaidKGpWKmOdNbZLtec0UyWAw2IYRGIPBYBtGYOChRHcgzpjnTW2S6nlnvQ3GYDDYhxnBGAwG2zACYzAYbCOlBEZEzhKRDSJSJyJ/EJGckHP3iMg+EdktIldMUF9E5NsiskdEdorIHSHlD1j1t4rIOSF1Pi0ie62fT9v/lKP6O93nfVREDorIFutntVWeLyK/tZ71TRFZGVKn3rrfFhGptf8pR/U3Ec97pdXmPhG52/6nHNVfu54312rvHRHZLiKfDanjD7n+6Wk/hKqmzA/wFnCxdfw54F7reDnwDpAGzAf2A85x6n8WeAxwWK/nWL8/APwJEOB8YKNVXkAwiGEBkG8d58+g530U+Og45d8Dvm4dnwG8HHKuHiiaof/fiJ4XcFptLQA81j2Wp8Dz/gPwHeu4GGgDPNbrnlg+Q0qNYIAlwGvW8YvAR6zjDwG/VtVBVT0I7APePU79LwD/oqoBAFVtCqn/mAZ5A8gTkVLgCuBFVW1T1Xbrnlfa8WATMN3nnYjlwDoAVd0FVItISWy6PC3i/bzvBvap6gFVHQJ+bd0rXtj1vApki4gAWQQFxhebLo8m1QRmO6feAB8D5lnH5cCRkOsarLLTWQhcLyK1IvInEVk8Rf1w27WL6T4vwLetqcEPRWQkz+s7wHUAIvJuoAqosM4p8IKIbBKRW2PzGGET7+dN1f/vg8Ay4ChQB9w58qUKeK33/xsicu10H2DGCYyIvCQi28b5+RDBYeRtIrIJyAaGImw+DRjQoKv1fwE/i23vI8fm572H4JTgXQSneV+zyu8jOErbAnwJ2Az4rXMXquo5wPuBL4rIe6b1gKeRhM9rKwl63iuALUAZsBp4MMS+U2W9/z8B3C8iC6fzfDMubYmqXjbFJZcDiMgS4CqrrJFT6g/Bb6fx8pU2AP/POv4t8PMp6jcC7z2t/JUp+hcRdj6vqh6zDgdF5OfAXVZ5F0F7FNYw+iBWwgxVbbR+N4nIbwkOzV8jRiTZ86aH0+50SMTzEnzW+zRodNknIgcJCtGbIf/fAyLyCnA2QRtPdMTLYBUno9iIUdZB0Fj7Oev1CkYbxQ4wvlHsvpA67wXeso6vYrSR902rvIDgmzHf+jkIFMyg5y21fgtwv/WmA8jjlNHvbwnanwAygeyQ4/XAlSn8vC6rrfmcMvKuSIHn/QnwDeu4hKA4FVnv4TSrvAjYyzSN2nH78MfpH3InsMf6uQ/LU9k6948ElXg38P6Q8meBspA32h8Jzks3AGeF/IN+bNWvA2pC6n+OoJFtH/DZGfa866zn2QY8DmRZ5WusNncTHNHlW+ULrDf2OwTtA/+Yys9rnfuAdW5/Cj1vGfBCyLmbrfILrLJ3rN+fn+4zmK0CBoPBNmackddgMMwcjMAYDAbbMAJjMBhswwiMwWCwDSMwBoPBNozAGAwG2zACYzAYbOP/B9vTNQe3MmOUAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# original data\n", "ssurgo_data[ssurgo_data.hzdept_r==15].plot(column='sandtotal_r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate categories for categorical data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If your data is only a subset of all of the data, the list of categories you get will likely not be complete.\n", "\n", "NOTE: The categories will be made unique and sorted internally if they are not already." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Somewhat poorly drained',\n", " 'Poorly drained',\n", " 'Well drained',\n", " 'Excessively drained']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this is only a subset of all of the classes\n", "ssurgo_data.drclassdcd.drop_duplicates().values.tolist()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# complete list of categories\n", "drclasses_complete = [\n", " 'Poorly drained',\n", " 'Somewhat poorly drained',\n", " 'Excessively drained',\n", " 'Subaqueous',\n", " 'Well drained',\n", " 'Somewhat excessively drained',\n", " 'Very poorly drained',\n", " 'Moderately well drained'\n", "]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "categorical_enums = {'drclassdcd': drclasses_complete}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convert data to grid\n", "\n", "See docs for [make_geocube](../geocube.rst#make-geocube)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "out_grid = make_geocube(\n", " vector_data=ssurgo_data,\n", " output_crs=\"epsg:32615\",\n", " group_by='hzdept_r',\n", " resolution=(-100, 100),\n", " categorical_enums=categorical_enums\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n",
       "Dimensions:                (drclassdcd_categories: 9, hzdept_r: 11, x: 15, y: 19)\n",
       "Coordinates:\n",
       "  * y                      (y) float64 4.597e+06 4.597e+06 ... 4.595e+06\n",
       "  * x                      (x) float64 7.004e+05 7.004e+05 ... 7.018e+05\n",
       "  * hzdept_r               (hzdept_r) float64 0.0 5.0 15.0 ... 105.0 120.0 150.0\n",
       "  * drclassdcd_categories  (drclassdcd_categories) object 'Excessively drained' ... 'nodata'\n",
       "    spatial_ref            int64 0\n",
       "Data variables:\n",
       "    drclassdcd             (hzdept_r, y, x) float64 -1.0 -1.0 -1.0 ... 7.0 7.0\n",
       "    hzdepb_r               (hzdept_r, y, x) float64 nan nan nan ... 180.0 180.0\n",
       "    claytotal_r            (hzdept_r, y, x) float64 nan nan nan ... 21.0 21.0\n",
       "    sandtotal_r            (hzdept_r, y, x) float64 nan nan nan ... 10.0 10.0\n",
       "    silttotal_r            (hzdept_r, y, x) float64 nan nan nan ... 69.0 69.0\n",
       "Attributes:\n",
       "    grid_mapping:  spatial_ref
" ], "text/plain": [ "\n", "Dimensions: (drclassdcd_categories: 9, hzdept_r: 11, x: 15, y: 19)\n", "Coordinates:\n", " * y (y) float64 4.597e+06 4.597e+06 ... 4.595e+06\n", " * x (x) float64 7.004e+05 7.004e+05 ... 7.018e+05\n", " * hzdept_r (hzdept_r) float64 0.0 5.0 15.0 ... 105.0 120.0 150.0\n", " * drclassdcd_categories (drclassdcd_categories) object 'Excessively drained' ... 'nodata'\n", " spatial_ref int64 0\n", "Data variables:\n", " drclassdcd (hzdept_r, y, x) float64 -1.0 -1.0 -1.0 ... 7.0 7.0\n", " hzdepb_r (hzdept_r, y, x) float64 nan nan nan ... 180.0 180.0\n", " claytotal_r (hzdept_r, y, x) float64 nan nan nan ... 21.0 21.0\n", " sandtotal_r (hzdept_r, y, x) float64 nan nan nan ... 10.0 10.0\n", " silttotal_r (hzdept_r, y, x) float64 nan nan nan ... 69.0 69.0\n", "Attributes:\n", " grid_mapping: spatial_ref" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "out_grid" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# mask nodata and plot\n", "clay_slice = out_grid.claytotal_r.sel(hzdept_r=15)\n", "clay_slice.where(clay_slice!=out_grid.claytotal_r.rio.nodata).plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with categorical data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because the data needs to be numerical for conversion from vector to raster, the code displays the categories as numbers. To convert back to strings, you will need to use the categories provided to convert back." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "drclassdcd_slice = out_grid.drclassdcd.sel(hzdept_r=15)\n", "drclassdcd_slice.where(drclassdcd_slice!=out_grid.drclassdcd.rio.nodata).plot()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "drclassdcd_string = out_grid['drclassdcd_categories'][out_grid['drclassdcd'].astype(int)]\\\n", " .drop('drclassdcd_categories')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n",
       "Dimensions:                (drclassdcd_categories: 9, hzdept_r: 11, x: 15, y: 19)\n",
       "Coordinates:\n",
       "  * y                      (y) float64 4.597e+06 4.597e+06 ... 4.595e+06\n",
       "  * x                      (x) float64 7.004e+05 7.004e+05 ... 7.018e+05\n",
       "  * hzdept_r               (hzdept_r) float64 0.0 5.0 15.0 ... 105.0 120.0 150.0\n",
       "  * drclassdcd_categories  (drclassdcd_categories) object 'Excessively drained' ... 'nodata'\n",
       "    spatial_ref            int64 0\n",
       "Data variables:\n",
       "    drclassdcd             (hzdept_r, y, x) object 'nodata' ... 'Well drained'\n",
       "    hzdepb_r               (hzdept_r, y, x) float64 nan nan nan ... 180.0 180.0\n",
       "    claytotal_r            (hzdept_r, y, x) float64 nan nan nan ... 21.0 21.0\n",
       "    sandtotal_r            (hzdept_r, y, x) float64 nan nan nan ... 10.0 10.0\n",
       "    silttotal_r            (hzdept_r, y, x) float64 nan nan nan ... 69.0 69.0\n",
       "Attributes:\n",
       "    grid_mapping:  spatial_ref
" ], "text/plain": [ "\n", "Dimensions: (drclassdcd_categories: 9, hzdept_r: 11, x: 15, y: 19)\n", "Coordinates:\n", " * y (y) float64 4.597e+06 4.597e+06 ... 4.595e+06\n", " * x (x) float64 7.004e+05 7.004e+05 ... 7.018e+05\n", " * hzdept_r (hzdept_r) float64 0.0 5.0 15.0 ... 105.0 120.0 150.0\n", " * drclassdcd_categories (drclassdcd_categories) object 'Excessively drained' ... 'nodata'\n", " spatial_ref int64 0\n", "Data variables:\n", " drclassdcd (hzdept_r, y, x) object 'nodata' ... 'Well drained'\n", " hzdepb_r (hzdept_r, y, x) float64 nan nan nan ... 180.0 180.0\n", " claytotal_r (hzdept_r, y, x) float64 nan nan nan ... 21.0 21.0\n", " sandtotal_r (hzdept_r, y, x) float64 nan nan nan ... 10.0 10.0\n", " silttotal_r (hzdept_r, y, x) float64 nan nan nan ... 69.0 69.0\n", "Attributes:\n", " grid_mapping: spatial_ref" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "out_grid['drclassdcd'] = drclassdcd_string\n", "out_grid" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
drclassdcdhzdepb_rclaytotal_rsandtotal_rsilttotal_r
hzdept_rxy
0.0700350.04597050.0nodataNaNNaNNaNNaN
4596950.0Well drained5.026.038.036.0
4596850.0Well drained5.026.038.036.0
4596750.0Well drained5.026.038.036.0
4596650.0Well drained5.026.038.036.0
\n", "
" ], "text/plain": [ " drclassdcd hzdepb_r claytotal_r sandtotal_r \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 nodata NaN NaN NaN \n", " 4596950.0 Well drained 5.0 26.0 38.0 \n", " 4596850.0 Well drained 5.0 26.0 38.0 \n", " 4596750.0 Well drained 5.0 26.0 38.0 \n", " 4596650.0 Well drained 5.0 26.0 38.0 \n", "\n", " silttotal_r \n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 NaN \n", " 4596950.0 36.0 \n", " 4596850.0 36.0 \n", " 4596750.0 36.0 \n", " 4596650.0 36.0 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdf = out_grid.drop(['spatial_ref', 'drclassdcd_categories']).to_dataframe()\n", "pdf.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Make sure all categories are represented\n", "\n", "To do this, convert the column type to categorical beforehand and make sure that\n", "you include all of the possible categories." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "cat_dtype = pandas.api.types.CategoricalDtype(out_grid.drclassdcd_categories.values)\n", "pdf['drclassdcd'] = pdf['drclassdcd'].astype(cat_dtype)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
hzdepb_rclaytotal_rsandtotal_rsilttotal_rdrclassdcd_Excessively draineddrclassdcd_Moderately well draineddrclassdcd_Poorly draineddrclassdcd_Somewhat excessively draineddrclassdcd_Somewhat poorly draineddrclassdcd_Subaqueousdrclassdcd_Very poorly draineddrclassdcd_Well draineddrclassdcd_nodata
hzdept_rxy
0.0700350.04597050.0NaNNaNNaNNaN000000001
4596950.05.026.038.036.0000000010
4596850.05.026.038.036.0000000010
4596750.05.026.038.036.0000000010
4596650.05.026.038.036.0000000010
\n", "
" ], "text/plain": [ " hzdepb_r claytotal_r sandtotal_r silttotal_r \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 NaN NaN NaN NaN \n", " 4596950.0 5.0 26.0 38.0 36.0 \n", " 4596850.0 5.0 26.0 38.0 36.0 \n", " 4596750.0 5.0 26.0 38.0 36.0 \n", " 4596650.0 5.0 26.0 38.0 36.0 \n", "\n", " drclassdcd_Excessively drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Moderately well drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Poorly drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Somewhat excessively drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Somewhat poorly drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Subaqueous \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Very poorly drained \\\n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 \n", " 4596950.0 0 \n", " 4596850.0 0 \n", " 4596750.0 0 \n", " 4596650.0 0 \n", "\n", " drclassdcd_Well drained drclassdcd_nodata \n", "hzdept_r x y \n", "0.0 700350.0 4597050.0 0 1 \n", " 4596950.0 1 0 \n", " 4596850.0 1 0 \n", " 4596750.0 1 0 \n", " 4596650.0 1 0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "training_df = pandas.get_dummies(pdf, columns=['drclassdcd'])\n", "training_df.head()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['hzdepb_r', 'claytotal_r', 'sandtotal_r', 'silttotal_r',\n", " 'drclassdcd_Excessively drained', 'drclassdcd_Moderately well drained',\n", " 'drclassdcd_Poorly drained', 'drclassdcd_Somewhat excessively drained',\n", " 'drclassdcd_Somewhat poorly drained', 'drclassdcd_Subaqueous',\n", " 'drclassdcd_Very poorly drained', 'drclassdcd_Well drained',\n", " 'drclassdcd_nodata'],\n", " dtype='object')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "training_df.columns" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 4 }