Changeset 237 in tmcsimulator


Ignore:
Timestamp:
12/13/2017 03:02:27 AM (8 years ago)
Author:
jtorres
Message:

Added new package atmsdriver.batchbuilder. Includes BatchBuilderGUI, TimeFrame?, TimeFrames?, and TrafficLaneEvent? classes. Added some auxillary methods to Highways.java, Highway.java, and Station.java.

Files:
6 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/unique_lane_types/.ipynb_checkpoints/unique_lane_types-checkpoint.ipynb

    r235 r237  
    11{ 
    2  "cells": [], 
    3  "metadata": {}, 
     2 "cells": [ 
     3  { 
     4   "cell_type": "code", 
     5   "execution_count": 1, 
     6   "metadata": { 
     7    "collapsed": true 
     8   }, 
     9   "outputs": [], 
     10   "source": [ 
     11    "loop_file = open(\"./loop_fullmap.txt\", \"r\")\n", 
     12    "def get_id_and_desc(line):\n", 
     13    "    split_line = line.split()\n", 
     14    "    loop_id = split_line[6]\n", 
     15    "    loop_desc = split_line[8]\n", 
     16    "    return loop_id, loop_desc\n", 
     17    "\n", 
     18    "loop_dict = {}\n", 
     19    "\n", 
     20    "for line in loop_file:\n", 
     21    "    loop_id, loop_desc = get_id_and_desc(line)\n", 
     22    "    if loop_id in loop_dict.keys():\n", 
     23    "        if loop_desc not in loop_dict[loop_id].keys():\n", 
     24    "            loop_dict[loop_id][loop_desc] = 1\n", 
     25    "        else:\n", 
     26    "            loop_dict[loop_id][loop_desc] += 1\n", 
     27    "    else:\n", 
     28    "        loop_dict[loop_id] = {}\n", 
     29    "        loop_dict[loop_id][loop_desc] = 1\n", 
     30    "loop_file.close()" 
     31   ] 
     32  }, 
     33  { 
     34   "cell_type": "code", 
     35   "execution_count": 4, 
     36   "metadata": { 
     37    "collapsed": true 
     38   }, 
     39   "outputs": [], 
     40   "source": [ 
     41    "import json\n", 
     42    "# f = open('unique_lane_types_results.txt','w')\n", 
     43    "# f.write(json.dumps(loop_dict, indent=1))\n", 
     44    "# f.close()\n" 
     45   ] 
     46  }, 
     47  { 
     48   "cell_type": "code", 
     49   "execution_count": 5, 
     50   "metadata": {}, 
     51   "outputs": [ 
     52    { 
     53     "name": "stdout", 
     54     "output_type": "stream", 
     55     "text": [ 
     56      "{\n", 
     57      "  \"OR\": {\n", 
     58      "    \"RAMP_ON\": 278,\n", 
     59      "    \"SD_3\": 6,\n", 
     60      "    \"SD_5\": 5,\n", 
     61      "    \"SD_2\": 3,\n", 
     62      "    \"SD_4\": 3,\n", 
     63      "    \"SD_1\": 4\n", 
     64      "  },\n", 
     65      "  \"QU\": {\n", 
     66      "    \"QUEUE\": 317\n", 
     67      "  },\n", 
     68      "  \"DM\": {\n", 
     69      "    \"DEMAND\": 314,\n", 
     70      "    \"PASSAGE\": 4\n", 
     71      "  },\n", 
     72      "  \"PA\": {\n", 
     73      "    \"PASSAGE\": 315,\n", 
     74      "    \"DEMAND\": 4\n", 
     75      "  },\n", 
     76      "  \"RH\": {\n", 
     77      "    \"RAMP_HOV\": 103,\n", 
     78      "    \"SD_1\": 1\n", 
     79      "  },\n", 
     80      "  \"FR\": {\n", 
     81      "    \"RAMP_OFF\": 171,\n", 
     82      "    \"SD_2\": 34,\n", 
     83      "    \"SD_3\": 27,\n", 
     84      "    \"SD_4\": 20,\n", 
     85      "    \"SD_5\": 14,\n", 
     86      "    \"SD_6\": 7,\n", 
     87      "    \"SD_1\": 6,\n", 
     88      "    \"COLL._DIST_2\": 1,\n", 
     89      "    \"COLL._DIST_1\": 1\n", 
     90      "  },\n", 
     91      "  \"ML\": {\n", 
     92      "    \"ML_1\": 546,\n", 
     93      "    \"ML_2\": 548,\n", 
     94      "    \"ML_3\": 500,\n", 
     95      "    \"ML_4\": 375,\n", 
     96      "    \"ML_5\": 136,\n", 
     97      "    \"ML_6\": 25,\n", 
     98      "    \"SD_3\": 1,\n", 
     99      "    \"SD_5\": 1,\n", 
     100      "    \"SD_1\": 3,\n", 
     101      "    \"SD_2\": 3,\n", 
     102      "    \"OS_1\": 2,\n", 
     103      "    \"OS_2\": 2\n", 
     104      "  },\n", 
     105      "  \"HV\": {\n", 
     106      "    \"SD_1\": 288,\n", 
     107      "    \"SD_2\": 24,\n", 
     108      "    \"SD_3\": 11,\n", 
     109      "    \"SD_4\": 10,\n", 
     110      "    \"RAMP_HOV\": 1\n", 
     111      "  },\n", 
     112      "  \"OC\": {\n", 
     113      "    \"COLL._DIST_1\": 3,\n", 
     114      "    \"COLL._DIST_2\": 2,\n", 
     115      "    \"COLL._DIST_ON\": 4,\n", 
     116      "    \"SD_5\": 2\n", 
     117      "  },\n", 
     118      "  \"OS\": {\n", 
     119      "    \"OS_1\": 262,\n", 
     120      "    \"OS_2\": 262,\n", 
     121      "    \"OS_3\": 217,\n", 
     122      "    \"OS_4\": 136,\n", 
     123      "    \"OS_5\": 47,\n", 
     124      "    \"OS_6\": 12,\n", 
     125      "    \"ML_1\": 1,\n", 
     126      "    \"ML_2\": 1,\n", 
     127      "    \"SD_3\": 1,\n", 
     128      "    \"SD_4\": 1,\n", 
     129      "    \"SD_2\": 1\n", 
     130      "  },\n", 
     131      "  \"OH\": {\n", 
     132      "    \"SD_2\": 93,\n", 
     133      "    \"SD_6\": 2,\n", 
     134      "    \"SD_3\": 8,\n", 
     135      "    \"SD_4\": 6,\n", 
     136      "    \"SD_5\": 2,\n", 
     137      "    \"SD_1\": 9\n", 
     138      "  },\n", 
     139      "  \"FF\": {\n", 
     140      "    \"SD_4\": 30,\n", 
     141      "    \"SD_5\": 23,\n", 
     142      "    \"COLL._DIST_ON\": 3,\n", 
     143      "    \"SD_2\": 21,\n", 
     144      "    \"SD_3\": 19,\n", 
     145      "    \"COLL._DIST_1\": 3,\n", 
     146      "    \"COLL._DIST_2\": 4,\n", 
     147      "    \"COLL._DIST_OFF\": 3,\n", 
     148      "    \"SD_1\": 17,\n", 
     149      "    \"SD_6\": 5,\n", 
     150      "    \"DEMAND\": 1,\n", 
     151      "    \"RAMP_ON\": 1,\n", 
     152      "    \"RAMP_OFF\": 1,\n", 
     153      "    \"ML_3\": 1\n", 
     154      "  },\n", 
     155      "  \"FC\": {\n", 
     156      "    \"COLL._DIST_OFF\": 4,\n", 
     157      "    \"SD_6\": 1,\n", 
     158      "    \"COLL._DIST_1\": 1,\n", 
     159      "    \"SD_3\": 2\n", 
     160      "  },\n", 
     161      "  \"FO\": {\n", 
     162      "    \"SD_4\": 12,\n", 
     163      "    \"SD_5\": 10,\n", 
     164      "    \"SD_6\": 6,\n", 
     165      "    \"SD_3\": 10,\n", 
     166      "    \"ML_3\": 1,\n", 
     167      "    \"SD_1\": 2,\n", 
     168      "    \"SD_2\": 5,\n", 
     169      "    \"COLL._DIST_1\": 2,\n", 
     170      "    \"COLL._DIST_2\": 2,\n", 
     171      "    \"RAMP_HOV\": 1\n", 
     172      "  },\n", 
     173      "  \"CD\": {\n", 
     174      "    \"COLL._DIST_1\": 26,\n", 
     175      "    \"COLL._DIST_2\": 9,\n", 
     176      "    \"COLL._DIST_OFF\": 1,\n", 
     177      "    \"SD_5\": 3,\n", 
     178      "    \"SD_6\": 2,\n", 
     179      "    \"SD_3\": 1,\n", 
     180      "    \"SD_2\": 1,\n", 
     181      "    \"SD_1\": 1\n", 
     182      "  },\n", 
     183      "  \"OF\": {\n", 
     184      "    \"SD_3\": 23,\n", 
     185      "    \"RAMP_OFF\": 21,\n", 
     186      "    \"SD_1\": 26,\n", 
     187      "    \"SD_2\": 10,\n", 
     188      "    \"SD_4\": 7,\n", 
     189      "    \"SD_5\": 2,\n", 
     190      "    \"COLL._DIST_1\": 1,\n", 
     191      "    \"RAMP_ON\": 1\n", 
     192      "  },\n", 
     193      "  \"HN\": {\n", 
     194      "    \"RAMP_ON\": 1,\n", 
     195      "    \"SD_5\": 1\n", 
     196      "  },\n", 
     197      "  \"HF\": {\n", 
     198      "    \"RAMP_OFF\": 1,\n", 
     199      "    \"SD_2\": 1\n", 
     200      "  },\n", 
     201      "  \"HB\": {\n", 
     202      "    \"SD_5\": 2,\n", 
     203      "    \"COLL._DIST_1\": 1,\n", 
     204      "    \"SD_6\": 1\n", 
     205      "  },\n", 
     206      "  \"OO\": {\n", 
     207      "    \"SD_1\": 1,\n", 
     208      "    \"SD_2\": 1,\n", 
     209      "    \"SD_3\": 2,\n", 
     210      "    \"RAMP_ON\": 1\n", 
     211      "  }\n", 
     212      "}\n" 
     213     ] 
     214    } 
     215   ], 
     216   "source": [ 
     217    "print(json.dumps(loop_dict, indent=2))" 
     218   ] 
     219  }, 
     220  { 
     221   "cell_type": "markdown", 
     222   "metadata": {}, 
     223   "source": [ 
     224    "## Known lane types\n", 
     225    "\n", 
     226    "- ### ML = MAIN LINE\n", 
     227    "ML ML_? = main line lane\n", 
     228    "\n", 
     229    "- ### HV = HOV LANE\n", 
     230    "HV SD_? = HOV LANE\n", 
     231    "\n", 
     232    "- ### OS = OPP SIDE ?\n", 
     233    "OS OS_? = opp side lane\n", 
     234    "\n", 
     235    "- ### OH = OPP HOV LANE\n", 
     236    "OH SD_? = opp HOV lane\n", 
     237    "\n", 
     238    "- ### FR = OFF RAMP\n", 
     239    "FR RAMP_OFF = off ramp <br>\n", 
     240    "FR SD_? = off ramp multiple lanes?\n", 
     241    "\n", 
     242    "- ### OR = ON RAMP\n", 
     243    "OR RAMP_ON = on ramp <br>\n", 
     244    "OR SD_? = on_ramp multiple lanes?\n", 
     245    "\n", 
     246    "- ### QU = QUEUE\n", 
     247    "QU QUEUE = queue lane (something to do with on ramp)\n", 
     248    "\n", 
     249    "- ### DM = DEMAND\n", 
     250    "DM DEMAND = demand (something to do with on ramp)\n", 
     251    "\n", 
     252    "- ### PA = PASSAGE\n", 
     253    "PA PASSAGE = passage (something to do with on ramp)\n", 
     254    "\n", 
     255    "- ### RH = HOV RAMP\n", 
     256    "RH RAMP_HOV = HOV ramp\n", 
     257    "\n", 
     258    "## Confusing but known?\n", 
     259    "\n", 
     260    "- ### FF FWY TO FWY\n", 
     261    "FF < many different lane descriptions >\n", 
     262    "\n", 
     263    "- ### CD = COLLECTOR / DISTRIBUTOR\n", 
     264    "CD COLL._DIST_1 <br>\n", 
     265    "CD COLL._DIST_2 <br>\n", 
     266    "CD COLL._DIST_OFF <br>\n", 
     267    "CD SD_?\n", 
     268    "\n", 
     269    "- ### OC = COLLECTOR / DISTRIBUTOR\n", 
     270    "OC COLL._DIST_? <br>\n", 
     271    "OC COLL._DIST_ON <br>\n", 
     272    "OC SD_5\n", 
     273    "\n", 
     274    "## Unknown\n", 
     275    "- ### FC ?\n", 
     276    "\n", 
     277    "- ### OO ?\n", 
     278    "\n", 
     279    "- ### HB ?\n", 
     280    "\n", 
     281    "- ### HF ?\n", 
     282    "\n", 
     283    "- ### HN ?\n", 
     284    "\n", 
     285    "- ### OF ?\n", 
     286    "\n", 
     287    "- ### FO ?" 
     288   ] 
     289  }, 
     290  { 
     291   "cell_type": "code", 
     292   "execution_count": null, 
     293   "metadata": { 
     294    "collapsed": true 
     295   }, 
     296   "outputs": [], 
     297   "source": [] 
     298  } 
     299 ], 
     300 "metadata": { 
     301  "kernelspec": { 
     302   "display_name": "Python 3", 
     303   "language": "python", 
     304   "name": "python3" 
     305  }, 
     306  "language_info": { 
     307   "codemirror_mode": { 
     308    "name": "ipython", 
     309    "version": 3 
     310   }, 
     311   "file_extension": ".py", 
     312   "mimetype": "text/x-python", 
     313   "name": "python", 
     314   "nbconvert_exporter": "python", 
     315   "pygments_lexer": "ipython3", 
     316   "version": "3.6.3" 
     317  } 
     318 }, 
    4319 "nbformat": 4, 
    5320 "nbformat_minor": 2 
  • branches/unique_lane_types/unique_lane_types.ipynb

    r235 r237  
    44   "cell_type": "code", 
    55   "execution_count": 1, 
    6    "metadata": {}, 
     6   "metadata": { 
     7    "collapsed": true 
     8   }, 
    79   "outputs": [], 
    810   "source": [ 
     
    3133  { 
    3234   "cell_type": "code", 
    33    "execution_count": 2, 
    34    "metadata": {}, 
     35   "execution_count": 4, 
     36   "metadata": { 
     37    "collapsed": true 
     38   }, 
    3539   "outputs": [], 
    3640   "source": [ 
    3741    "import json\n", 
    38     "f = open('unique_lane_types_results.txt','w')\n", 
    39     "f.write(json.dumps(loop_dict, indent=1))\n", 
    40     "f.close()\n" 
     42    "# f = open('unique_lane_types_results.txt','w')\n", 
     43    "# f.write(json.dumps(loop_dict, indent=1))\n", 
     44    "# f.close()\n" 
    4145   ] 
     46  }, 
     47  { 
     48   "cell_type": "code", 
     49   "execution_count": 5, 
     50   "metadata": {}, 
     51   "outputs": [ 
     52    { 
     53     "name": "stdout", 
     54     "output_type": "stream", 
     55     "text": [ 
     56      "{\n", 
     57      "  \"OR\": {\n", 
     58      "    \"RAMP_ON\": 278,\n", 
     59      "    \"SD_3\": 6,\n", 
     60      "    \"SD_5\": 5,\n", 
     61      "    \"SD_2\": 3,\n", 
     62      "    \"SD_4\": 3,\n", 
     63      "    \"SD_1\": 4\n", 
     64      "  },\n", 
     65      "  \"QU\": {\n", 
     66      "    \"QUEUE\": 317\n", 
     67      "  },\n", 
     68      "  \"DM\": {\n", 
     69      "    \"DEMAND\": 314,\n", 
     70      "    \"PASSAGE\": 4\n", 
     71      "  },\n", 
     72      "  \"PA\": {\n", 
     73      "    \"PASSAGE\": 315,\n", 
     74      "    \"DEMAND\": 4\n", 
     75      "  },\n", 
     76      "  \"RH\": {\n", 
     77      "    \"RAMP_HOV\": 103,\n", 
     78      "    \"SD_1\": 1\n", 
     79      "  },\n", 
     80      "  \"FR\": {\n", 
     81      "    \"RAMP_OFF\": 171,\n", 
     82      "    \"SD_2\": 34,\n", 
     83      "    \"SD_3\": 27,\n", 
     84      "    \"SD_4\": 20,\n", 
     85      "    \"SD_5\": 14,\n", 
     86      "    \"SD_6\": 7,\n", 
     87      "    \"SD_1\": 6,\n", 
     88      "    \"COLL._DIST_2\": 1,\n", 
     89      "    \"COLL._DIST_1\": 1\n", 
     90      "  },\n", 
     91      "  \"ML\": {\n", 
     92      "    \"ML_1\": 546,\n", 
     93      "    \"ML_2\": 548,\n", 
     94      "    \"ML_3\": 500,\n", 
     95      "    \"ML_4\": 375,\n", 
     96      "    \"ML_5\": 136,\n", 
     97      "    \"ML_6\": 25,\n", 
     98      "    \"SD_3\": 1,\n", 
     99      "    \"SD_5\": 1,\n", 
     100      "    \"SD_1\": 3,\n", 
     101      "    \"SD_2\": 3,\n", 
     102      "    \"OS_1\": 2,\n", 
     103      "    \"OS_2\": 2\n", 
     104      "  },\n", 
     105      "  \"HV\": {\n", 
     106      "    \"SD_1\": 288,\n", 
     107      "    \"SD_2\": 24,\n", 
     108      "    \"SD_3\": 11,\n", 
     109      "    \"SD_4\": 10,\n", 
     110      "    \"RAMP_HOV\": 1\n", 
     111      "  },\n", 
     112      "  \"OC\": {\n", 
     113      "    \"COLL._DIST_1\": 3,\n", 
     114      "    \"COLL._DIST_2\": 2,\n", 
     115      "    \"COLL._DIST_ON\": 4,\n", 
     116      "    \"SD_5\": 2\n", 
     117      "  },\n", 
     118      "  \"OS\": {\n", 
     119      "    \"OS_1\": 262,\n", 
     120      "    \"OS_2\": 262,\n", 
     121      "    \"OS_3\": 217,\n", 
     122      "    \"OS_4\": 136,\n", 
     123      "    \"OS_5\": 47,\n", 
     124      "    \"OS_6\": 12,\n", 
     125      "    \"ML_1\": 1,\n", 
     126      "    \"ML_2\": 1,\n", 
     127      "    \"SD_3\": 1,\n", 
     128      "    \"SD_4\": 1,\n", 
     129      "    \"SD_2\": 1\n", 
     130      "  },\n", 
     131      "  \"OH\": {\n", 
     132      "    \"SD_2\": 93,\n", 
     133      "    \"SD_6\": 2,\n", 
     134      "    \"SD_3\": 8,\n", 
     135      "    \"SD_4\": 6,\n", 
     136      "    \"SD_5\": 2,\n", 
     137      "    \"SD_1\": 9\n", 
     138      "  },\n", 
     139      "  \"FF\": {\n", 
     140      "    \"SD_4\": 30,\n", 
     141      "    \"SD_5\": 23,\n", 
     142      "    \"COLL._DIST_ON\": 3,\n", 
     143      "    \"SD_2\": 21,\n", 
     144      "    \"SD_3\": 19,\n", 
     145      "    \"COLL._DIST_1\": 3,\n", 
     146      "    \"COLL._DIST_2\": 4,\n", 
     147      "    \"COLL._DIST_OFF\": 3,\n", 
     148      "    \"SD_1\": 17,\n", 
     149      "    \"SD_6\": 5,\n", 
     150      "    \"DEMAND\": 1,\n", 
     151      "    \"RAMP_ON\": 1,\n", 
     152      "    \"RAMP_OFF\": 1,\n", 
     153      "    \"ML_3\": 1\n", 
     154      "  },\n", 
     155      "  \"FC\": {\n", 
     156      "    \"COLL._DIST_OFF\": 4,\n", 
     157      "    \"SD_6\": 1,\n", 
     158      "    \"COLL._DIST_1\": 1,\n", 
     159      "    \"SD_3\": 2\n", 
     160      "  },\n", 
     161      "  \"FO\": {\n", 
     162      "    \"SD_4\": 12,\n", 
     163      "    \"SD_5\": 10,\n", 
     164      "    \"SD_6\": 6,\n", 
     165      "    \"SD_3\": 10,\n", 
     166      "    \"ML_3\": 1,\n", 
     167      "    \"SD_1\": 2,\n", 
     168      "    \"SD_2\": 5,\n", 
     169      "    \"COLL._DIST_1\": 2,\n", 
     170      "    \"COLL._DIST_2\": 2,\n", 
     171      "    \"RAMP_HOV\": 1\n", 
     172      "  },\n", 
     173      "  \"CD\": {\n", 
     174      "    \"COLL._DIST_1\": 26,\n", 
     175      "    \"COLL._DIST_2\": 9,\n", 
     176      "    \"COLL._DIST_OFF\": 1,\n", 
     177      "    \"SD_5\": 3,\n", 
     178      "    \"SD_6\": 2,\n", 
     179      "    \"SD_3\": 1,\n", 
     180      "    \"SD_2\": 1,\n", 
     181      "    \"SD_1\": 1\n", 
     182      "  },\n", 
     183      "  \"OF\": {\n", 
     184      "    \"SD_3\": 23,\n", 
     185      "    \"RAMP_OFF\": 21,\n", 
     186      "    \"SD_1\": 26,\n", 
     187      "    \"SD_2\": 10,\n", 
     188      "    \"SD_4\": 7,\n", 
     189      "    \"SD_5\": 2,\n", 
     190      "    \"COLL._DIST_1\": 1,\n", 
     191      "    \"RAMP_ON\": 1\n", 
     192      "  },\n", 
     193      "  \"HN\": {\n", 
     194      "    \"RAMP_ON\": 1,\n", 
     195      "    \"SD_5\": 1\n", 
     196      "  },\n", 
     197      "  \"HF\": {\n", 
     198      "    \"RAMP_OFF\": 1,\n", 
     199      "    \"SD_2\": 1\n", 
     200      "  },\n", 
     201      "  \"HB\": {\n", 
     202      "    \"SD_5\": 2,\n", 
     203      "    \"COLL._DIST_1\": 1,\n", 
     204      "    \"SD_6\": 1\n", 
     205      "  },\n", 
     206      "  \"OO\": {\n", 
     207      "    \"SD_1\": 1,\n", 
     208      "    \"SD_2\": 1,\n", 
     209      "    \"SD_3\": 2,\n", 
     210      "    \"RAMP_ON\": 1\n", 
     211      "  }\n", 
     212      "}\n" 
     213     ] 
     214    } 
     215   ], 
     216   "source": [ 
     217    "print(json.dumps(loop_dict, indent=2))" 
     218   ] 
     219  }, 
     220  { 
     221   "cell_type": "markdown", 
     222   "metadata": {}, 
     223   "source": [ 
     224    "## Known lane types\n", 
     225    "\n", 
     226    "- ### ML = MAIN LINE\n", 
     227    "ML ML_? = main line lane\n", 
     228    "\n", 
     229    "- ### HV = HOV LANE\n", 
     230    "HV SD_? = HOV LANE\n", 
     231    "\n", 
     232    "- ### OS = OPP SIDE ?\n", 
     233    "OS OS_? = opp side lane\n", 
     234    "\n", 
     235    "- ### OH = OPP HOV LANE\n", 
     236    "OH SD_? = opp HOV lane\n", 
     237    "\n", 
     238    "- ### FR = OFF RAMP\n", 
     239    "FR RAMP_OFF = off ramp <br>\n", 
     240    "FR SD_? = off ramp multiple lanes?\n", 
     241    "\n", 
     242    "- ### OR = ON RAMP\n", 
     243    "OR RAMP_ON = on ramp <br>\n", 
     244    "OR SD_? = on_ramp multiple lanes?\n", 
     245    "\n", 
     246    "- ### QU = QUEUE\n", 
     247    "QU QUEUE = queue lane (something to do with on ramp)\n", 
     248    "\n", 
     249    "- ### DM = DEMAND\n", 
     250    "DM DEMAND = demand (something to do with on ramp)\n", 
     251    "\n", 
     252    "- ### PA = PASSAGE\n", 
     253    "PA PASSAGE = passage (something to do with on ramp)\n", 
     254    "\n", 
     255    "- ### RH = HOV RAMP\n", 
     256    "RH RAMP_HOV = HOV ramp\n", 
     257    "\n", 
     258    "## Confusing but known?\n", 
     259    "\n", 
     260    "- ### FF FWY TO FWY\n", 
     261    "FF < many different lane descriptions >\n", 
     262    "\n", 
     263    "- ### CD = COLLECTOR / DISTRIBUTOR\n", 
     264    "CD COLL._DIST_1 <br>\n", 
     265    "CD COLL._DIST_2 <br>\n", 
     266    "CD COLL._DIST_OFF <br>\n", 
     267    "CD SD_?\n", 
     268    "\n", 
     269    "- ### OC = COLLECTOR / DISTRIBUTOR\n", 
     270    "OC COLL._DIST_? <br>\n", 
     271    "OC COLL._DIST_ON <br>\n", 
     272    "OC SD_5\n", 
     273    "\n", 
     274    "## Unknown\n", 
     275    "- ### FC ?\n", 
     276    "\n", 
     277    "- ### OO ?\n", 
     278    "\n", 
     279    "- ### HB ?\n", 
     280    "\n", 
     281    "- ### HF ?\n", 
     282    "\n", 
     283    "- ### HN ?\n", 
     284    "\n", 
     285    "- ### OF ?\n", 
     286    "\n", 
     287    "- ### FO ?" 
     288   ] 
     289  }, 
     290  { 
     291   "cell_type": "code", 
     292   "execution_count": null, 
     293   "metadata": { 
     294    "collapsed": true 
     295   }, 
     296   "outputs": [], 
     297   "source": [] 
    42298  } 
    43299 ], 
  • trunk/IDE_metadata/NetBeans/TMCSim/nbproject/project.properties

    r133 r237  
    7070    ${file.reference.mockito-1.10.19.jar}:\ 
    7171    ${file.reference.commons-lang-2.4.jar}:\ 
    72     ${libs.junit_4.classpath} 
     72    ${libs.junit_4.classpath}:\ 
     73    ${libs.absolutelayout.classpath} 
    7374annotation.processing.enabled.in.editor=false 
    7475build.generated.sources.dir=${build.dir}/generated-sources 
  • trunk/src/atmsdriver/ConsoleTrafficDriver.java

    r234 r237  
    7979            ConsoleDriverProperties.load(new FileInputStream(System.getProperty("ATMSDRIVER_PROPERTIES"))); 
    8080        } catch (Exception e) { 
    81             Logger.getLogger("CosoleDriver").logp(Level.SEVERE, "ConsoleDriver", 
     81            Logger.getLogger("ConsoleDriver").logp(Level.SEVERE, "ConsoleDriver", 
    8282                    "Constructor", "Exception in reading properties file.", e); 
    8383        } 
  • trunk/src/atmsdriver/model/Highway.java

    r212 r237  
    11package atmsdriver.model; 
    22 
     3import atmsdriver.model.Station.DIRECTION; 
    34import java.util.ArrayList; 
    45import java.util.List; 
     
    1718    /** The ordered list of stations (lane detector stations) on this highway */ 
    1819    public final List<Station> stations; 
    19  
     20         
    2021    /** Construct a highway  
    2122     *  
     
    2829        this.stations = stations; 
    2930    } 
     31     
     32    /** 
     33     *  
     34     */ 
     35    public List<DIRECTION> getDirections() 
     36    { 
     37                    // Get available directions for route 
     38            ArrayList<DIRECTION> availDirs = new ArrayList<>(); 
     39            for(Station stn : stations) 
     40            { 
     41                if(!availDirs.contains(stn.direction)) 
     42                { 
     43                    availDirs.add(stn.direction); 
     44                } 
     45            } 
     46            return availDirs; 
     47    } 
     48     
     49    @Override 
     50    public String toString() 
     51    { 
     52        return Integer.toString(this.routeNumber); 
     53    } 
    3054} 
  • trunk/src/atmsdriver/model/Highways.java

    r234 r237  
    11package atmsdriver.model; 
    22 
     3import atmsdriver.batchbuilder.TrafficLaneEvent; 
     4import atmsdriver.model.LoopDetector.DOTCOLOR; 
    35import atmsdriver.model.Station.DIRECTION; 
    46import java.io.File; 
     
    520522        return result.toString(); 
    521523    } 
     524     
     525    /** 
     526     * Generates the route number list, used for user input validation. 
     527     * @return list of route numbers. 
     528     */ 
     529    public List<Integer> getAllRouteNums() 
     530    { 
     531        ArrayList<Integer> routeNums = new ArrayList<>(); 
     532        // add the route number for each highway to the list 
     533        for(Highway hwy : highways) 
     534        { 
     535            routeNums.add(hwy.routeNumber); 
     536        } 
     537        return routeNums; 
     538    } 
     539     
    522540    /** 
    523541     * XML tags used in writeToXML() 
     
    535553        } 
    536554    } 
     555     
     556    public void reset() 
     557    { 
     558        for(FEPLine line : lines) 
     559        { 
     560            for(Station stn : line.stations) 
     561            { 
     562                for(LoopDetector ld : stn.loops) 
     563                { 
     564                    ld.occ = 0; 
     565                    ld.vol = 0; 
     566                } 
     567            } 
     568        } 
     569    } 
     570     
     571    public void applyTrafficLaneEvent(TrafficLaneEvent event) 
     572    { 
     573        Integer routeNum = event.routeNum; 
     574        Highway hwy = getHighwayByRouteNumber(routeNum); 
     575        for(Station stn: hwy.stations) 
     576        { 
     577            if(stn.equals(event.station)) 
     578            { 
     579                for(LoopDetector ld : stn.loops) 
     580                { 
     581                    if(ld.equals(event.loopDetector)) 
     582                    { 
     583                        ld.occ = event.color.occupancy(); 
     584                        ld.vol = event.color.volume(); 
     585                        break; 
     586                    } 
     587                } 
     588                break; 
     589            } 
     590        } 
     591    } 
    537592} 
  • trunk/src/atmsdriver/model/Station.java

    r234 r237  
    22 
    33import atmsdriver.model.LoopDetector.DOTCOLOR; 
     4import java.util.ArrayList; 
    45import java.util.List; 
    56import org.w3c.dom.Document; 
     
    366367            return this.toString().substring(0, 1); 
    367368        } 
    368  
     369         
    369370        public DIRECTION getOpposite() 
    370371        { 
     
    392393        public static DIRECTION toDirection(String letter) 
    393394        { 
     395            if(letter.indexOf(letter.charAt(0)) == -1) 
     396            { 
     397                return null; 
     398            } 
    394399            return values()[allLetters.indexOf(letter.charAt(0))]; 
    395400        } 
    396  
     401    } 
     402     
     403    @Override 
     404    public String toString() 
     405    { 
     406        return Integer.toString(this.ldsID); 
    397407    } 
    398408} 
  • trunk/src/tmcsim/application.properties

    r234 r237  
    1 #Thu, 23 Nov 2017 17:06:06 -0800 
     1#Wed, 13 Dec 2017 04:11:31 -0800 
    22 
    3 Application.revision=232 
     3Application.revision=234 
    44 
    55Application.buildnumber=88 
Note: See TracChangeset for help on using the changeset viewer.