Skip to content

Instantly share code, notes, and snippets.

@sangheestyle
Created June 1, 2015 00:33
Show Gist options
  • Save sangheestyle/e416fa59bad4bb46f8da to your computer and use it in GitHub Desktop.
Save sangheestyle/e416fa59bad4bb46f8da to your computer and use it in GitHub Desktop.
Where is the point?
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## calc distance between two points"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Setup\n",
"Let's assume that:\n",
"\n",
"* 9 points on grid"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Place 9 sensors on the plane"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pos_sensors = [np.array([i*2, j*2]) for i in range(3) for j in range(3)]"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x106ce7610>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(zip(*pos_sensors)[0], zip(*pos_sensors)[1])\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Set a point"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"point = np.array([[1,1]])"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\noMOqJmFvAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x106e0aa90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(zip(*pos_sensors)[0], zip(*pos_sensors)[1])\n",
"plt.scatter(zip(*point)[0], zip(*point)[1], color='r')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calculate distances between the point and scanners"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy.spatial import distance"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1.41421356, 1.41421356, 3.16227766, 1.41421356, 1.41421356,\n",
" 3.16227766, 3.16227766, 3.16227766, 4.24264069]])"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"distance.cdist(point, pos_sensors, 'euclidean')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Pick min 4 from distance array"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"distances = distance.cdist(point, pos_sensors, 'euclidean')[0]\n",
"ind = distances.argsort()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 3, 4])"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ind[:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Show euclidean distance"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEACAYAAAB78OvLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuwHWW55/HvLxcOO5ILAQUPoDsl5KAWVxEpxSEgNx0J\nxBEFQUUtJ9Zo4eFeojN6PM6B8oaDHrVEIDpH5UwBQTgIuUgiIA6CJOQuiESDYgSCGCdBgTzzR7+L\n3SzWbbN606s7v0/Vqt3Xt9+nn6bf9b7dKygiMDMzK8K4sitgZmb14UbFzMwK40bFzMwK40bFzMwK\n40bFzMwK40bFzMwKM6HfAiStB/4MPAM8FRGH9lummZlVU9+NChDArIjYVEBZZmZWYUUNf6mgcszM\nrMKKaFQCWCzpbkkfLqA8MzOrqCKGv94UEQ9LeimwSNK6iLitgHLNzKxi+m5UIuLh9PcRSfOBQ4Fn\nGxVJ/sfFzMxegIio3KOFvhoVSZOA8RGxWdJLgGOBf2reroonpleSPhMRnym7HmOlzvHVOTZwfFVX\n1S/k/fZUdgPmS2qU9b2IWNh3rapluOwKjLHhsiswhobLrsAYGy67AmNsuOwK2PP11ahExIPAgQXV\nxczMKs6/qO/fvLIrMMbmlV2BMTSv7AqMsXllV2CMzSu7AvZ8Guv/SZekqPMzFTOzsVDVe6d7Kn2S\nNKvsOoylOsdX59jA8Vk53KiYmVlhPPxlZjaAqnrvdE/FzMwK40alT3Uf161zfHWODRyflcONipmZ\nFcbPVMzMBlBV753uqZiZWWHcqPSp7uO6dY6vzrGB47NyuFExM7PC+JmKmdkAquq90z0VMzMrjBuV\nPtV9XLfO8dU5NnB8Vg43KmZmVhg/UzEzG0BVvXe6p2JmZoVxo9Knuo/r1jm+OscGjs/K4UbFzMwK\n42cqZmYDqKr3TvdU+iRpL0lLJK2WtErSmT3sc6ikZemzQtK722x3cir3GUkHN63bX9LP0jFXSNpB\n0iRJN0pam5ZflNv+7FTWvZIWS3pFWn5kri7LJG2VNDutuy23/HeS5ufKm5WWr5K0NLd8mqSrUx3W\nSDosLZ8uaZGk+yQtlDQtt3yJpM2SvporZ3JTvR6RdEmPaRk1SevTeVwm6ec9bO8cDlgO0zE/kc7R\nSknfl/R3Pe73Ckl/kXROm/VfSOfjXknXSpraaf9OeUzr36WRe8b3mtZNkfRQ07IZku6UdL+kqyRN\n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\nXGAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10710d4d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"plt.scatter(zip(*pos_sensors)[0], zip(*pos_sensors)[1])\n",
"plt.scatter(zip(*point)[0], zip(*point)[1], color='r')\n",
"ax = fig.add_subplot(111)\n",
"for index, pos in enumerate(pos_sensors):\n",
" ax.annotate('%s: %s'% (index, distances[index]),\n",
" xy=pos, textcoords='offset points')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Moving the point"
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nF9sAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10744fd90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"point = np.array([[0.5,2.5]])\n",
"distances = distance.cdist(point, pos_sensors, 'euclidean')[0]\n",
"ind = distances.argsort()\n",
"\n",
"fig = plt.figure()\n",
"plt.scatter(zip(*pos_sensors)[0], zip(*pos_sensors)[1])\n",
"plt.scatter(zip(*point)[0], zip(*point)[1], color='r')\n",
"ax = fig.add_subplot(111)\n",
"for index, pos in enumerate(pos_sensors):\n",
" ax.annotate('%s: %s'% (index, distances[index]),\n",
" xy=pos, textcoords='offset points')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Conclusion of this short experiment"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can keep track of movement of point based on eucledean distance. We can calculate where the point is based on eucledean distances of seneors without position of "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment