{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Banderazo por el mar - 10/03/2018\n", "Vamos a probar de dibujar una bandera del mar, pero que en su parte superior siga el perfil de elevación de la ruta del banderazo (carretera El Alto / Apacheta - Oruro).\n", "\n", "## Digitalización de la ruta\n", "Primero, digitalizamos la ruta con QGis: colocamos un fondo de OpenStreetMap, creamos una nueva capa vectorial de tipo Shapefile, creamos un nuevo objeto Línea, digitalizando desde Apacheta (barrio a la salida de El Alto) hasta el Casco Minero en la entrada de la ciudad de Oruro, siguiendo la doble vía La Paz - Oruro.\n", "\n", "![Digitalización de la ruta del banderazo en QGis](digitalizacion_qgis.png \"Digitalización en QGis\")\n", "\n", "Exportamos el trazo en el archivo [ruta_banderazo.geojson](ruta_banderazo.geojson). Lo cargamos y visualizamos usando [geopandas](http://geopandas.org/):" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import geopandas as gpd\n", "ruta_banderazo = gpd.read_file('ruta_banderazo.geojson')\n", "ruta_banderazo.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La capa usa la proyección \"pseudo-Mercator\" / EPSG:3857. Para lo que sigue, la reproyectamos en WGS84 / EPSG:4326." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ruta_banderazo = ruta_banderazo.to_crs({'init': 'epsg:4326'})\n", "ruta_banderazo.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Elevación\n", "\n", "Ahora queremos calcular la elevación de la ruta, o sea para cada punto de la línea, encontrar la altura en metros, a partir de un archivo raster de elevación.\n", "\n", "Lo más simple es llamar a un servicio que hará el cálculo. Para eso usamos la librería [geocoder](https://geocoder.readthedocs.io/providers/Google.html#elevation) y en particular el servicio de Google. Para que funcione, es necesario tener la variable `GOOGLE_API_KEY` establecida con el valor de la clave, en el entorno de bash.\n", "\n", "Para saber como manipular los datos, en este caso LineString, ver la librería [shapely](https://shapely.readthedocs.io/en/latest/).\n", "\n", "Hacemos la prueba del servicio de Google para encontrar la elevación del primer punto (Apacheta, salida de El Alto)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "El primer punto (Apacheta) se encuentra a 3961.9 msnm\n" ] } ], "source": [ "# sudo python3 -m pip install geocoder\n", "import geocoder\n", "# Hacemos la prueba con el primer punto, Apacheta\n", "# Nota: hay que manipular un poco el orden y la forma de presentar latitud y longitud\n", "punto1 = [ruta_banderazo.geometry[0].coords[0][1], ruta_banderazo.geometry[0].coords[0][0]]\n", "g = geocoder.google(punto1, method='elevation')\n", "print(f'El primer punto (Apacheta) se encuentra a {g.meters} msnm')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es correcto, aproximadamente 4.000 metros sobre el nivel del mar.\n", "\n", "## Distancia\n", "\n", "Para poder generar el perfil de elevación, es necesario también calcular la distancia en kilometros entre dos puntos. Hay dos formas de hacer: proyectar en metros y calcular la distancia euclidiana, o calcular la distancia \"geográfica\" con cálculos sobre la esfera. Usaremos la segunda forma, gracias al algoritmo de Vincenty. Para eso tenemos que importar la librería [GeoPy](https://geopy.readthedocs.io/en/latest/index.html#module-geopy.distance).\n", "\n", "Para hacer la prueba, calculamos la distancia entre los dos primeros puntos, que están dentro del mismo barrio." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "La distancia entre los dos primeros puntos es de 335.5501109716255 metros\n" ] } ], "source": [ "# sudo python3 -m pip install geopy\n", "from geopy.distance import vincenty\n", "punto1 = ruta_banderazo.geometry[0].coords[0]\n", "punto2 = ruta_banderazo.geometry[0].coords[1]\n", "print(f'La distancia entre los dos primeros puntos es de {vincenty(punto1, punto2).m} metros')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perfecto, unos 300 metros entre los dos primeros puntos, es correcto.\n", "\n", "## Perfil de elevación\n", "\n", "Ahora, vamos a construir el perfil de elevación, poniendo en `x` la distancia en kilometros del punto desde el primer punto, y en `y` la altura en metros. Hay 144 puntos, las llamadas a la API de Google toman un cierto tiempo." ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "distancia = []\n", "elevacion = []\n", "punto_anterior = ruta_banderazo.geometry[0].coords[0]\n", "\n", "for i in range(0, len(ruta_banderazo.geometry[0].coords)):\n", "#for i in range(0, 20):\n", " punto = ruta_banderazo.geometry[0].coords[i]\n", " distancia.append(vincenty(punto_anterior, punto).km)\n", " \n", " # hay que probar varias veces, porque en mi caso, un 25% de las consultas falla\n", " pruebas = 0\n", " altura = None\n", " while altura is None and pruebas < 10:\n", " altura = geocoder.google([punto[1], punto[0]], method='elevation').meters\n", " pruebas += 1\n", " elevacion.append(altura)\n", " punto_anterior = punto\n", "\n", "# Hay que sumar las distancias de manera cumulativa\n", "import numpy as np\n", "distancia_acumulada = np.cumsum(distancia)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mostramos el perfil usando [matplotlib](https://matplotlib.org/)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "ax1 = plt.subplot()\n", "ax1.plot(distancia_acumulada, elevacion, 'k')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dibujo de la bandera\n", "\n", "Primero vamos a dibujar solamente un rectángulo azul, con la parte superior que sigue el perfil de elevación. Y luego aplicaremos este rectángulo como [patch](https://matplotlib.org/api/_as_gen/matplotlib.patches.Polygon.html#matplotlib.patches.Polygon) sobre una imagen de la bandera maritima." ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib.patches import Polygon\n", "\n", "elevacion_min = 3500\n", "\n", "fig, ax = plt.subplots()\n", "plt.plot(distancia_acumulada, elevacion, 'w', linewidth=2)\n", "plt.ylim(ymin=elevacion_min)\n", "\n", "# Make the shaded region\n", "verts = [(0, elevacion_min)] + list(zip(distancia_acumulada, elevacion)) + [(distancia_acumulada[len(distancia_acumulada)-1], elevacion_min)]\n", "poly = Polygon(verts, facecolor='#003f82', edgecolor='0.5')\n", "ax.add_patch(poly)\n", "\n", "ax.spines['right'].set_visible(False)\n", "ax.spines['top'].set_visible(False)\n", "ax.xaxis.set_ticks_position('bottom')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora mostramos la imagen de la bandera, y le aplicamos el perfil." ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "image = plt.imread('bandera.png')\n", "px_alto, px_largo, z = image.shape\n", "\n", "fig, ax = plt.subplots(figsize=(40, 20))\n", "im = ax.imshow(image)\n", "\n", "# Ponemos el pefil de elevación a la escala de la imagen\n", "distancia_px = distancia_acumulada / max(distancia_acumulada) * px_largo\n", "elevacion_px = [(4200 - x) for x in elevacion]\n", "verts = [(0, px_alto)] + list(zip(distancia_px, elevacion_px)) + [(max(distancia_px), px_alto)]\n", "poly = Polygon(verts, edgecolor='0.5', transform=ax.transData)\n", "\n", "# Aplicamos la mascara sobre la imagen\n", "im.set_clip_path(poly)\n", "ax.axis('off')\n", "\n", "plt.savefig('BanderazoPorElMar.png', bbox_inches='tight')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4+" } }, "nbformat": 4, "nbformat_minor": 2 }