Update jdb

parent 9532bfc0
......@@ -11,37 +11,25 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install panda3d and ursina engines that may be useful for exploration then."
"## Install useful dependencies for data exploration"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 5,
"metadata": {
"hideCode": true,
"hideCode": false,
"hideOutput": true,
"hidePrompt": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: panda3d in /opt/conda/lib/python3.6/site-packages (1.10.6.post2)\n",
"Requirement already satisfied: ursina in /opt/conda/lib/python3.6/site-packages (3.0.0)\n",
"Requirement already satisfied: panda3d in /opt/conda/lib/python3.6/site-packages (from ursina) (1.10.6.post2)\n",
"Requirement already satisfied: pillow in /opt/conda/lib/python3.6/site-packages (from ursina) (7.0.0)\n",
"Requirement already satisfied: screeninfo in /opt/conda/lib/python3.6/site-packages (from ursina) (0.6.5)\n",
"Requirement already satisfied: dataclasses in /opt/conda/lib/python3.6/site-packages (from screeninfo->ursina) (0.7)\n"
"Collecting xmltodict\n",
" Downloading xmltodict-0.12.0-py2.py3-none-any.whl (9.2 kB)\n",
"Installing collected packages: xmltodict\n"
]
},
{
......@@ -57,74 +45,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: ipyvolume in /opt/conda/lib/python3.6/site-packages (0.5.2)\n",
"Requirement already satisfied: traittypes in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (0.2.1)\n",
"Requirement already satisfied: Pillow in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (7.0.0)\n",
"Requirement already satisfied: traitlets in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (4.3.3)\n",
"Requirement already satisfied: pythreejs>=1.0.0 in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (2.2.0)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: ipywebrtc in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (0.5.0)\n",
"Requirement already satisfied: requests in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (2.23.0)\n",
"Requirement already satisfied: numpy in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (1.15.2)\n",
"Requirement already satisfied: ipywidgets>=7.5 in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (7.5.1)\n",
"Requirement already satisfied: ipython-genutils in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (0.2.0)\n",
"Requirement already satisfied: decorator in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (4.4.1)\n",
"Requirement already satisfied: six in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (1.14.0)\n",
"Requirement already satisfied: ipydatawidgets>=1.1.1 in /opt/conda/lib/python3.6/site-packages (from pythreejs>=1.0.0->ipyvolume) (4.0.1)\n",
"Requirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (2.9)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (3.0.4)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (1.25.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (2020.4.5.1)\n",
"Requirement already satisfied: ipython>=4.0.0; python_version >= \"3.3\" in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (7.12.0)\n",
"Requirement already satisfied: widgetsnbextension~=3.5.0 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (3.5.1)\n",
"Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (5.0.4)\n",
"Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (5.1.4)\n",
"Requirement already satisfied: backcall in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.1.0)\n",
"Requirement already satisfied: pexpect; sys_platform != \"win32\" in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (4.8.0)\n",
"Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (45.2.0.post20200209)\n",
"Requirement already satisfied: jedi>=0.10 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.16.0)\n",
"Requirement already satisfied: pygments in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (2.5.2)\n",
"Requirement already satisfied: pickleshare in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.7.5)\n",
"Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (3.0.3)\n",
"Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.6/site-packages (from widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (6.0.3)\n",
"Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (3.0.2)\n",
"Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (4.6.3)\n",
"Requirement already satisfied: jupyter-client in /opt/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (6.0.0)\n",
"Requirement already satisfied: tornado>=4.2 in /opt/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (6.0.3)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.6/site-packages (from pexpect; sys_platform != \"win32\"->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: parso>=0.5.2 in /opt/conda/lib/python3.6/site-packages (from jedi>=0.10->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: wcwidth in /opt/conda/lib/python3.6/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.1.8)\n",
"Requirement already satisfied: nbconvert in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (5.6.1)\n",
"Requirement already satisfied: terminado>=0.8.1 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.8.3)\n",
"Requirement already satisfied: Send2Trash in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.5.0)\n",
"Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.7.1)\n",
"Requirement already satisfied: jinja2 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (2.11.0)\n",
"Requirement already satisfied: pyzmq>=17 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (17.1.2)\n",
"Requirement already satisfied: pyrsistent>=0.14.0 in /opt/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (0.15.7)\n",
"Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (19.3.0)\n",
"Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.6/site-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (2.8.1)\n",
"Requirement already satisfied: bleach in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (3.1.0)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.4.2)\n",
"Requirement already satisfied: testpath in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.4.4)\n",
"Requirement already satisfied: entrypoints>=0.2.2 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.3)\n",
"Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.8.4)\n",
"Requirement already satisfied: defusedxml in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.6/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.1.1)\n",
"Requirement already satisfied: webencodings in /opt/conda/lib/python3.6/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.5.1)\n"
"Successfully installed xmltodict-0.12.0\n"
]
}
],
......@@ -137,11 +58,12 @@
" else:\n",
" pip._internal.main(['install', package])\n",
"\n",
"# Example\n",
"if __name__ == '__main__':\n",
" install('panda3d')\n",
" install('ursina')\n",
" install('ipyvolume')"
"# install('panda3d')\n",
"# install('ursina')\n",
"# install('ipyvolume')\n",
"# install('plotly')\n",
"# install('pyquaternion')\n",
"# install('xmltodict')"
]
},
{
......@@ -160,7 +82,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"metadata": {
"hideCode": true,
"hideOutput": true,
......@@ -416,39 +338,152 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"OrderedDict([('@id', '716508'),\n",
" ('@color', '21 156 162'),\n",
" ('@text', ''),\n",
" ('@nyu_class', 'wall'),\n",
" ('@note', ''),\n",
" ('@area', '492477'),\n",
" ('@obbox',\n",
" '-1.2153 -2.52873 -1.90061 4.76056 2.89713 3.58827 0.999386 0.0115122 0.0173149 0.02819'),\n",
" ('@aabbox',\n",
" '-1.19997 -0.368718 -1.66073 3.51822 2.43698 1.86119'),\n",
" ('@local_pose', '1 0 0 0')])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import xmltodict\n",
"labels = xmltodict.parse(sample_scene_data)['annotation']['label']\n",
"sample_label = labels[0]\n",
"# sample_label"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"from xml.etree import ElementTree\n",
"scene_root = ElementTree.fromstring(sample_scene_data)"
"import pyquaternion\n",
"\n",
"def obbox_properties_to_vertices(obbox_properties)\n",
" \"\"\"\n",
" Convert 3D box properties (center, dimensions, and quaternion)\n",
" \"\"\"\n",
" if isinstance(obbox_properties, str):\n",
" obbox_properties = a = map(float, obbox_properties.split())\n",
" \n",
"# TODO ADD EXTRA CHECKS\n",
"# if isinstance(obbox_properties, iterable) and len(obbox_properties == 10) and \n",
" \n",
" # Extract properties\n",
" cx, cy, cz = [0:3]\n",
" dx, dy, dz = [3:6]\n",
" qx, qy, qz, qw = [6:10]\n",
"\n",
" # Constants for converting properties to vertices\n",
" X = [0, 0, 1, 1, 0, 0, 1, 1]\n",
" Y = [0, 1, 1, 0, 0, 1, 1, 0]\n",
" Z = [0, 0, 0, 0, 1, 1, 1, 1]\n",
"\n",
" # Properties to unrotated vertices\n",
" x = [c_x + (-0.5 * d_x if v == 0 else 0.5 * d_x) for v in X]\n",
" y = [c_y + (-0.5 * d_y if v == 0 else 0.5 * d_y) for v in Y]\n",
" z = [c_z + (-0.5 * d_z if v == 0 else 0.5 * d_z) for v in Z]\n",
" unrotated_vertices = zip(x, y, z)\n",
" \n",
" # Apply quaternion\n",
" quaternion = pyquaternion.Quaternion(qw, qx, qy, qz)\n",
" unrotated_vectors = [(v[0] - cx, v[1] - cy, v[2] - cz) for v in unrotated_vertices]\n",
" vectors = [quaternion.rotate(v) for v in unrotated_vectors]\n",
" vertices = [(v[0] + cx, v[1] + cy, v[2] + cz) for v in vectors]\n",
" \n",
" x, y, z = zip(*vertices)\n",
" \n",
" return x, y, z\n",
"\n",
"def box_vertices"
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
"ename": "NameError",
"evalue": "name 'np' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-21-29c839d25695>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 11\u001b[0m [1, 'magenta']],\n\u001b[1;32m 12\u001b[0m \u001b[0;31m# Intensity of each vertex, which will be interpolated and color-coded\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0mintensity\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mendpoint\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0mintensitymode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'cell'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m# i, j and k give the vertices of triangles\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'np' is not defined"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D, axes3d\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"X, Y, Z = axes3d.get_test_data(1.)\n",
"ax.plot_wireframe(X, Y, Z) #, rstride=10, cstride=10)\n",
"plt.show()"
"import plotly.graph_objects as go\n",
"fig = go.Figure(data=[\n",
" go.Mesh3d(\n",
" # 8 vertices of a cube\n",
" x=[0, 0, 1, 1, 0, 0, 1, 1],\n",
" y=[0, 1, 1, 0, 0, 1, 1, 0],\n",
" z=[0, 0, 0, 0, 1, 1, 1, 1],\n",
" colorbar_title='z',\n",
" colorscale=[[0, 'gold'],\n",
" [0.5, 'mediumturquoise'],\n",
" [1, 'magenta']],\n",
" # Intensity of each vertex, which will be interpolated and color-coded\n",
" intensity = np.linspace(0, 1, 12, endpoint=True),\n",
" intensitymode='cell',\n",
" # i, j and k give the vertices of triangles\n",
" i = [7, 0, 0, 0, 4, 4, 6, 6, 4, 0, 3, 2],\n",
" j = [3, 4, 1, 2, 5, 6, 5, 2, 0, 1, 6, 3],\n",
" k = [0, 7, 2, 3, 6, 7, 1, 1, 5, 5, 7, 6],\n",
" name='y',\n",
" showscale=True\n",
" )\n",
"])\n",
"\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n",
"<class 'float'>\n"
]
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment