Skip to content

Instantly share code, notes, and snippets.

@lumbric
Created February 21, 2019 21:20
Show Gist options
  • Save lumbric/ec6b7c7e9c2e064d80fda28107b4cc50 to your computer and use it in GitHub Desktop.
Save lumbric/ec6b7c7e9c2e064d80fda28107b4cc50 to your computer and use it in GitHub Desktop.
Tankstellen
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"N = 25\n",
"canvas_margin = 0.3\n",
"canvas_resolution = 900\n",
"num_neighbours = 4"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"np.random.seed(42)\n",
"gas_stations = np.random.rand(2, N)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"canvas_coords = np.linspace(-canvas_margin, canvas_margin + 1, num=canvas_resolution)\n",
"canvas = np.zeros((canvas_resolution, canvas_resolution))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"xx, yy = np.meshgrid(canvas_coords, canvas_coords)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# axis=0 <-- canvas x\n",
"# axis=1 <-- canvas y\n",
"# axis=2 <-- gas_stations\n",
"distances = np.linalg.norm(gas_stations.T - np.dstack((xx,yy))[:, :, np.newaxis, :], axis=3)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"canvas = np.argsort(distances, axis=2)[:, :, :num_neighbours] # .sum(axis=2)\n",
"canvas = np.sort(canvas, axis=2)\n",
"canvas = np.sum(N**np.arange(num_neighbours)[::-1] * canvas, axis=2)\n",
"canvas = canvas / canvas.max()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x1152 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imshow(canvas, extent=(-canvas_margin, 1 + canvas_margin, 1 + canvas_margin, -canvas_margin), cmap='gist_ncar')\n",
"ax = plot(gas_stations[0], gas_stations[1], 'or')\n",
"\n",
"ax[0].figure.set_figheight(16)\n",
"ax[0].figure.set_figwidth(12)"
]
}
],
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment