{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# `osbng` Create Grids Examples\n", "\n", "* The [`osbng`](https://github.com/OrdnanceSurvey/osbng-py) Python package supports geospatial grid indexing and interaction with Ordnance Survey's British National Grid (BNG) index system.\n", "* The `osbng.grids` module provides functionality to generate BNG grid square data within specified bounds. This notebook provides examples of creating data at a range of resolutions and accross custom bounds." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import geopandas as gpd\n", "import matplotlib.pyplot as plt\n", "from shapely.geometry import shape\n", "\n", "from osbng.bng_reference import BNGReference\n", "from osbng.grids import BNG_BOUNDS, bbox_to_bng_iterfeatures, bng_grid_100km" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `osbng.bng_reference.BNGReference`\n", "\n", "* The `osbng.bng_reference.BNGReference` object encapsulates a BNG reference and the associated grid square geometry. \n", "* The `BNGReference` object can be converted to a GeoJSON-like Feature object using the [`__geo_interface__`](https://gist.github.com/sgillies/2217756) property." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'type': 'Feature',\n", " 'properties': {'bng_ref': 'SU'},\n", " 'geometry': {'type': 'Polygon',\n", " 'coordinates': (((500000.0, 100000.0),\n", " (500000.0, 200000.0),\n", " (400000.0, 200000.0),\n", " (400000.0, 100000.0),\n", " (500000.0, 100000.0)),)}}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "BNGReference(bng_ref_string=\"SU\").__geo_interface__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `osbng.grids`\n", "\n", "* Grid square data covering the BNG index system bounds is provided with the `osbng` package as iterators at 100km, 50km, 10km, 5km and 1km resolutions.\n", "* See `bng_grid_` in `osbng.grids` module.\n", "* Each iterator supports the generation of `BNGReference` objects as GeoJSON-like Features using the `__geo_interface__` protocol.\n", "* The `__geo_interface__` protocol used to represent `BNGReference` objects supports integration with Python geospatial libraries and tools such as [Shapely](https://github.com/shapely/shapely) and [GeoPandas](https://github.com/geopandas/geopandas)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Convert the iterator to a list to generate the Features\n", "bng_grid_100km_list = list(bng_grid_100km)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'type': 'Feature', 'properties': {'bng_ref': 'SV'}, 'geometry': {'type': 'Polygon', 'coordinates': (((100000.0, 0.0), (100000.0, 100000.0), (0.0, 100000.0), (0.0, 0.0), (100000.0, 0.0)),)}}\n" ] } ], "source": [ "# Return the first Feature\n", "print(bng_grid_100km_list[0])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a Shapely Geometry object from a BNGReference object Feature\n", "shape(bng_grid_100km_list[0][\"geometry\"])" ] }, { "cell_type": "code", "execution_count": null, "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", "
geometrybng_ref
0POLYGON ((100000 0, 100000 100000, 0 100000, 0...SV
1POLYGON ((200000 0, 200000 100000, 100000 1000...SW
2POLYGON ((300000 0, 300000 100000, 200000 1000...SX
3POLYGON ((400000 0, 400000 100000, 300000 1000...SY
4POLYGON ((500000 0, 500000 100000, 400000 1000...SZ
\n", "
" ], "text/plain": [ " geometry bng_ref\n", "0 POLYGON ((100000 0, 100000 100000, 0 100000, 0... SV\n", "1 POLYGON ((200000 0, 200000 100000, 100000 1000... SW\n", "2 POLYGON ((300000 0, 300000 100000, 200000 1000... SX\n", "3 POLYGON ((400000 0, 400000 100000, 300000 1000... SY\n", "4 POLYGON ((500000 0, 500000 100000, 400000 1000... SZ" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a GeoPandas GeoDataFrame from an iterator\n", "# or list of BNGReference object Features\n", "# This example uses the list as the iterator has been consumed above\n", "# Set the coordinate reference system to British National Grid (EPSG: 27700)\n", "# https://epsg.io/27700\n", "gdf = gpd.GeoDataFrame.from_features(bng_grid_100km_list, crs=27700)\n", "\n", "gdf.head()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def plot_aesthetics(ax: plt.Axes) -> None:\n", " \"\"\"Set the aesthetics for the matplotlib axes.\n", "\n", " Sets the axis labels, removes the figure frame, rotates x-axis tick labels,\n", " and adds whitespace between labels and ticks.\n", "\n", " Args:\n", " ax (plt.Axes): The matplotlib axes to set aesthetics for.\n", " \"\"\"\n", " # Set axis labels\n", " ax.set_xlabel(\"Easting\", fontsize=14)\n", " ax.set_ylabel(\"Northing\", fontsize=14)\n", "\n", " # Remove the figure frame but keep the ticks and tick labels\n", " for spine in ax.spines.values():\n", " spine.set_visible(False)\n", "\n", " # Disable scientific notation for both axes\n", " ax.ticklabel_format(style=\"plain\", axis=\"both\")\n", "\n", " # Rotate x axis tick labels by 90 degrees anticlockwise\n", " plt.xticks(rotation=90)\n", "\n", " # Add whitespace between x and y axis labels and tick labels\n", " ax.xaxis.labelpad = 20\n", " ax.yaxis.labelpad = 20" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAODCAYAAAB5Y5EiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoxZJREFUeJzs3X9czff/P/7bUaTaJOVXflUkpTj9MEubCsVCxmsv5kc0LZHPQtn8WkS0zY94TXu1lw2hvNhmzGItv9JUfqwcL9Hbj73KjxRjaX6W6vn9Yy/Pr6PfdfR8ntyul8u5bOd5Hs653XvydOt5nicKQRAEEBEREclMM6kDEBEREVWGJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZIklhYiIiGSJJYWIiIhkiSWFiIiIZElX6gDUdFy6dAn37t2TOobG3blzByYmJlLH0DjOpV04l3ZpinO9+uqrsLKyatTXZEkhjbh06RJ69uwpdQwiInqBLl682KhFhSWFNOLpGZS4uDjY2NhInEZz9u/fj7CwMERERMDb21vqOBrDubQL59IuTXGu7OxsTJo0qdHPlrOkkEbZ2NjA0dFR6hgak52dDQCwsLDgXFqAc2kXzkU14YWzREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLCkka+bm5sjKylLb5u7ujoSEBISHh2Pu3LkSJaufmuZRKBTYs2eP+JggCLCwsICpqWkjJ6272sz2yy+/iI9FR0fDz8+vkVPWTXUzAUBCQgL69esHa2trWFpaYtq0aSgqKpIiap3VtL/atWsHpVIJW1tbjBs3DoWFhRIlrb+nM/r5+SE6OlrqOA327DwKhQKnT58WH7t//z5eeeUVODs7S5hQ81hSiGTEyckJGzduFO8fOnRIKwpKbZibm2PevHlSx9CYxMREBAYGYsOGDbhw4QIuXrwIPT09DB8+HIIgSB2vwSZPngyVSoWzZ8+irKwMy5cvlzoSPcPJyQmbNm0S7+/YsQM2NjYSJnoxWFKIZMTNzQ2XLl1Cfn4+AGDTpk2YOnWqxKk0Y8yYMXj8+DF2794tdRSNWL58ORYtWgQHBwcAgK6uLtasWYPc3FwcPnxY4nSao6Ojg0GDBuHChQtSR6Fn/P3vf8ePP/6I4uJiAMDmzZubzLHiWbpSByCqyTvvvIOWLVuK9y9fvixhmoarbh6FQoFJkyZh69atCAwMxKlTpxAREYGwsDApotZZTbN9+umnmDVrFnx8fKSIVy9VzZSZmYn169errW3RogWcnJyQmZmJwYMHN2rO+qjNn61Hjx7hhx9+wOuvv96Y0agGhoaGGDJkCPbs2YO+fftCEIQmeSaFJYVk77vvvoOdnZ14393dXbowGlDTPH5+fvDy8sIrr7yCsWPHQkdHp5ET1l9Ns3l5eaFTp05qp6nlrrqZFApFhfXa9FZPdbNt3boVhw4dAvDXGb758+c3djyqwdSpUxEeHo6+ffvivffekzrOC8GSQiQznTt3RteuXbF06VKkpaVJHUfjPvvsM4waNQrBwcFSR2kQR0dHpKWlQalUittKSkqQmZmJWbNmSRdMQyZPnozVq1dLHYOqMWDAAOTl5SE7Oxvnz59HRkaG1JE0jiWFSIaWL1+OzMxM9OjRA7m5uVLH0SgnJye88cYbiImJgZubm9Rx6m3hwoV4//33MWDAACiVSpSWliI0NBRdu3bFoEGDpI5HL4nPP/8ct2/fxquvvip1lBeCF86SVvvXv/6Fzp07i7eoqCipI2mEs7Mzpk2bJnWMF2bFihXIy8uTOkaDeHt7IyYmBv7+/rC2toaVlRUePXqE/fv3V/o2EDW+0tJS8ZqbsLAwtWPFt99+K3G6unt2nqcGDx6McePGSZToxeOZFJK1ys4iJCcnAwBGjBiB8PDwRs3TUDXNUxlzc3Pcvn37BabSjLrM1r17d5SUlDRCqoapbiYAGDVqFEaNGtV4gTSoPr8XtUl+fj7u3buHTp06ITY2Vuo4DVabedzd3fHrr782brAXjGdSiIioSYmKioK7uztWr14NfX19qeM0WFObpy54JoWIiJqUkJAQhISESB1DY5raPHXBMylEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSy9NSUlJScHIkSNhZmYGhUKBPXv2iI89efIE8+bNg729PQwNDWFmZobJkyfjxo0bas9RXFyMDz74AKampjA0NISPjw+uX7+utqawsBC+vr4wMjKCkZERfH19cffuXbU1V69exciRI2FoaAhTU1MEBwejpKREbc3Zs2fh5uYGfX19dOrUCcuWLYMgCGprjh49CicnJ7Rs2RKWlpb48ssvG/6FIiIikomXpqQ8ePAAffv2RXR0dIXHHj58iMzMTISFhSEzMxPff/89Ll68CB8fH7V1s2fPxu7du7Fjxw4cO3YM9+/fx4gRI1BWViaumTBhAlQqFRITE5GYmAiVSgVfX1/x8bKyMgwfPhwPHjzAsWPHsGPHDuzatQuhoaHimj///BOenp4wMzPDqVOnsH79eqxevRpRUVHimpycHHh7e+PNN9/E6dOnsXDhQgQHB2PXrl2a/LIRERFJRlfqAI3lrbfewltvvVXpY0ZGRjhw4IDatvXr1+O1117D1atX0bVrVxQVFWHjxo3Ytm0bhgwZAgCIi4tDly5dcPDgQQwdOhTZ2dlITEzE8ePH0b9/fwDAV199BRcXF1y4cAHW1tZISkrC+fPnce3aNZiZmQEA1qxZAz8/P6xYsQKtWrVCfHw8Hj9+jNjYWOjp6cHOzg4XL15EVFQUQkJCoFAo8OWXX6Jr165Yt24dAMDGxga//vorVq9ejb/97W8v6KtIRETUeF6aklJXRUVFUCgUaN26NQAgIyMDT548gZeXl7jGzMwMdnZ2SEtLw9ChQ5Geng4jIyOxoADA66+/DiMjI6SlpcHa2hrp6emws7MTCwoADB06FMXFxcjIyICHhwfS09Ph5uYGPT09tTULFixAbm4uLCwskJ6erpbl6ZqNGzfiyZMn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yesqBEEQJHllalIOHDgALy8vqWMQEdELlJSUBE9Pz0Z7PZ5JIY0wMTEBAERERMDCwkLiNJqTmpqKmJgYzJgxA66urlLH0RjOpV04l3ZpinPl5OQgLCxMPNY3FpYU0ihvb284OjpKHUOjYmJi4OrqiokTJ0odRaM4l3bhXNqlqc2VmZmJsLCwRn9dXjhLREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQrJmbm6OXr16obS0VNzm7OyM5ORkhIeHo127dlAqleLt1q1bEqatnepmAoADBw5g4MCBsLS0hLOzM1577TVs2LBBorS1V9O+mjt3rtr62NhYvPPOO40ds97qOp/c1WWerVu3wtzcHNnZ2VJErbOSkhLMmzcPPXr0gI2NDezs7LB582YAQG5uLnR1ddWOG19//bXEiatX3TwAcPPmTUydOhWWlpbo27cv+vTpgxkzZuDOnTsSptYMXakDENWkuLgYGzduRGBgYIXHJk+ejNWrV0uQqmGqmikpKQl+fn747rvvMGDAAADAlStX8MUXX0gRs86q21dNQVObrzbz/OMf/8A///lPHD16FN26dWvEdPXn5+eH4uJinDlzBoaGhsjNzcVbb72FJ0+ewMvLC61bt4ZKpZI6Zq1VN8+kSZMwcOBATJw4EZcuXYKOjg5KSkrwj3/8A3l5eTAxMZE6foPwTArJ3tKlSxEREYGHDx9KHUVjqppp2bJlWLx4sVhQAKBbt25YuXJlY0esl6a4r57V1OaraZ4lS5Zg8+bNSElJ0ZqCcvnyZezZswcbNmyAoaEhgL/OGq1ZswYRERESp6u7mubZvn07jI2NsXjxYujo6AAAWrRogQ8//BB9+vSRMrpGsKSQ7Dk6OmLgwIFYu3Zthce2bt0qnrJ97733JEhXP1XNlJmZif79+0uUquFqu6+USiUWL14sQcKGqW4+bVTdPLGxsfjmm2+QnJyM9u3bS5CufjIzM2FlZVXhDIKLiwuuX7+O33//HXfv3lX7vXjt2jWJ0taspnkyMjK0+phRE5YU0grLly/HunXrKrzHOnnyZKhU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bzfUtL+0zdatW2FpaQl7e3vY2NhgxIgRCA0NxfTp0wEAhYWFaseN568tkpua5nlKT08P8+bNQ6dOnSRK+gIIRBqQkZEhABAyMjKkjqJRcXFxAgAhLi5O6igaxbm0C+fSLk1xLqmO8TyTQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREsqTbkF9saWlZ45pmzZqhVatWsLa2xujRozF27NiGvCQRERG9JBpUUsrLy1FaWoobN2789WS6ujA1NcXt27dRWloKADAzM8OtW7egUqnwzTff4Ouvv0ZCQgJatGjR8PRERETUZDXo7R6VSoWOHTtiyJAhSE9PR3FxMW7cuIHi4mKkpaVh8ODBMDMzw9WrV3Hx4kV4e3vj0KFDWLNmjabyExERURPVoJIyb948FBcXIzExEf3794dCoQAAKBQKvP7660hMTMTjx48xf/589OjRA99++y26deuGHTt2aCQ8ERERNV0NKik//PADvL290axZ5U+jo6MDb29v/PDDDwCAli1bYtCgQbh8+XJDXpaIiIheAg0qKX/++Sf+/PPPatcUFRWhqKhIvG9qatqQlyQiIqKXRINKiq2tLXbu3IkrV65U+nhubi527twJW1tbcdvVq1fRtm3bhrwsERERvQQa9OmehQsX4p133kHfvn0REBAAFxcXtG3bFr///jvS0tLw9ddf4969e1i4cCEAoKSkBElJSfDy8tJIeCIiImq6GlRSxowZg6+//hqzZ8/GmjVrxAtnAUAQBLzyyiv417/+hTFjxgAAHj58iI0bN6J3794NS01ERERNXoNKCgBMnToVf/vb3/DDDz/gzJkz+PPPP9GqVSv07dsXo0aNgpGRkbi2devWGDVqVENfkmRs//79yM7OljqGxqSmpqr9t6ngXNqFc2mXpjhXTk6OJK+rEARBkOSVqUk5cOAA38YjImrikpKS4Onp2Wiv1+AzKUQAYGJiAgCIiIiAhYWFxGk0JzU1FTExMZgxYwZcXV2ljqMxnEu7cC7t0hTnysnJQVhYmHisbywNLiklJSXYs2cPTp06hbt376KsrKzCGoVCgY0bNzb0pUgLeHt7w9HRUeoYGhUTEwNXV1dMnDhR6igaxbm0C+fSLk1trszM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rKys4OnpiX379kkdt9ZqM9fT28GDB6WOWytP89ra2kJXV1e8P27cOADAb7/9hmbNmmH58uUSJ6296mbKzc1V22ZjY6NVs9VEV+oARNUpKCjA9OnTcerUKXTr1g0AkJmZCYVCAQD4888/8eOPP8Le3h7ffvstpkyZImXcWqtprs8//xwjRowAAAQFBWH16tVYtWqVZHlro7qZlixZgqSkJCQmJqJz584QBAGHDx9GQUEBunbtKnHy6tVlX6WkpGDcuHGIjo7G3/72N8ky10Zd5tImKpUKAJCbmwtnZ2fx/lObNm2Cm5sbNm3ahEWLFonzyll1M+Xm5qJ169bitnv37sHKygqjR49G7969Gz+shvFMCslafn4+dHV1YWJiIm5zdHQUDyzbt2/HkCFDEBoaio0bN0oVs85qmuup0tJS3Lt3D8bGxo0dsc6qmunhw4dYuXIlNm7ciM6dOwMAFAoFBg8ejNdee02quLVW230FAAMHDsTSpUvx6aefNmbEeqnLXE1FWVkZtmzZgujoaLzyyis4cuSI1JE07t69exAEAa1atZI6ikawpJCs9e3bFy4uLujatStGjx6NVatWIS8vT3x848aNmDp1KkaOHIkLFy7g4sWLEqatvZrmCg4OhlKpRMeOHXHmzBnMnDlTwrS1U9VM586dQ4sWLWBrayt1xHqpaV89r1+/fjh37lwjJqyf2v4efHrLzc2VLqyGJCYmolOnTujduzf8/f216hub6ty9exdKpRL29vawsLDAtGnT0KVLF6ljaQRLCslas2bNsGvXLqSlpWHYsGFITU1F7969cfnyZZw9exb5+fnw8vJC8+bN4evri02bNkkduVaqmwv461S7SqXCrVu3MHr0aEydOlXixDWraiYAWv3deU376nmCIDRywvqp7e/Bpzdzc3NpA2vA029qAGDSpEnYt28fCgsLJU7VcE/f7nl6TExISMDevXuljqURvCaFtEKvXr3Qq1cvBAYGYtiwYdi7dy+uXLmC+/fvo3v37gCAJ0+eoLy8HMuXL4eurnb81q5srmcpFAqMGzcOq1evlihh3T0/U2JiIoqLi3H+/HmtPZsC1Lyvnjp16hTs7OwaOV391XYubXfr1i3s378fp06dwieffALgr2PG9u3bteJMZW21adMGnp6e+Pnnn+Hj4yN1nAbjmRSStby8PKSmpor3CwsLkZOTg+7duyM+Ph7Hjx9Hbm4ucnNzkZeXh06dOmH//v0SJq6d6uZ63qFDh2Btbd2Y8eqlqpn69u2LuXPnIiAgADdu3BAf379/P06cOCFF1Dqpy7765ZdfEB4ejnnz5jVmxHqpy1xNwdatW/H222/j2rVr4jFj586dTeYtn6eKi4uRmpqqFceM2tCObzfppVVaWoply5YhJycHBgYGKC0txZQpU/D48WN069YNvXr1Ulvv6+uLr7/+WvbfQVQ116hRo7B27VoEBwfj448/Rnl5OYyNjbFlyxapI9eoupl8fHzQtm1beHl5oaysDAqFAg4ODlpxgWlt99WDBw/QrVs3fPXVV1rxqZjazvXUggULxI/xaqNNmzbhs88+U9s2bNgwTJ06FZmZmXB0dJQoWcM9vSYF+KukeHh4YMaMGdKG0hCWFJK1bt264eeff670scoOmLNmzcKsWbNedKwGq26u5OTkxg2jIdXNpFAoEBwcjODg4EZO1XBNcV8BTXeup8zNzXH79m3x/vnz5yus0dXVxa1btxozVoM8P9PTbaWlpRIlevH4dg8RERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSS0oVPvnkEygUCsyePVvcJggCwsPDYWZmBn19fbi7u+PcuXNqv664uBgffPABTE1NYWhoCB8fH1y/fl1tTWFhIXx9fWFkZAQjIyP4+vri7t27amuuXr2KkSNHwtDQEKampggODkZJSYnamrNnz8LNzQ36+vro1KkTli1bBkEQNPp1ICIikgpLSiVOnTqFDRs2oE+fPmrbV65ciaioKERHR+PUqVPo0KEDPD09ce/ePXHN7NmzsXv3buzYsQPHjh3D/fv3MWLECJSVlYlrJkyYAJVKhcTERCQmJkKlUsHX11d8vKysDMOHD8eDBw9w7Ngx7NixA7t27UJoaKi45s8//4SnpyfMzMxw6tQprF+/HqtXr0ZUVNQL/MoQERE1Hl2pA8jN/fv3MXHiRHz11VdYvny5uF0QBKxbtw6LFi3CmDFjAABbtmxB+/btsX37dgQGBqKoqAgbN27Etm3bMGTIEABAXFwc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PPHx4OBg8dTnF198IWHS2qtqpvPnz0NPTw+9evWSOmK91GVfKZVK7N27V8K0dVfTfNqmpnmCgoLQpk0bbN26tUkVlLt376r9Prx27ZrUkRokMzMT/fv3lzrGC8OSQrLWrFkz7Nq1C2lpaRg2bBhSU1PRu3dvXL58GcBfb/eoVCqoVCrMnDlT4rS1U9VMANROtT969Eh8H3rYsGFSxa21uuwrlUqlVdcQATXPp21qmmfYsGE4fPgwzp49K3FSzXr6ds/TW5cuXaSO1GDPHjd27twJpVIJCwsLbN68WcJUmsGSQlqhV69eCAwMxJ49e/D6669r3XfhlXl+psTERDx+/BgXLlwAAOjr60OlUuGf//wnbt++LXHa2muK++pZTW2+quZ59913ERUVBS8vL627huNl4uDggBMnToj3x40bB5VKBTc3Nzx48EDCZJrBkkKylpeXh9TUVPF+YWEhcnJy0L17dwlTNUxVM/Xt2xchISF4//331U67a8uBpinuq2c1tflqM8/48ePxj3/8A0OHDsXp06eliEk1mDBhAm7fvo0VK1agrKxM3P7w4UMJU2lO03mjkZqk0tJSLFu2DDk5OTAwMEBpaSmmTJmCUaNGYe3atVLHq5fqZvLx8cHnn3+OYcOG4cmTJzAxMUGrVq2wYsUKqWPXqCnuq2dVN9+qVau04pMvz6rt/ho3bhwUCgWGDh2Kn376CU5OThKmpucZGhoiJSUFCxYsQI8ePWBkZAR9fX04ODjg7bffljpeg7GkkKx169YNP//8c6WPJScnN24YDaluJoVCgVmzZmHWrFmNnKrh6rqvYmNjX2wgDatqvocPH+LSpUvo0aOHBKnqry77a+zYsRg7dmwjpNIcc3PzCm+TVrZNm1SVv2PHjlr356m2+HYPEVE97dy5Ew4ODpgxYwbMzc2ljkPU5PBMChFRPY0bN078qZ9EpHk8k0JERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESypCt1AGpa9u/fj+zsbKljaExqaqraf5sKzqVdOJd2aYpz5eTkSPK6CkEQBElemZqUAwcOwMvLS+oYRET0AiUlJcHT07PRXo9nUkgjTExMAAARERGwsLCQOI3mpKamIiYmBjNmzICrq6vUcTSGc2kXzqVdmuJcOTk5CAsLE4/1jYUlhTTK29sbjo6OUsfQqJiYGLi6umLixIlSR9EozqVdOJd2aWpzZWZmIiwsrNFflxfOEhERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpBAREZEssaQQERGRLLGkEBERkSyxpJBW+P777+Hk5ASlUgkbGxsMHjwY5eXlcHd3R0JCgtTx6qy6eVq0aIFbt26Ja//73/+iWbNmeOeddyRMXDvVzWVqaoqioiJx7TvvvIPY2FjpwtZBVXMJgoCVK1eiV69esLGxgbW1NVauXAlBEKSOXGvV7TNLS0solUr06tULH3/8sdRRa0WpVEKpVMLW1ha6urri/XHjxiE3NxempqZSR6yTmuZRKBR4++231X7N4sWLoVAotPLY+DxdqQMQ1aSgoADTp0/HqVOn0K1bNwBAZmYmFAqFxMnqp6Z5+vTpg23btiE0NBQAsGnTJjg5OUmWt7ZqmuvVV1/Fp59+ik8++UTKmHVW3VyLFi1CSkoKjh07BlNTU9y+fRtvv/027t69i8jISImT16ymffb5559jxIgRuHv3LhwcHNC/f3+MHDlSysg1UqlUAIDc3Fw4OzuL959u0zY1zdOmTRucP38eN2/eRPv27VFeXo4dO3bA3t5emsAaxjMpJHv5+fnQ1dWFiYmJuM3R0VFrS0pN87z33nviGYby8nLs3LkTEyZMkCJqndQ014IFC/DVV1/hxo0bUkWsl6rmevDgAaKiorBhwwbxu3NTU1Ns2LABa9euxYMHD6SKXGu1/bPVunVr9OvXDxcuXGjsiFQDhUKBSZMmYevWrQCAgwcPwsHBAW3atJE4mWawpJDs9e3bFy4uLujatStGjx6NVatWIS8vT+pY9VbTPN26dUP79u1x4sQJJCUlwdnZGcbGxhImrp2a5jIzM8O0adOwZMkSCVPWXVVznT9/Hnp6erC1tVVbb2trixYtWuD8+fMSJa692v7Zun79Oo4dO6YVZ/ReRn5+ftiyZQuAv868Tp06VeJEmsOSQrLXrFkz7Nq1C2lpaRg2bBhSU1PRu3dvXL58Wepo9VKbeaZOnYqNGzdi48aNWnPAqc1c8+bNw48//oj/+7//kzBp3VQ1FwCtPZv3VE37LDg4GEqlEqNHj0ZYWBg8PDwkTkyV6dq1K8zMzJCQkICMjAx4enpKHUljeE0KaY1evXqhV69eCAwMxLBhw7B3716pIzVIdfOMGTMGCxYsgJ6eHgYPHiyeytUG1c1lZGSEjz76CAsWLICOjo6EKevu+bkSExPx+PFjnD9/Xu1syvnz51FSUlLhDIucVbXPnl6TQvI3depUvPfee5g+fTqaNWs65x+aziTUZOXl5SE1NVW8X1hYiJycHHTv3l3CVPVXm3latmyJtWvX4vPPP9eaA05t99PMmTNx+vRpZGRkNHbEeqlqrr59+2LWrFkIDAzE7du3AQB37txBYGAgZs2aBUNDQ6ki11pT+7P1Mhs9ejTmzp2L6dOnSx1Fo3gmhWSvtLQUy5YtQ05ODgwMDFBaWoopU6Zg1KhRWLt2Lfz8/NCyZUtx/bfffgsXFxcJE1evpnmeGjNmjIQp6662c+np6SEiIgKTJ0+WMG3tVTfXyJEjsXLlSgwYMAA6OjooKyvDe++9h3nz5kkdu1Zqu8+aksLCQnTu3Fm836VLF6Snp0uYSDP09PS05vddXbCkkOx169YNP//8c6WPJScnN24YDajPPH5+fvDz83txoTSgLnP5+vrC19e3EVI1XHVzNWvWDPPnz8f8+fMbOZVmNLU/W88yNzcXz3A9u62srEyiRA1T1TzPb3tK2/ffU9pxHpmIiIheOiwpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpREREJEssKURERCRLLClEREQkSywpz/jkk0/Qr18/vPrqq2jXrh3efvttXLhwQW2NIAgIDw+HmZkZ9PX14e7ujnPnzqmtKS4uxgcffABTU1MYGhrCx8cH169fV1tTWFgIX19fGBkZwcjICL6+vrh7967amqtXr2LkyJEwNDSEqakpgoODUVJSorbm7NmzcHNzg76+Pjp16oRly5ZBEATNfVGIiIgkwpLyjKNH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3r0LOzs7qeI22Pjx43Hnzh189tln4rbDhw/j+++/x/z58yVMpjkKhQJhYWEwNTVFTEyM1HE0gp/uIdkqLS3FsmXLkJOTAwMDA5SWlmLKlCkYNWoURo4ciZUrV8LV1RUAkJOTg/Xr1+P999+XOHXtVDfb2rVr1dbOmDED0dHR+P777/G3v/1NosS1U9VcgwYNwqRJkzBr1izo6+vjyZMnGDZsGGbOnCl15Fqpbn9pq+pm8vLywkcffQQHBwc0a9YMRkZG2L17t1a/LWJoaIijR48iNDQUFhYWKC0txePHj6FSqdCpUyep42mMQqHAmjVrMG7cOAQGBsLAwEDqSA3CkkKy1a1bN/z888+VPtasWTPMnz9f/A5o3bp1+OyzzzB06FCYm5s3Ysr6qW625ORktfvNmzfXmotMq5vrhx9+aOQ0mlPdXE9pw5muZ1U3k76+PtavX9/IiTTH3Ny8wttVANC5c2fs3LkTwF9njsaNG4dFixZh06ZNaNZM/m8sVDZXZdvc3NxQUFDQmNFeGJYUahJmz56N2bNnSx2DiLSEsbExkpKSpI5BNZB/dSQiIqKXEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyRJLChEREckSSwoRERHJEksKERERyZKu1AGoadm/fz+ys7OljqExqampav9tKjiXduFc2qUpzpWTkyPJ6yoEQRAkeWVqUg4cOAAvLy+pYxAR0QuUlJQET0/PRns9nkkhjTAxMQEAREREwMLCQuI0mpOamoqYmBjMmDEDrq6uUsfRGM6lXTiXdmmKc+Xk5CAsLEw81jcWlhTSKG9vbzg6OkodQ6NiYmLg6uqKiRMnSh1FoziXduFc2qWpzZWZmYmwsLBGf11eOEtERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQkRERLLEkkJERESyxJJCREREssSSQrL3/fffw8nJCUqlEjY2Nhg8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hJycnKqIZRWvmhsACCGqKI11vGyfBgwYUMVprKtu3bq4efNmuWsdO3ZU3ayAivfJwcEBd+/eNdkWEhKiyn0sD1/uISIiIkViSSEiIiJFYkkhIiIiRWJJISIiIkViSSEiIiJFYkkhIiIiRWJJISIiIkViSSEiIiJFYkkhIiIiRWJJISIiIkViSSEiIiJFYkkhIiIiRWJJISIiIkViSSEiIiJFYkkhIiIiRWJJISIiIkViSSEiIiJFYkkhIiIiRWJJ0YBFixYhODgYzs7OCA0Nxc8//yx3JCIiIouxpKjcunXrMGHCBEyZMgUZGRno0KEDunfvjuzsbLmjERERWYQlReXmzZuHESNG4IMPPkDjxo2xYMECBAQEYPHixXJHIyIisoi93AGo8oqLi5Geno5PPvnEZHtMTAwOHz5c7mMMBgMMBoPJNicnJzg5OVklU2ZmplX+HKXIysoy/vfEiRMyp7Ee7pe6cL/URYv7JduxXZBqXbt2TQAQhw4dMtk+Y8YM0bBhw3Ifk5iYKACY3BITEy3OcuHChTJ/Lm+88cYbb9q6XbhwweLvF+bgMykaIEmSycdCiDLbnps8eTLi4+NNtlnjWZQGDRrgwoULuHv3rsV/ltLcunULXl5ecsewOu6XunC/1EWL+1WtWjU0aNCgSj8nS4qKeXt7w87ODrm5uSbb8/Pzodfry32MNV/aeVFV/+MlIiJt44mzKubo6IjQ0FDs3bvXZPvevXsRHh4uUyoiIiLr4DMpKhcfH48hQ4YgLCwM7dq1w9dff43s7GzExcXJHY2IiMgiLCkq179/f9y6dQvTp09HTk4OmjZtip07dyIoKEjuaERERBaRhBBC7hBEREREL+I5KURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClERESkSCwpREREpEgsKURERKRILClkFQaDAVOnToXBYJA7ilVxv9SF+6Uu3C/1kGufJCGEqNLPSJp0584deHh4oKioCNWrV5c7jtVw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create matplotlib figure and axis\n", "f, ax = plt.subplots(figsize=(10, 10))\n", "\n", "# Plot the grid squares GeoDataFrame with black borders and no fill\n", "gdf.plot(ax=ax, edgecolor=\"black\", facecolor=\"none\")\n", "\n", "# Add feature labels\n", "for idx, row in gdf.iterrows():\n", " ax.text(\n", " row[\"geometry\"].centroid.x,\n", " row[\"geometry\"].centroid.y,\n", " row[\"bng_ref\"],\n", " fontsize=8,\n", " fontweight=\"light\",\n", " ha=\"center\",\n", " va=\"center\",\n", " )\n", "\n", "# Set the aesthetics for the matplotlib axes\n", "plot_aesthetics(ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `osbng.grids.BNG_BOUNDS`\n", "\n", "* `osbng.grids.BNG_BOUNDS` provides the BNG index system bounds as bounding box coordinates (xmin, ymin, xmax, ymax).\n", "* The `osbng.grids.bbox_to_bng_iterfeatures` function returns an iterator of `BNGReference` objects represented using a GeoJSON-like mapping within specified bounds at a specified resolution. This function can be used to generate BNG grid data at different resolutions over custom bounds." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 0, 700000, 1300000)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "BNG_BOUNDS" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[{'type': 'Feature', 'properties': {'bng_ref': 'TQ294796'}, 'geometry': {'type': 'Polygon', 'coordinates': (((529500.0, 179600.0), (529500.0, 179700.0), (529400.0, 179700.0), (529400.0, 179600.0), (529500.0, 179600.0)),)}}, {'type': 'Feature', 'properties': {'bng_ref': 'TQ295796'}, 'geometry': {'type': 'Polygon', 'coordinates': (((529600.0, 179600.0), (529600.0, 179700.0), (529500.0, 179700.0), (529500.0, 179600.0), (529600.0, 179600.0)),)}}, {'type': 'Feature', 'properties': {'bng_ref': 'TQ296796'}, 'geometry': {'type': 'Polygon', 'coordinates': (((529700.0, 179600.0), (529700.0, 179700.0), (529600.0, 179700.0), (529600.0, 179600.0), (529700.0, 179600.0)),)}}, {'type': 'Feature', 'properties': {'bng_ref': 'TQ297796'}, 'geometry': {'type': 'Polygon', 'coordinates': (((529800.0, 179600.0), (529800.0, 179700.0), (529700.0, 179700.0), (529700.0, 179600.0), (529800.0, 179600.0)),)}}, {'type': 'Feature', 'properties': {'bng_ref': 'TQ298796'}, 'geometry': {'type': 'Polygon', 'coordinates': (((529900.0, 179600.0), (529900.0, 179700.0), (529800.0, 179700.0), (529800.0, 179600.0), (529900.0, 179600.0)),)}}]\n" ] } ], "source": [ "# Custom bounding box coordinates\n", "# (x_min, y_min, x_max, y_max)\n", "bbox = (529476, 179654, 532170, 181116)\n", "\n", "# Generate BNGReference object Features covering the custom bounds at 100m resolution\n", "bng_grid_100m_custom_list = list(bbox_to_bng_iterfeatures(*bbox, \"100m\"))\n", "\n", "# First 5 Features\n", "print(bng_grid_100m_custom_list[:5])" ] }, { "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", "
geometrybng_ref
0POLYGON ((529500 179600, 529500 179700, 529400...TQ294796
1POLYGON ((529600 179600, 529600 179700, 529500...TQ295796
2POLYGON ((529700 179600, 529700 179700, 529600...TQ296796
3POLYGON ((529800 179600, 529800 179700, 529700...TQ297796
4POLYGON ((529900 179600, 529900 179700, 529800...TQ298796
\n", "
" ], "text/plain": [ " geometry bng_ref\n", "0 POLYGON ((529500 179600, 529500 179700, 529400... TQ294796\n", "1 POLYGON ((529600 179600, 529600 179700, 529500... TQ295796\n", "2 POLYGON ((529700 179600, 529700 179700, 529600... TQ296796\n", "3 POLYGON ((529800 179600, 529800 179700, 529700... TQ297796\n", "4 POLYGON ((529900 179600, 529900 179700, 529800... TQ298796" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a GeoPandas GeoDataFrame from the 100m BNGReference object Features\n", "bng_grid_100m_custom_gdf = gpd.GeoDataFrame.from_features(\n", " bng_grid_100m_custom_list, crs=27700\n", ")\n", "\n", "bng_grid_100m_custom_gdf.head()" ] }, { "cell_type": "code", "execution_count": null, "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", "
geometrybng_ref
0POLYGON ((530000 179000, 530000 180000, 529000...TQ2979
1POLYGON ((531000 179000, 531000 180000, 530000...TQ3079
2POLYGON ((532000 179000, 532000 180000, 531000...TQ3179
3POLYGON ((533000 179000, 533000 180000, 532000...TQ3279
4POLYGON ((530000 180000, 530000 181000, 529000...TQ2980
\n", "
" ], "text/plain": [ " geometry bng_ref\n", "0 POLYGON ((530000 179000, 530000 180000, 529000... TQ2979\n", "1 POLYGON ((531000 179000, 531000 180000, 530000... TQ3079\n", "2 POLYGON ((532000 179000, 532000 180000, 531000... TQ3179\n", "3 POLYGON ((533000 179000, 533000 180000, 532000... TQ3279\n", "4 POLYGON ((530000 180000, 530000 181000, 529000... TQ2980" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Generate BNGReference object Features covering the same custom bounds\n", "# at 1km resolution\n", "# Provides context for the 100m resolution grid squares\n", "bng_grid_1km_custom_list = list(bbox_to_bng_iterfeatures(*bbox, \"1km\"))\n", "\n", "# Create a GeoPandas GeoDataFrame from the 1km BNGReference object Features\n", "bng_grid_1km_custom_gdf = gpd.GeoDataFrame.from_features(\n", " bng_grid_1km_custom_list, crs=27700\n", ")\n", "\n", "bng_grid_1km_custom_gdf.head()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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/ehHP1JRUZEMw9D48eM1e/Zsvfbaa5Fu9fQiHFDRAsXFxRnbt28PfF1dXW2cc845RmVlpWEYhvHaa68ZPXr0iFR7zR7zNVdsbKzh8XhOef7vf/+7ERsbexY7almYr7lsNptht9tP+dFwHj8M8zVXt27djHXr1gW+PnTokHHppZcaGRkZxvHjx7m6FQbM2FydOnUytm7dahjGye/PbDab8cEHHwTOf/TRR0a3bt0i1N33xxVEhJ3T6Qz6GSK73a76+nqdOHFCkjR48GDt3bs3Qt01f8zXXDExMTp8+PApz1dUVCgmJuYsdtSyMF9ztWvXTr/97W916aWXNnn+n//8p+64446z3FXLwXzNdejQIaWkpAS+7tixo959912NHDlSV111lRYtWhTB7loGZmyu6upqdejQQZIUGxur2NjYoLtlkpOTdeDAgUi1970REBF2Q4YM0SOPPKI//elPio6O1vTp03X++ecH/sB8+eWXSkhIiHCXzRfzNdcvf/lLTZw4UfPnz9eIESMUHx8v6eSbB7/77ruaOnWqJkyYEOEumy/ma66LL75YkpSent7k+fbt23P7WAiYr7nOO+887dixQ927dw8ca9eunQoKCpSRkaFrrrkmgt21DMzYXG63WyUlJYEX+XnyySfVuXPnwPnm8j0aARFhN2/ePGVkZKh9+/ay2WyKjY3V8uXLA+d37Nih7OzsyDXYzDFfcz399NM6ceKEbrrpJp04cSLwMxm1tbWKiorSrbfeqqeeeirCXTZfzNdcEyZM0LFjx0553uVyacaMGWexo5aF+ZorIyNDr7zyiq666qqg423bttU777yjESNGRKizloMZm2v48OH67LPPNGTIEEnSf/zHfwSdLygoCPxDk5XxPogwxTfffKMPP/xQNTU1GjhwYPN4Sd9mhPmar6qqSlu2bAl6k9v+/fsrLi4uwp21DMwXwL+rqKjQ/v37deGFFzZ5vrq6Wlu2bDnlFVx8N2YcWXv27FGbNm0avUib1RAQAQAAAACSuMUUJiotLVX79u3Vtm3boON1dXUqKirSz372swh11jIwX/N89dVX+sc//qG+ffuqQ4cOOnTokBYvXqyamhr94he/UM+ePSPdYrPGfM3FfM3FfM3FfM3HjM3VIuYbyZdQRcu0f/9+46c//alht9sNh8Nh3HzzzcbXX38dOM9LKIeG+Zpr48aN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create matplotlib figure and axis\n", "f, ax = plt.subplots(figsize=(10, 10))\n", "\n", "# Plot the grid squares GeoDataFrames with black borders and no fill\n", "bng_grid_1km_custom_gdf.plot(ax=ax, edgecolor=\"black\", facecolor=\"none\", linewidth=2)\n", "bng_grid_100m_custom_gdf.plot(ax=ax, edgecolor=\"black\", facecolor=\"none\", linewidth=0.5)\n", "\n", "# Set the aesthetics for the matplotlib axes\n", "plot_aesthetics(ax)" ] } ], "metadata": { "kernelspec": { "display_name": "osbng", "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.13.3" } }, "nbformat": 4, "nbformat_minor": 2 }