{"id":4010,"date":"2022-08-19T11:50:29","date_gmt":"2022-08-19T16:50:29","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=4010"},"modified":"2022-08-24T05:54:58","modified_gmt":"2022-08-24T10:54:58","slug":"coordenadas-rayo-reflejado-en-perfil-por-tramos","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/coordenadas-rayo-reflejado-en-perfil-por-tramos\/","title":{"rendered":"Coordenadas - Rayo reflejado en perfil por tramos"},"content":{"rendered":"<p><strong>Referencia<\/strong>: <a href=\"http:\/\/blog.espol.edu.ec\/ccpg1001\/optica-rayo-reflejado-en-plano-inclinado\/\">Optica \u2013 Rayo reflejado en plano inclinado<\/a><\/p>\n<p>Para el an\u00e1lisis de rayo reflejado en un perfil de terreno, se realiza calculando el punto reflejado para cada tramo del perfil usando como base el algoritmo de <a href=\"http:\/\/blog.espol.edu.ec\/ccpg1001\/optica-rayo-reflejado-en-plano-inclinado\/\">rayo reflejado en plano inclinado<\/a>.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2022\/08\/rayoReflejadoPorTramos01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4013\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2022\/08\/rayoReflejadoPorTramos01.png\" alt=\"\" width=\"553\" height=\"435\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2022\/08\/rayoReflejadoPorTramos01.png 553w, https:\/\/blog.espol.edu.ec\/girni\/files\/2022\/08\/rayoReflejadoPorTramos01-300x236.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/a><\/p>\n<h2>Instrucciones en Python<\/h2>\n<pre><span style=\"color: #ff0000\"># rayo incidente y reflejado<\/span>\r\n<span style=\"color: #ff0000\"># en perfil por tramos<\/span>\r\n<span style=\"color: #ff0000\"># blog.espol.edu.ec\/girni<\/span>\r\n<span style=\"color: #d35400\">import<\/span> numpy <span style=\"color: #d35400\">as<\/span> np\r\n<span style=\"color: #d35400\">import<\/span> matplotlib.pyplot <span style=\"color: #d35400\">as<\/span> plt\r\n\r\n<span style=\"color: #ff0000\"># INGRESO<\/span>\r\n<span style=\"color: #ff0000\"># posici\u00f3n de antenas tx, rx<\/span>\r\nxi = [1,11]\r\nyi = [4,2]\r\n\r\n<span style=\"color: #ff0000\"># perfil suelo<\/span>\r\nsx = [1,4,8,11]\r\nsy = [1,0.5,0.4,1]\r\n\r\n<span style=\"color: #ff0000\"># PROCEDIMIENTO<\/span>\r\n<span style=\"color: #d35400\">def<\/span> <span style=\"color: #0000e6\">reflejotramo<\/span>(xi,yi,sx,sy):\r\n    <span style=\"color: #ff0000\"># posici\u00f3n de antenas tx, rx<\/span>\r\n    xa,xb = xi\r\n    ya,yb = yi\r\n    <span style=\"color: #ff0000\"># perfil suelo<\/span>\r\n    xas,xbs = sx\r\n    sa ,sb  = sy\r\n    <span style=\"color: #ff0000\"># pendiente de suelo<\/span>\r\n    ms = (sb-sa)\/(xbs-xas)\r\n    bs = sa-ms*xas\r\n    <span style=\"color: #ff0000\"># punto de reflejo<\/span>\r\n    numerador   = bs*(xa+xb)-(xa*yb+xb*ya)+2*ms*xa*xb\r\n    denominador = 2*bs-(ya+yb)+ms*(xa+xb)\r\n    xc = numerador\/denominador\r\n    sc = ms*xc+bs\r\n    reflejado = []\r\n    <span style=\"color: #d35400\">if<\/span> xc&gt;=xas <span style=\"color: #d35400\">and<\/span> xc&lt;=xbs:\r\n        reflejado = [xc,sc]\r\n    <span style=\"color: #d35400\">return<\/span>(reflejado)\r\n\r\n<span style=\"color: #ff0000\"># analiza para cada tramo del suelo<\/span>\r\nn = <span style=\"color: #ff00ff\">len<\/span>(sx)\r\nxc = [] ; sc = []\r\n<span style=\"color: #d35400\">for<\/span> k <span style=\"color: #d35400\">in<\/span> <span style=\"color: #ff00ff\">range<\/span>(0,n-1,1):\r\n    sxk = sx[k:k+2] <span style=\"color: #ff0000\"># un tramo de suelo<\/span>\r\n    syk = sy[k:k+2]\r\n    reflejado = reflejotramo(xi,yi,sxk,syk)\r\n    <span style=\"color: #d35400\">if<\/span> <span style=\"color: #ff00ff\">len<\/span>(reflejado)&gt;0:\r\n        xc.append(reflejado[0])\r\n        sc.append(reflejado[1])\r\n\r\n<span style=\"color: #ff0000\"># SALIDA<\/span>\r\n<span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'puntos reflejados:'<\/span>)\r\n<span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'xc:'<\/span>,xc)\r\n<span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'sc'<\/span>,sc)\r\n\r\n<span style=\"color: #ff0000\"># GRAFICA<\/span>\r\n<span style=\"color: #ff0000\"># antenas puntos en el plano<\/span>\r\nplt.scatter([xi[0],xi[1]],\r\n            [yi[0],yi[1]],\r\n            label=<span style=\"color: #008000\">'antenas'<\/span>)\r\nplt.plot([xi[0],xi[1]],\r\n         [yi[0],yi[1]],\r\n         color=<span style=\"color: #008000\">'green'<\/span>,\r\n         linestyle=<span style=\"color: #008000\">'dashed'<\/span>,\r\n         label=<span style=\"color: #008000\">'directo'<\/span>)\r\n<span style=\"color: #ff0000\"># analiza para cada tramo del suelo<\/span>\r\nnc = <span style=\"color: #ff00ff\">len<\/span>(sc)\r\nplt.scatter(xc,sc,color=<span style=\"color: #008000\">'orange'<\/span>,\r\n            label=<span style=\"color: #008000\">'punto reflejo'<\/span>)\r\n<span style=\"color: #ff0000\"># lineas de rayos<\/span>\r\n<span style=\"color: #d35400\">for<\/span> k <span style=\"color: #d35400\">in<\/span> <span style=\"color: #ff00ff\">range<\/span>(0,nc,1):\r\n    <span style=\"color: #ff0000\"># lado izquierdo<\/span>\r\n    plt.plot([xi[0],xc[k]],\r\n             [yi[0],sc[k]],\r\n             color=<span style=\"color: #008000\">'blue'<\/span>,\r\n             linestyle=<span style=\"color: #008000\">'dashdot'<\/span>)\r\n    <span style=\"color: #ff0000\"># lado derecho<\/span>\r\n    plt.plot([xc[k],xi[1]],\r\n             [sc[k],yi[1]],\r\n             color=<span style=\"color: #008000\">'blue'<\/span>,\r\n             linestyle=<span style=\"color: #008000\">'dashdot'<\/span>)\r\n    <span style=\"color: #ff0000\"># etiquetas anotadas<\/span>\r\n    <span style=\"color: #ff0000\">#plt.annotate(' reflejo',[xc,sc])<\/span>\r\n\r\n<span style=\"color: #ff0000\"># perfil de suelo<\/span>\r\nplt.plot(sx,sy,color=<span style=\"color: #008000\">'brown'<\/span>,\r\n         label=<span style=\"color: #008000\">'perfil suelo'<\/span>)\r\n\r\n<span style=\"color: #ff0000\"># etiquetas<\/span>\r\nplt.legend()\r\nplt.xlabel(<span style=\"color: #008000\">'x'<\/span>)\r\nplt.ylabel(<span style=\"color: #008000\">'y'<\/span>)\r\nplt.title(<span style=\"color: #008000\">'reflexi\u00f3n de rayos en suelo por tramos'<\/span>)\r\nplt.grid()\r\n\r\nplt.show()\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Referencia: Optica \u2013 Rayo reflejado en plano inclinado Para el an\u00e1lisis de rayo reflejado en un perfil de terreno, se realiza calculando el punto reflejado para cada tramo del perfil usando como base el algoritmo de rayo reflejado en plano inclinado. Instrucciones en Python # rayo incidente y reflejado # en perfil por tramos # &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/coordenadas-rayo-reflejado-en-perfil-por-tramos\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"Coordenadas - Rayo reflejado en perfil por tramos\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1466681],"tags":[],"class_list":["post-4010","post","type-post","status-publish","format-standard","hentry","category-lorawan-registro-de-estados"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/4010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=4010"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/4010\/revisions"}],"predecessor-version":[{"id":4015,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/4010\/revisions\/4015"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=4010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=4010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=4010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}