From 01fb10f8d2668219e3539cca08852725eb28819a Mon Sep 17 00:00:00 2001 From: hagrid67 <jdhwatson@gmail.com> Date: Sun, 5 May 2019 16:00:43 +0100 Subject: [PATCH] mostly just adding trailing junk --- notebooks/CanvasEditor.ipynb | 468 +++++++++++++++++++++++++++++++---- 1 file changed, 424 insertions(+), 44 deletions(-) diff --git a/notebooks/CanvasEditor.ipynb b/notebooks/CanvasEditor.ipynb index 9773d174..da5a4235 100644 --- a/notebooks/CanvasEditor.ipynb +++ b/notebooks/CanvasEditor.ipynb @@ -120,7 +120,7 @@ "metadata": {}, "outputs": [], "source": [ - "sfEnv = \"C:/Users/u224870/Projekte_Git/flatland/env-data/tests/test1.npy\"\n", + "sfEnv = \"../flatland/env-data/tests/test1.npy\"\n", "if True:\n", " oEnv.rail.load_transition_map(sfEnv)\n", " oEnv.width = oEnv.rail.width\n", @@ -269,7 +269,7 @@ ], "source": [ "wid_img.unregister_all()\n", - "oEditor = JupEditor(oEnv,wid_img)\n", + "oEditor = JupEditor(oEnv, wid_img)\n", "wid_img.register_move(oEditor.event_handler)\n", "wid_img.register_click(oEditor.on_click)\n" ] @@ -347,12 +347,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "cddcd8e9e5fb48c185a129ff73b1ef40", + "model_id": "de522f891d4d4dd1a4abc5bddbe7313e", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HBox(children=(Canvas(), VBox(children=(Text(value='C:/Users/u224870/Projekte_Git/flatland/env-data/tests/test…" + "HBox(children=(Canvas(), VBox(children=(Text(value='../flatland/env-data/tests/test1.npy', description='Filena…" ] }, "metadata": {}, @@ -363,25 +363,25 @@ "# wid_box\n", "wid_main = HBox([wid_img, vbox_controls])\n", "wid_output.clear_output()\n", - "wid_main" + "wid_main\n" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 16, "metadata": { - "scrolled": true + "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b4d521d96fc44ea6bf7cd9e4e299673b", + "model_id": "8c1dfa731139497f87c53109ad656351", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "Output(outputs=({'output_type': 'stream', 'text': \"Set Debug: True\\ndebug: {'type': 'click', 'shiftKey': False…" + "Output()" ] }, "metadata": {}, @@ -444,21 +444,7 @@ "cell_type": "code", "execution_count": 20, "metadata": {}, - "outputs": [ - { - "ename": "FileNotFoundError", - "evalue": "[Errno 2] No such file or directory: '../flatland/env-data/tests/test-editor.npy'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-20-a40691809d2c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0moEnv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrail\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msave_transition_map\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"../flatland/env-data/tests/test-editor.npy\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32mc:\\users\\u224870\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\flatland_rl-0.1.1-py3.6.egg\\flatland\\core\\transition_map.py\u001b[0m in \u001b[0;36msave_transition_map\u001b[1;34m(self, filename)\u001b[0m\n\u001b[0;32m 259\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 260\u001b[0m \"\"\"\n\u001b[1;32m--> 261\u001b[1;33m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msave\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrid\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 262\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 263\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mload_transition_map\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moverride_gridsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\u224870\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\numpy\\lib\\npyio.py\u001b[0m in \u001b[0;36msave\u001b[1;34m(file, arr, allow_pickle, fix_imports)\u001b[0m\n\u001b[0;32m 490\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mfile\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'.npy'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 491\u001b[0m \u001b[0mfile\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfile\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'.npy'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 492\u001b[1;33m \u001b[0mfid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"wb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 493\u001b[0m \u001b[0mown_fid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 494\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mis_pathlib_path\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '../flatland/env-data/tests/test-editor.npy'" - ] - } - ], + "outputs": [], "source": [ "if False: \n", " oEnv.rail.save_transition_map(\"../flatland/env-data/tests/test-editor.npy\")" @@ -473,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -489,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -499,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -508,13 +494,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "adf698700a634775bfe4da0909912b96", + "model_id": "5c4335d316d846b09568b5ee59522569", "version_major": 2, "version_minor": 0 }, @@ -532,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -541,7 +527,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -550,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -559,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -576,13 +562,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "e6bf851f84bd471f8f4a4771e9d9b668", + "model_id": "d1c47f504dd3461082779532dd404592", "version_major": 2, "version_minor": 0 }, @@ -609,13 +595,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4de1e7a8162e460f8b1ecc732d3c1e2e", + "model_id": "3f5b20902c6c4ea9b48d72d494fd5064", "version_major": 2, "version_minor": 0 }, @@ -647,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -668,20 +654,414 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "<flatland.core.transition_map.GridTransitionMap at 0x7fc6dd6c9e48>" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'0b1101111001111011'" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "binDeadend = 0b0010000110000100\n", + "format(~binDeadend & 0xffff, \"#018b\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.cell_neighbours_valid((2,5))" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.grid[2,6] & binDeadend" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oTrans = oEnv.rail.grid[2,5]\n", + "oTrans\n", + "oEnv.rail.transitions.repr(oTrans, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.transitions.is_valid(oTrans)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-1, 0],\n", + " [ 0, 1],\n", + " [ 1, 0],\n", + " [ 0, -1]])" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.transitions.gDir2dRC" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0000000000000000\n", + "['0000', '0000', '0000', '0000']\n" + ] + } + ], + "source": [ + "binTrans = oEnv.rail.get_transitions((2,2))\n", + "sBinTrans = format(binTrans, \"#018b\")[2:]\n", + "print(sBinTrans)\n", + "lsBinTrans = [ sBinTrans[i:i+4] for i in range(0,16, 4)]\n", + "print(lsBinTrans)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0, 0, 0, 0],\n", + " [0, 0, 0, 0],\n", + " [0, 0, 0, 0],\n", + " [0, 0, 0, 0]], dtype=uint8)" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lnBinTrans = array([ binTrans >> 8, binTrans & 0xff ], dtype=np.uint8)\n", + "g2binTrans = np.unpackbits(lnBinTrans).reshape(4,4)\n", + "g2binTrans" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[False False False False]\n", + "[False False False False]\n" + ] + } + ], + "source": [ + "gDirIn = g2binTrans.any(axis=1)\n", + "gDirOut = g2binTrans.any(axis=0)\n", + "print(gDirIn)\n", + "print(gDirOut)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([], dtype=int64)" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "giDirOut = np.argwhere(gDirOut)[:,0]\n", + "giDirOut" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "any((0,0,0))" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-1, 0],\n", + " [ 0, 1],\n", + " [ 1, 0],\n", + " [ 0, -1]])" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.transitions.gDir2dRC" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([], shape=(0, 2), dtype=int64)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "oEnv.rail.transitions.gDir2dRC[giDirOut,:]" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0, 0, 0, 0)\n" + ] + } + ], + "source": [ + "t4TransOut = oEnv.rail.get_transitions((2,2,3))\n", + "print (t4TransOut) \n", + "for iDir in np.argwhere(t4TransOut)[:,0]:\n", + " print(iDir, oEnv.rail.transitions.gDir2dRC[iDir])\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0000000000000000\n" + ] + }, + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lsRepr = []\n", + "sDirs = \"NESW\"\n", + "lsDirs = list(sDirs)\n", + "cell_transition = oTrans\n", + "sbinTrans = format(cell_transition, \"#018b\")[2:]\n", + "print(sbinTrans)\n", + "for iDirIn in range(0,4):\n", + " sDirTrans = sbinTrans[iDirIn*4:iDirIn*4+4]\n", + " if sDirTrans==\"0000\":\n", + " continue\n", + " sDirsOut = [\n", + " lsDirs[iDirOut]\n", + " for iDirOut in range(0,4) \n", + " if sDirTrans[iDirOut]==\"1\"\n", + " ]\n", + " lsRepr.append(lsDirs[iDirIn] + \":\" + \"\".join(sDirsOut))\n", + "\n", + "\", \".join(lsRepr)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 [1 0 1 0]\n" + ] + } + ], + "source": [ + "s=\"1010\"\n", + "ints = int(s,2)\n", + "gs = array(ints, dtype=np.uint8)\n", + "print(gs, np.unpackbits(gs)[4:8])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'N:0000 E:0100 S:0000 W:0001'" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "\n" + "oEnv.rail.transitions.repr(1025)" ] } ], "metadata": { "hide_input": false, "kernelspec": { - "display_name": "Python 3", + "display_name": "ve367", "language": "python", - "name": "python3" + "name": "ve367" }, "language_info": { "codemirror_mode": { @@ -693,7 +1073,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.7" }, "latex_envs": { "LaTeX_envs_menu_present": true, -- GitLab