{"id":530,"date":"2014-08-25T15:59:00","date_gmt":"2014-08-25T18:59:00","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/?p=530"},"modified":"2021-06-24T07:57:25","modified_gmt":"2021-06-24T10:57:25","slug":"transporte-publico-sumo","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/transporte-publico-sumo\/","title":{"rendered":"Simulando o transporte p\u00fablico no SUMO"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Acompanhando os desenvolvimentos anteriores com o SUMO (<a title=\"Introdu\u00e7\u00e3o ao SUMO\" href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/introducao-ao-sumo\/\" target=\"_blank\" rel=\"noopener\">Introdu\u00e7\u00e3o ao SUMO<\/a>, <a title=\"Gerar diversas rotas, tipos de ve\u00edculo e ve\u00edculos no SUMO\" href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/diversos-veiculos-sumo\/\" target=\"_blank\" rel=\"noopener\">Gerar diversas rotas, tipos de ve\u00edculo e ve\u00edculos no SUMO<\/a> e <a title=\"Gera\u00e7\u00e3o de fluxos de ve\u00edculos no SUMO\" href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/sumo-flow\/\" target=\"_blank\" rel=\"noopener\">Gera\u00e7\u00e3o de fluxos de ve\u00edculos no SUMO<\/a>), foi visto a possibilidade de especificar \u00f4nibus para compor a simula\u00e7\u00e3o. A circula\u00e7\u00e3o de \u00f4nibus exige um elementos de infraestrutura, que s\u00e3o as <strong>paradas de \u00f4nibus<\/strong>. Para especificar as paradas de \u00f4nibus \u00e9 preciso defini-las em um arquivo adicional para a cria\u00e7\u00e3o da <em>network<\/em>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo abaixo especifica uma&nbsp;parada de \u00f4nibus. O primeiro par\u00e2metro \u00e9 o identificador da parada e deve ser \u00fanico. O par\u00e2metro seguinte \u00e9 o nome da <em>lane<\/em> onde ser\u00e1 colocada a &nbsp;parada e de onde vem esse nome ser\u00e1 explicado adiante. Os par\u00e2metros <em>startPos<\/em> e <em>endPos<\/em> s\u00e3o as metragens&nbsp;inicial e final de onde estar\u00e1 localizada a parada na <em>lane<\/em> especificada (em que altura da via o ponto de \u00f4nibus come\u00e7a e termina). &nbsp;O \u00faltimo par\u00e2metro s\u00e3o nomes para as linhas que utilizar\u00e3o a parada e \u00e9 opcional.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:default decode:true\"><code lang=\"xml\" class=\"language-xml\">&lt;additional&gt;\n    &lt;busStop id=\"busstop1\" lane=\"1to2_0\" startPos=\"40\" endPos=\"50\"&nbsp;lines=\"001 002\" \/&gt;\n&lt;\/additional&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O&nbsp;nome da <em>lane<\/em> para colocar na configura\u00e7\u00e3o da parada de \u00f4nibus \u00e9 composto pelo nome do <em>edge<\/em>, seguido de um caracter de <em>underline<\/em> e finalizado com o n\u00famero da <em>lane<\/em> onde estar\u00e1 localizada a parada. No arquivo com extens\u00e3o .net.xml gerado pelo Netconvert \u00e9 poss\u00edvel conferir o nome das <em>lanes<\/em> existentes. As defini\u00e7\u00e3o a seguir foi extra\u00edda da rede gerada nesse material e onde pode ser visto o identificar a <em>line<\/em> (atributo &#8220;id&#8221; que \u00e9 visto na segunda linha).<\/p>\n\n\n\n<pre class=\"wp-block-code lang:default decode:true\"><code lang=\"xml\" class=\"language-xml\">&lt;edge id=\"1to2\" from=\"p1\" to=\"p2\" priority=\"-1\"&gt;\n    &lt;lane id=\"1to2_0\" index=\"0\" speed=\"13.90\" length=\"93.95\" shape=\"0.00,-1.65 93.95,-1.65\"\/&gt;\n&lt;\/edge&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tendo especificado o arquivo adicional, \u00e9 preciso salv\u00e1-lo com a extens\u00e3o .add.xml e adicion\u00e1-lo ao arquivo de configura\u00e7\u00e3o da simula\u00e7\u00e3o. Considerando que o arquivo adicional foi salvo com o nome de &#8220;meu.add.xml&#8221;, o arquivo&nbsp;de configura\u00e7\u00e3o (arquivo com a extens\u00e3o&nbsp;.sumo.cfg) adicionando a quinta linha.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:default decode:true\"><code lang=\"xml\" class=\"language-xml line-numbers\">&lt;configuration&gt;\n  &lt;input&gt;\n    &lt;net-file value=\"meu.net.xml\" \/&gt;\n    &lt;route-files value=\"meu.rou.xml\" \/&gt;\n    &lt;additional-files value=\"meu.add.xml\"\/&gt;\n  &lt;\/input&gt;\n&lt;\/configuration&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A partir dessa inclus\u00e3o \u00e9 necess\u00e1rio novamente fazer uso do Netconvert (caso tenha esquecido como fazer o uso, ele est\u00e1 especificado em <a title=\"Introdu\u00e7\u00e3o ao SUMO\" href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/introducao-ao-sumo\/\" target=\"_blank\" rel=\"noopener\">Introdu\u00e7\u00e3o ao SUMO<\/a>, no item &#8220;Criando efetivamente a network&#8221;). Caso tenha sido optado por utilizar o comando via terminal, o comando ser\u00e1 acrescido desse novo arquivo nos par\u00e2metros do comando ficando: netconvert &#8211;node-files=meu.nod.xml &#8211;edge-files=meu.edg.xml <strong>&#8211;additional-files=meu.add.xml<\/strong> &#8211;output-file=meu.net.xml<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tendo definido o arquivo de configura\u00e7\u00e3o j\u00e1 \u00e9 poss\u00edvel abri-lo no SUMO e ver que foi adicionado &nbsp;um novo elemento gr\u00e1fico, ilustrado na figura abaixo. Os n\u00famero mostrado s\u00e3o os valores especificados no par\u00e2metro &#8220;<em>lines<\/em>&#8221; da configura\u00e7\u00e3o da parada.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2014\/08\/busStop.png\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"257\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2014\/08\/busStop.png\" alt=\"busStop\" class=\"wp-image-542\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2014\/08\/busStop.png 978w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2014\/08\/busStop-150x39.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2014\/08\/busStop-300x78.png 300w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/a><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Se a simula\u00e7\u00e3o for executada, ser\u00e1 visto que mesmo com a parada os \u00f4nibus n\u00e3o ir\u00e3o parar nela. \u00c9 preciso vincular a parada na defini\u00e7\u00e3o do ve\u00edculo \u00f4nibus, dizendo para ele em que paradas ele precisa parar. Isso \u00e9 feito com as linhas 7, 8 e 9 da especifica\u00e7\u00e3o de rotas a seguir.&nbsp;Observe que a defini\u00e7\u00e3o inicial de um ve\u00edculo acontece normalmente, apenas sendo feita a inclus\u00e3o de uma parada.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:default decode:true\"><code lang=\"xml\" class=\"language-xml line-numbers\">&lt;routes&gt;\n  &lt;vType accel=\"2\" decel=\"4\" id=\"Car\" length=\"5\" maxSpeed=\"20\" sigma=\"0\" \/&gt;\n  &lt;vType accel=\"1.5\" decel=\"3\" id=\"Bus\" length=\"15\" maxSpeed=\"15\" sigma=\"0.5\" color=\"1,0,0\" \/&gt;\n  &lt;route id=\"rota0\" edges=\"1to2 2to3\" \/&gt;\n  &lt;vehicle depart=\"1\"  id=\"carro1\"  route=\"rota0\" type=\"Car\" \/&gt;\n  &lt;vehicle depart=\"1\"  id=\"onibus1\" route=\"rota0\" type=\"Bus\" departLane=\"0\" \/&gt;\n  &lt;vehicle depart=\"20\" id=\"onibus2\" route=\"rota0\" type=\"Bus\" color=\"0,0,1\"&gt;\n        &lt;stop busStop=\"busstop1\" duration=\"20\"\/&gt;\n  &lt;\/vehicle&gt;\n&lt;\/routes&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O novo ve\u00edculo foi feito alterando sua cor individual. Observe que a cor de um ve\u00edculo do tipo &#8220;Bus&#8221; \u00e9 vermelha, mas na defini\u00e7\u00e3o desse novo \u00f4nibus foi colocado que a cor dele deve ser azul (valor 0,0,1 para o par\u00e2metro <em>color<\/em>). Na&nbsp;defini\u00e7\u00e3o da parada (<em>stop<\/em>), na linha 8, \u00e9 colocado o identificador da parada atrav\u00e9s do par\u00e2metro &#8220;<em>busStop<\/em>&#8221; e uma dura\u00e7\u00e3o, especificada em segundos e que corresponde a quanto tempo o ve\u00edculo deve ficar parado al\u00ed. O identificar da parada \u00e9 o nome do identificar utilizado na especifica\u00e7\u00e3o do arquivo adicional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Executando a simula\u00e7\u00e3o \u00e9 poss\u00edvel ver agora que o carro e o primeiro \u00f4nibus da simula\u00e7\u00e3o continuam n\u00e3o parando no ponto especificado, mas o pr\u00f3ximo \u00f4nibus (o ve\u00edculo na cor verde) ir\u00e1 realmente parar por um tempo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Acompanhando os desenvolvimentos anteriores com o SUMO (Introdu\u00e7\u00e3o ao SUMO, Gerar diversas rotas, tipos de ve\u00edculo e ve\u00edculos no SUMO e Gera\u00e7\u00e3o de fluxos de ve\u00edculos no SUMO), foi visto a possibilidade de especificar \u00f4nibus para compor a simula\u00e7\u00e3o. A circula\u00e7\u00e3o de \u00f4nibus exige um elementos de infraestrutura, que s\u00e3o as paradas de \u00f4nibus. Para [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":632,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[13],"tags":[18],"class_list":["post-530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-simulacao","tag-sumo"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"predecessor-version":[{"id":1079,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/530\/revisions\/1079"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media\/632"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}