{"id":3867,"date":"2021-11-05T09:43:02","date_gmt":"2021-11-05T14:43:02","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=3867"},"modified":"2022-07-24T22:53:41","modified_gmt":"2022-07-25T03:53:41","slug":"perfil-y-zona-fresnel","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/perfil-y-zona-fresnel\/","title":{"rendered":"3.1. Coordenadas - Perfil y zona Fresnel"},"content":{"rendered":"<p>Observar el perfil del terreno en una ruta, y estimar la primera zona de Fresnel permite revisar algunas situaciones donde se presente bloqueo, dispersi\u00f3n, difracci\u00f3n de la se\u00f1al en el enlace.<\/p>\n<p>Los datos del perfil se obtienen del proceso anterior desde el siguiente archivo:<\/p>\n<p style=\"text-align: center\"><a href=\"https:\/\/www.dropbox.com\/s\/oynlrat9loa9gz8\/Granja2021_alturas.csv?dl=0\">Granja2021_LOS.csv<\/a><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/11\/perfil_LOS_01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3871 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/11\/perfil_LOS_01.png\" alt=\"\" width=\"568\" height=\"443\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/11\/perfil_LOS_01.png 568w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/11\/perfil_LOS_01-300x234.png 300w\" sizes=\"auto, (max-width: 568px) 100vw, 568px\" \/><\/a><\/p>\n<p>En el proceso se a\u00f1ade al perfil la altura de las antenas en los dispositivos, la altura de la vegetaci\u00f3n promedio y se genera la gr\u00e1fica mostrada.<\/p>\n<pre>punto,altitud,altitud_gps,dist_Gw03,latitud,longitud,utm_este,utm_norte,utm_zLetra,utm_zNum,vegetacion,alt_antena\r\nGw03,65.0,68.3,0.0,-2.140439491218423,-79.96247385948875,615377.0,9763377.0,M,17,65.0,73.0\r\nLOS01,64.0,66.16,24.74,-2.140222431275481,-79.96252795441376,615371.0,9763401.0,M,17,64.0,65.0\r\nLOS02,59.0,66.16,75.93,-2.139770213855424,-79.96262716484223,615360.0,9763451.0,M,17,59.0,60.0\r\nLOS03,58.0,66.16,99.64,-2.139553123308579,-79.96263630222327,615359.0,9763475.0,M,17,59.5,59.0\r\n...\r\n<\/pre>\n<p>El resultado se guarda en un archivo.csv y en la gr\u00e1fica.png<\/p>\n<h2>Instrucciones en Python<\/h2>\n<pre><span style=\"color: #ff0000\"># Procesa perfiles y Zona Fresnel<\/span>\r\n<span style=\"color: #ff0000\"># girni-fiec-espol Revisi\u00f3n: 20220724<\/span>\r\n<span style=\"color: #ff0000\"># http:\/\/blog.espol.edu.ec\/girni\/<\/span>\r\n\r\n<span style=\"color: #d35400\">import<\/span> numpy <span style=\"color: #d35400\">as<\/span> np\r\n<span style=\"color: #d35400\">import<\/span> pandas <span style=\"color: #d35400\">as<\/span> pd\r\n<span style=\"color: #d35400\">import<\/span> matplotlib.pyplot <span style=\"color: #d35400\">as<\/span> plt\r\n<span style=\"color: #d35400\">import<\/span> os\r\n\r\n<span style=\"color: #ff0000\"># INGRESO<\/span>\r\narchivocsv  = <span style=\"color: #008000\">'Granja2021_LOS.csv'<\/span>\r\ncarp_coord  = <span style=\"color: #008000\">'coordenadas'<\/span>\r\ncarpeta_rsm = <span style=\"color: #008000\">'resultado_LOS'<\/span>\r\nLineaObs  = <span style=\"color: #008000\">'LOS'<\/span>\r\nsegmentos = [<span style=\"color: #008000\">'Gw03'<\/span>,<span style=\"color: #008000\">'LOS'<\/span>]\r\n<span style=\"color: #ff0000\"># Fresnel, selecciona dispositivo<\/span>\r\nanaliza_punto = <span style=\"color: #008000\">'LOS09'<\/span>\r\n\r\n<span style=\"color: #ff0000\"># vegetacion<\/span>\r\nplantas_entre  = [0, 0] <span style=\"color: #ff0000\">#[90,250]<\/span>\r\nplantas_altura = 1.6\r\n\r\n<span style=\"color: #ff0000\"># antenas<\/span>\r\nalturaGw    = 8\r\nalturapunto = 1\r\n\r\n<span style=\"color: #ff0000\"># parametros Fresnel<\/span>\r\nnFres = 1\r\nfreq  = 915 <span style=\"color: #ff0000\"># 915MHz<\/span>\r\n\r\n<span style=\"color: #ff0000\"># Gr\u00e1ficas<\/span>\r\nmuestras = 41 <span style=\"color: #ff0000\"># resoluci\u00f3n<\/span>\r\nguarda = <span style=\"color: #d35400\">True<\/span>\r\n\r\n<span style=\"color: #ff0000\"># PROCEDIMIENTO<\/span>\r\nprocesoCompleto = 0\r\n\r\n<span style=\"color: #ff0000\"># ruta de archivo<\/span>\r\n<span style=\"color: #d35400\">if<\/span> <span style=\"color: #ff00ff\">len<\/span>(carp_coord)&gt;0:\r\n    carp_coord = carp_coord+<span style=\"color: #008000\">'\/'<\/span>\r\narchivo_ruta = carp_coord + archivocsv\r\n<span style=\"color: #d35400\">if<\/span> os.path.exists(archivo_ruta):\r\n    puntostodos  = pd.read_csv(archivo_ruta,\r\n                               index_col=<span style=\"color: #008000\">'punto'<\/span>)\r\n    procesoCompleto = 1\r\n\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 1:\r\n    <span style=\"color: #ff0000\"># busca gateway<\/span>\r\n    Gw_nombre = <span style=\"color: #008000\">''<\/span>;\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntostodos.index:\r\n        <span style=\"color: #d35400\">if<\/span> unpunto.startswith(<span style=\"color: #008000\">'Gw'<\/span>):\r\n            Gw_nombre = unpunto\r\n    <span style=\"color: #d35400\">if<\/span> <span style=\"color: #ff00ff\">len<\/span>(Gw_nombre)&gt;0:\r\n        procesoCompleto = 2\r\n\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 2:\r\n    <span style=\"color: #ff0000\">#ordena por distancia<\/span>\r\n    puntostodos = puntostodos.sort_values(by=[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre])\r\n    puntostodos[<span style=\"color: #008000\">'enruta'<\/span>]=0\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntostodos.index:\r\n        <span style=\"color: #d35400\">for<\/span> elemento <span style=\"color: #d35400\">in<\/span> segmentos:\r\n            <span style=\"color: #d35400\">if<\/span> unpunto.startswith(elemento):\r\n                puntostodos.loc[[unpunto],[<span style=\"color: #008000\">'enruta'<\/span>]] = 1\r\n\r\n    puntos = puntostodos[puntostodos[<span style=\"color: #008000\">'enruta'<\/span>]==1].copy()\r\n    procesoCompleto = 3\r\n\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 3:\r\n    <span style=\"color: #ff0000\"># busca gateway y ubicaci\u00f3n de punto observado<\/span>\r\n    i_punto = -1 ; i_Gw=-1\r\n    i=0\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntos.index:\r\n        <span style=\"color: #d35400\">if<\/span> unpunto.startswith(<span style=\"color: #008000\">'Gw'<\/span>):\r\n            i_Gw = i\r\n        <span style=\"color: #d35400\">if<\/span> unpunto==analiza_punto:\r\n            i_punto = i\r\n        i = i+1\r\n    <span style=\"color: #d35400\">if<\/span> i_punto&gt;=0 <span style=\"color: #d35400\">and<\/span> i_Gw&gt;=0:\r\n        procesoCompleto = 4\r\n    \r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto ==4:\r\n    <span style=\"color: #ff0000\"># plantaci\u00f3n sector<\/span>\r\n    puntos[<span style=\"color: #008000\">'vegetacion'<\/span>] = puntos[<span style=\"color: #008000\">'altitud'<\/span>]\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntos.index:\r\n        dist_punto = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre][unpunto]\r\n        envegetacion = (dist_punto&gt;=np.min(plantas_entre))\r\n        envegetacion = envegetacion <span style=\"color: #d35400\">and<\/span> (dist_punto&lt;=np.max(plantas_entre))\r\n        <span style=\"color: #d35400\">if<\/span> envegetacion:\r\n            puntos.at[unpunto,<span style=\"color: #008000\">'vegetacion'<\/span>] = puntos[<span style=\"color: #008000\">'altitud'<\/span>][unpunto] + plantas_altura\r\n\r\n    <span style=\"color: #ff0000\"># a\u00f1ade alturas de antenas<\/span>\r\n    puntos[<span style=\"color: #008000\">'alt_antena'<\/span>] = puntos[<span style=\"color: #008000\">'altitud'<\/span>] + alturapunto\r\n    puntos.at[Gw_nombre,<span style=\"color: #008000\">'alt_antena'<\/span>] = puntos[<span style=\"color: #008000\">'altitud'<\/span>][Gw_nombre] + alturaGw\r\n\r\n    procesoCompleto = 5\r\n\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 5:\r\n    <span style=\"color: #ff0000\"># lambda Fresnel<\/span>\r\n    lamb = 300\/freq <span style=\"color: #ff0000\">#300e6(m\/s)\/(freq*1e6)<\/span>\r\n\r\n    <span style=\"color: #ff0000\"># Zona de Fresnel<\/span>\r\n    xi = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre]\r\n    yi_ant = puntos[<span style=\"color: #008000\">'alt_antena'<\/span>]\r\n    <span style=\"color: #d35400\">if<\/span> i_punto&gt;0:\r\n        \r\n        <span style=\"color: #ff0000\"># linea directa<\/span>\r\n        dy = yi_ant[i_punto]-yi_ant[i_Gw]\r\n        dx = xi[i_punto]-xi[i_Gw]\r\n        m = dy\/dx\r\n        alpha = np.arctan(m)\r\n        yi_f = <span style=\"color: #d35400\">lambda<\/span> x: m*x + yi_ant[i_Gw]\r\n\r\n        xi_D = np.linspace(xi[i_Gw],xi[i_punto],\r\n                           muestras)\r\n        yi_D = yi_f(xi_D)\r\n        dist_D = np.sqrt(dx**2+dy**2)\r\n\r\n        <span style=\"color: #ff0000\"># zona Fresnel 1<\/span>\r\n        F1_up = np.zeros(<span style=\"color: #ff00ff\">len<\/span>(xi_D))\r\n        F1_down = np.zeros(<span style=\"color: #ff00ff\">len<\/span>(xi_D))\r\n        <span style=\"color: #d35400\">for<\/span> i <span style=\"color: #d35400\">in<\/span> <span style=\"color: #ff00ff\">range<\/span>(0,<span style=\"color: #ff00ff\">len<\/span>(xi_D),1):\r\n            d1 = xi_D[i]\/np.cos(alpha)\r\n            d2 = dist_D-d1\r\n            F1 = np.sqrt(np.abs(nFres*lamb*d1*d2)\/(d1+d2))\r\n\r\n            xiu = xi_D[i]-F1*np.sin(np.abs(alpha))\r\n            d1_u = xiu\r\n            d2_u = dist_D-d1_u\r\n\r\n            xid = xi_D[i]+F1*np.sin(np.abs(alpha))\r\n            d1_d = xid\r\n            d2_d = dist_D-d1_d\r\n            <span style=\"color: #ff0000\"># Fresnel, formula<\/span>\r\n            Fup = np.sqrt(np.abs(nFres*lamb*d1_u*d2_u)\/(d1_u+d2_u))\r\n            Fdown = np.sqrt(np.abs(nFres*lamb*d1_d*d2_d)\/(d1_d+d2_d))\r\n            \r\n            <span style=\"color: #ff0000\"># Linea directa +\/- Fresnel<\/span>\r\n            F1_up[i]   = yi_D[i] + Fup*np.cos(alpha)\r\n            F1_down[i] = yi_D[i] - Fdown*np.cos(alpha)    \r\n\r\n    procesoCompleto = 6\r\n\r\n\r\n<span style=\"color: #ff0000\"># SALIDA<\/span>\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 6:\r\n    <span style=\"color: #ff00ff\">print<\/span>(puntos)\r\n    <span style=\"color: #ff0000\"># guarda el reporte en csv<\/span>\r\n    unreporte = carpeta_rsm+<span style=\"color: #008000\">'\/perfil_'<\/span>+LineaObs+<span style=\"color: #008000\">'.csv'<\/span>\r\n    <span style=\"color: #d35400\">if<\/span> os.path.exists(carpeta_rsm):\r\n        puntos.to_csv(unreporte)\r\n    <span style=\"color: #d35400\">else<\/span>:\r\n        <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'no existe carpeta:'<\/span>,carpeta_rsm)\r\n<span style=\"color: #d35400\">else<\/span>:\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'proceso completado hasta:'<\/span>, procesoCompleto)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'Revisar errores en proceso:'<\/span>, procesoCompleto+1)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'   Procesos:'<\/span>)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'1: abrir archivo de datos '<\/span>,archivocsv )\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'2: encontrar gateway con nombre Gw##'<\/span>)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'3: ordenar tabla por distancias al gateway'<\/span>)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'4: encontrar punto a analizar:'<\/span>,analiza_punto)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'5: a\u00f1adir altura de antenas y plantas'<\/span>)\r\n    <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'6: calcular zona de fresnel'<\/span>)\r\n\r\n<span style=\"color: #d35400\">if<\/span> procesoCompleto == 6:\r\n    <span style=\"color: #ff0000\"># GRAFICA<\/span>\r\n    figura,(grafica1,grafica2) = plt.subplots(2,1)\r\n\r\n    <span style=\"color: #ff0000\"># vegetacion<\/span>\r\n    con_veget = np.array(puntos[<span style=\"color: #008000\">'vegetacion'<\/span>]-puntos[<span style=\"color: #008000\">'altitud'<\/span>])\r\n    xiv = np.array(puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre])[con_veget&gt;0]\r\n    perfil = np.array(puntos[<span style=\"color: #008000\">'altitud'<\/span>])[con_veget&gt;0]\r\n    vegetacion = np.array(puntos[<span style=\"color: #008000\">'vegetacion'<\/span>])[con_veget&gt;0]\r\n\r\n    grafica1.fill_between(xiv,perfil,vegetacion,\r\n                          color=<span style=\"color: #008000\">'lightgreen'<\/span>)\r\n    <span style=\"color: #ff0000\"># perfil<\/span>\r\n    grafica1.plot(puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre],\r\n                  puntos[<span style=\"color: #008000\">'altitud'<\/span>],label=<span style=\"color: #008000\">'Perfil'<\/span>,\r\n                  color=<span style=\"color: #008000\">'brown'<\/span>)\r\n        \r\n    <span style=\"color: #ff0000\"># antenas<\/span>\r\n    grafica1.scatter(puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre],\r\n                     puntos[<span style=\"color: #008000\">'alt_antena'<\/span>],\r\n                     color=<span style=\"color: #008000\">'blue'<\/span>)\r\n    <span style=\"color: #ff0000\"># etiquetas y lineas enlace<\/span>\r\n    xigw = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre][Gw_nombre]\r\n    yigw = puntos[<span style=\"color: #008000\">'alt_antena'<\/span>][Gw_nombre]\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntos.index:\r\n        xip = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre][unpunto]\r\n        yip = puntos[<span style=\"color: #008000\">'alt_antena'<\/span>][unpunto]\r\n        grafica1.annotate(unpunto,(xip,yip),\r\n                          rotation=45)\r\n        grafica1.plot((xigw,xip),(yigw,yip),\r\n                      color = <span style=\"color: #008000\">'green'<\/span>,\r\n                      linestyle=<span style=\"color: #008000\">'dotted'<\/span>)\r\n    untitulo = <span style=\"color: #008000\">'Ruta: '<\/span>+LineaObs\r\n    untitulo = untitulo + <span style=\"color: #008000\">', Antena: Gw '<\/span>+<span style=\"color: #ff00ff\">str<\/span>(alturaGw)\r\n    untitulo = untitulo + <span style=\"color: #008000\">'m Dispositivo '<\/span>+<span style=\"color: #ff00ff\">str<\/span>(alturapunto)\r\n    untitulo = untitulo + <span style=\"color: #008000\">'m'<\/span>\r\n    grafica1.set_title(untitulo)\r\n    grafica1.set_ylabel(<span style=\"color: #008000\">'altura'<\/span>)\r\n    grafica1.legend()\r\n    grafica1.grid(<span style=\"color: #d35400\">True<\/span>,linestyle=<span style=\"color: #008000\">'dotted'<\/span>,\r\n                  axis=<span style=\"color: #008000\">'x'<\/span>,which=<span style=\"color: #008000\">'both'<\/span>)\r\n    <span style=\"color: #ff0000\"># plt.axis('equal')<\/span>\r\n\r\n    grafica2.fill_between(xiv,perfil,vegetacion,\r\n                          color=<span style=\"color: #008000\">'lightgreen'<\/span>)\r\n    <span style=\"color: #ff0000\"># perfil<\/span>\r\n    grafica2.plot(puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre],\r\n                  puntos[<span style=\"color: #008000\">'altitud'<\/span>],\r\n                  color=<span style=\"color: #008000\">'brown'<\/span>)\r\n        \r\n    <span style=\"color: #ff0000\"># antenas<\/span>\r\n    grafica2.scatter(puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre],\r\n                     puntos[<span style=\"color: #008000\">'alt_antena'<\/span>],\r\n                     color=<span style=\"color: #008000\">'blue'<\/span>)\r\n    <span style=\"color: #ff0000\"># etiquetas y lineas enlace<\/span>\r\n    xigw = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre][Gw_nombre]\r\n    yigw = puntos[<span style=\"color: #008000\">'alt_antena'<\/span>][Gw_nombre]\r\n    <span style=\"color: #d35400\">for<\/span> unpunto <span style=\"color: #d35400\">in<\/span> puntos.index:\r\n        <span style=\"color: #d35400\">if<\/span> unpunto <span style=\"color: #d35400\">in<\/span> [Gw_nombre, analiza_punto]:\r\n            xip = puntos[<span style=\"color: #008000\">'dist_'<\/span>+Gw_nombre][unpunto]\r\n            yip = puntos[<span style=\"color: #008000\">'alt_antena'<\/span>][unpunto]\r\n            grafica2.annotate(unpunto,(xip,yip),\r\n                              rotation=45)\r\n\r\n    <span style=\"color: #d35400\">if<\/span> i_punto&gt;0:\r\n        <span style=\"color: #ff0000\"># Fresnel<\/span>\r\n        grafica2.plot(xi_D,yi_D,\r\n                      label=<span style=\"color: #008000\">'linea enlace'<\/span>,\r\n                      color=<span style=\"color: #008000\">'orange'<\/span>,\r\n                      linestyle = <span style=\"color: #008000\">'dashed'<\/span>)\r\n        grafica2.plot(xi_D,F1_down,\r\n                      label=<span style=\"color: #008000\">'Fresnel1'<\/span>,color=<span style=\"color: #008000\">'orange'<\/span>)\r\n        grafica2.plot(xi_D,F1_up,\r\n                      color=<span style=\"color: #008000\">'orange'<\/span>)\r\n\r\n    grafica2.set_xlabel(<span style=\"color: #008000\">'distancia'<\/span>)\r\n    grafica2.set_ylabel(<span style=\"color: #008000\">'altura'<\/span>)\r\n    grafica2.legend()\r\n    grafica2.grid(<span style=\"color: #d35400\">True<\/span>,linestyle=<span style=\"color: #008000\">'dotted'<\/span>,\r\n                  axis=<span style=\"color: #008000\">'x'<\/span>,which=<span style=\"color: #008000\">'both'<\/span>)\r\n    <span style=\"color: #ff0000\"># plt.axis('equal')<\/span>\r\n\r\n    unarchivo = carpeta_rsm+<span style=\"color: #008000\">'\/perfil_'<\/span>+LineaObs+<span style=\"color: #008000\">'.png'<\/span>\r\n    <span style=\"color: #d35400\">if<\/span> (guarda==<span style=\"color: #d35400\">True<\/span>) <span style=\"color: #d35400\">and<\/span> os.path.exists(carpeta_rsm):\r\n        plt.savefig(unarchivo)\r\n\r\n    plt.show()\r\n<\/pre>\n<p><em><strong>Referencia<\/strong><\/em>: <a href=\"https:\/\/es.wikipedia.org\/wiki\/Zona_de_Fresnel\">https:\/\/es.wikipedia.org\/wiki\/Zona_de_Fresnel<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Observar el perfil del terreno en una ruta, y estimar la primera zona de Fresnel permite revisar algunas situaciones donde se presente bloqueo, dispersi\u00f3n, difracci\u00f3n de la se\u00f1al en el enlace. Los datos del perfil se obtienen del proceso anterior desde el siguiente archivo: Granja2021_LOS.csv En el proceso se a\u00f1ade al perfil la altura de &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/perfil-y-zona-fresnel\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"3.1. Coordenadas - Perfil y zona Fresnel\"<\/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-3867","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\/3867","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=3867"}],"version-history":[{"count":11,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3867\/revisions"}],"predecessor-version":[{"id":4001,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3867\/revisions\/4001"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=3867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=3867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=3867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}