Google Earth es un software que nos permite viajar virtualmente por todo el mundo. La aplicación permite tener una visión global del mundo, así como acercarse a cualquier punto de la tierra. Se pueden sobrevolar ciudades o paisajes naturales, así como posarnos en una calle y recorrerla como si estuviésemos físicamente allí. ¿Cómo funciona la tecnología de Google Earth que hace esto posible?. Veámoslo.
Como en muchos de los productos de Google, no se trata de un invento propio. En 2004 Google compró a la empresa Keyhole Inc.. Esta empresa tenía desarrollado un software de este tipo. De hecho, parece que estos otros desarrolladores no fueron los creadores de esta tecnología. Existen antecedentes de un producto idéntico desarrollado con anterioridad (por ejemplo, Terravision es de 1994). Sea cual fuere el origen de la tecnología, no cabe duda de que Google ha sabido desarrollar la idea hasta convertirla en un producto de acceso público y de uso cotidiano.
Si tiene interés en conocer la historia de Google Earth, puede consultar este artículo: Historia de Google Earth.
Por cierto, Google Earth es una aplicación gratuita que se puede descargar en cualquier dispositivos, tanto de sobremesa como smartphones. También es accesible de forma online mediante un navegador web (https://earth.google.com). La versión online es más limitada.
Principio de funcionamiento de Google Earth
Básicamente, Google Earth funciona gracias a que dispone de una base de datos de miles de millones de imágenes. Se trata de imágenes por satélites, imágenes aéreas tomadas desde avionetas e, incluso, imágenes a pie de calle.
Cada una de estas imágenes está perfectamente geolocalizada y sincronizada con sus imágenes vecinas. El resultado es una visión completa de la tierra a muy alta resolución y a distintas alturas. A un ordenador doméstico le sería imposible gestionar este inmenso volumen de datos. Para solucionarlo, la imagen global de la tierra se divide en pequeños cuadrados de imágenes. El software se encarga de seleccionar el cuadrado de imagen que tiene que mostrarle al usuario en cada momento, dependiendo de la visión seleccionada.
No solo la base de datos de imágenes es inmensa, sino que gestionar tal volumen de datos es completamente imposible para cualquier ordenador personal, por potente que sea. Por este motivo, es imprescindible que el software principal de Google Earth se ejecute en sus potentes servidores. El servidor le envía a cada usuario la imagen que necesita ver en cada momento. Esta imagen se encuentra a la resolución que necesita el usuario dependiendo del dispositivo que esté utilizando. El tiempo necesario para transmitir la imagen es muy breve e imperceptible por el usuario.
Por tanto, el servicio de Google Earth utiliza un software en el servidor (software servidor) que realiza casi todo el trabajo y un software en el ordenador del usuario (software cliente) que es el que hace posible que el usuario seleccione y vea lo que quiere ver.
La comunicación entre uno y otro software se lleva a cabo mediante un lenguaje XML especialmente diseñado para codificar e intercambiar representaciones de datos geográficos. A este lenguaje se le conoce como KML o Keyhole Markup Language. Como hemos visto, Keyhole es el nombre de la empresa que lo desarrolló y que fue posteriormente comprada por Google.
Para poder hacer uso de Google Earth, en un principio, el usuario tenía que instalar un programa cliente en su dispositivo (descargarse una aplicación). No obstante, ya es posible acceder al servidor utilizando un navegador web (https://earth.google.com). En este caso, las funcionalidades son limitadas.
Textura universal. Lo que nos permite volar
El gran reto del servidor de Google Earth es gestionar el inmenso volumen de datos de que dispone para mostrarle al usuario el pequeño cuadrado de imagen que necesita ver en cada momento. Además, este cuadrado de imagen no siempre se muestra en su vista vertical, sino que el usuario puede elegir cualquier ángulo de visión.
Se podría pensar que la solución es utilizar una única imagen de muy alta resolución e ir moviéndose por ella conforme el usuario lo va demandando. Por desgracia, esto no es posible todavía. El tamaño de esa única imagen sería tan grande que sería imposible gestionarla. El procesador tendría que procesarla cada vez que el usuario se desplaza o selecciona un nivel de zoom diferente. Los procesadores actuales no tienen capacidad para hacer este trabajo en tiempo real.
Google tiene varias patentes de software que hacen posible que viajar por el mundo pueda realizarse de una forma fluida desde cualquier dispositivo. Básicamente, lo que hace esto posible es una patente conocida como Textura universal o UT (Universal Texture). La UT se basa en dos tecnologías conocidas como:
- Apilamiento de clips (clip stacking). Las imágenes gigantes de la tierra se recortan en porciones pequeñas (clips). Los usuarios solo necesitan ver una pequeña porción de la tierra. Google le muestra esa porción y prepara las adyacentes para cuando el usuario las reclame.
- Mapeo mip (mip mapping). Se utiliza para crear una textura de tridimensionalidad cuando el usuario intenta ver el entorno en perspectiva. Para ello, se crea una estructura de imágenes piramidal. Cada nivel tiene el doble de resolución (tamaño) que el nivel que hay debajo. Estas pilas de imágenes permiten crear una representación tridimensional de la superficie mostrando las áreas cercanas en alta resolución y en menor resolución las alejadas. Este efecto permite ver el paisaje desde distintos ángulos con una textura muy realista. Por cierto, mip viene de ‘multum in parvo‘, que en latín significa ‘mucho en poco’.
Básicamente, la representación del globo se divide en múltiples imágenes pequeñas y a distintos niveles de detalles (distintas alturas o zoom). El software elige las imágenes que tiene que mostrar en primer plano y se las envía al usuario, mientras que mantiene accesible las imágenes del entorno para, en caso que se soliciten, mostrarla a continuación.
Dicho de otra forma, aunque Google dispone de una imagen gigante de la tierra en alta resolución, se las sirve al usuario en pequeños bocados que su ordenador pueda digerir. Esta técnica permite realizar vuelos fluidos con alta calidad.
Si tiene interés en profundizar en estas tecnologías, uno de los fundadores de Keyhole, Avi Bar-Zeev, tiene un blog donde las explica: How Google Earth really works.
De dónde saca Google las imágenes
La materia prima que utiliza Google para poder ofrecer este servicio son las imágenes. La fuentes fundamentales de imágenes son tres:
- Imágenes satelitales distantes. Las obtiene de los satélites Landsat, lanzado por la Nasa, y Sentinel, que forma parte de Copernicus, el programa de observación de la tierra de la Unión Europea. La resolución de estas imágenes son de unos 30 metros.
- Imágenes satelitales cercanas. Para las observaciones más cercanas a la tierra utiliza principalmente las imágenes del satélite WorldView, de la empresa privada Digital Globe. Estas imágenes son de mayor detalle, pudiendo distinguir objetos de 25 cm.
- Imágenes aéreas. Estas imágenes se toman con aviones especiales equipados con varias cámaras. Se hacen diversos vuelos paralelos barriendo toda la superficie de la zona a fotografiar. La imágenes obtenidas muestran un gran nivel de detalle de la zona escaneada, incluido detalles constructivos o texturas naturales. Estas imágenes son fundamentales para mostrar un acercamiento muy próximo a la superficie de la tierra.
Este inmenso arsenal de imágenes es el que utiliza Google para su servicio Google Earth. No obstante, Google dispone también de los servicios Google Maps y Street View. El primero nos muestra cómo llegar a los sitios en coche o andando y el otro muestra una visión del entorno a pie de calle. Al utilizar Google Earth para acercarnos a una calle, automáticamente se muestran las imágenes de Street View. Google permite pasar de Google Earth a Street View de una forma fluida.
Las imágenes de Street View son imágenes terrestres que se toman con dispositivos especialmente diseñados al efecto. Estos dispositivos puede ser montado sobre distintos vehículos (coche, bici, etc.). Incluso, puede ser llevado a espaldas de una persona o de un animal. Esto último es necesario para poder tomar imágenes de entornos naturales o áreas de difícil acceso.
Como dice el jefe de producto de Google Earth, Gopal Shah, ‘Google Maps sirve para encontrar los sitios, mientras que Google Earth sirve para perderse en ellos‘.
Tratamiento de las imágenes
Con el objetivo de conseguir la mejor representación posible del globo, Google suele tomar las fotos en primavera. En el mundo de Google Earth todo el planeta está en primavera. A pesar de esto, como las imágenes se toman en días distintos, suelen tener una luz y circunstancias distintas. Para que no se noten las costuras entre fotos, es imprescindible someter a las fotos a un tratamiento que homogenice las características de cada imagen (color, contraste, etc.).
Dada la ingente cantidad de datos que hay que procesar, este análisis y corrección de imágenes no se realiza manualmente, sino que Google ha desarrollado diversos programas (algoritmos) que automatizan estas tareas. Algunos de estos algoritmos utiliza técnicas de visión artificial (computer vision). Esto es, el software analiza patrones e identifica los objetos que aparecen en las imágenes. Esto le permite eliminarlos o modificarlos. Por ejemplo, en determinadas calles de interés, Google elimina los coches y peatones. También diluye determinados textos que aparecen en fachadas o carteles.
Para comprender esto mejor, pensemos lo siguiente: las fotos aéreas pueden contener pequeñas nubes o efectos luminosos (reflejos, por ejemplo) que conviene corregir. Además, las fotos se toman para que tengan partes superpuestas con las fotos vecinas. Hay que detectar la superposición, encajar las uniones con precisión y producir una imagen única homogénea.
Por otro lado, las imágenes se toman de forma automática desde un satélite, avión o medio terrestre. Esto quiere decir que pueden contener información que no sea conveniente desvelar públicamente. Hablamos tanto de instalaciones gubernamentales que puedan afectar a la seguridad del país, como información industrial o personal protegida por las leyes.
Como vemos, no es solo cuestión de hacer fotos o hacerse con las imágenes satelitales, sino que es imprescindible revisar y corregir cada foto.
Ciertamente, hay áreas en las que la revisión es mínima (zonas poco pobladas, por ejemplo), mientras que otras requieren un trabajo de revisión más intenso (centro de ciudades).
Después de tanto esfuerzo se obtiene un conjunto de imágenes que ocupan 800 mil millones de píxeles y que representan a todo el globo de forma nítida y en alta resolución. Además Google Earth tiene más de 20 niveles de zoom, por lo que este tamaño se multiplica considerablemente. Son como unas esferas dentro de otras. Como si fuesen muñecas rusas.
Como se puede suponer, la representación no es homogénea. Unas zonas están representadas con más detalles que otras. Hay más píxeles de Nueva York que del Sahara, por ejemplo.
Imágenes en 3D de Google Earth
Todas las imágenes que obtiene Google del entorno son fotografías bidimensionales, planas. No obstante, gracias a la tecnología UT o de textura universal, el usuario puede sobrevolar la tierra y tener una percepción de tridimensionalidad del entorno.
En 2010, Google Earth decidió ir más lejos y crear una recreación 3D del entorno. No se trata de ver las dos dimensiones en perspectiva, sino de moverse entre los edificios representados en forma tridimensional. Esto permite verlos desde distintos ángulos. Para hacer esto posible es necesario representar los edificios en tres dimensiones.
Google consigue hacer esta representación por software. Cuando Google toma las imágenes aéreas de los lugares, no solo toma fotos verticales de la superficie terrestre, sino que utiliza 5 cámaras. Cada cámara recoge múltiples fotos de ángulos distintos de cada edificio (o cualquier otro objeto) y guarda los datos de posicionamiento y orientación.
Google utiliza una técnica conocida como estéreo-fotometría. Primero identifica cada objeto que aparece en la imagen de acuerdo a los patrones que tiene almacenados (edificio, montaña, árbol, etc.). Posteriormente, hace uso de la posición y las condiciones de iluminación de las múltiples imágenes que tiene de ese objeto para generar una representación tridimensional del mismo. Esta representación se conoce como malla o mesh 3D. Sobre ella construye la textura o superficie del objeto.
Básicamente, el software discrimina cada edificio y pega cada una de las imágenes de sus ángulos para conseguir recrearlo en 3D. Esta representación 3D del mundo nos permite volar por las calles de las ciudades como si fuésemos un pequeño dron.
Imágenes históricas. Earth Engine
Las imágenes de Google Earth se actualizan continuamente. En la práctica, esto supone que las imágenes satelitales se renuevan cada dos años, mientras que las aéreas y terrestres lo hacen más frecuentemente (incluso varias veces al año). La renovación es más frecuente para los lugares en los que los usuarios muestran un mayor interés o aquellos en los que los cambios son más probables. Por ejemplo, se actualiza más frecuentemente Nueva York que un pequeño pueblo aislado de pocos habitantes.
Esto nos lleva a preguntarnos qué pasa con las imágenes antiguas una vez que son sustituidas. Google encontró una forma de aprovecharlas. Si tenemos una serie histórica de imágenes de un lugar, podría utilizarse para ver la evolución del entorno.
Las imágenes antiguas son un registro histórico de la evolución de la orografía del terreno o de la evolución de las infraestructuras o construcciones de las ciudades. Google permite hacer este viaje en el tiempo mediante un función llamada ‘Imágenes históricas’. Se trata de una barra que, al desplazarla, nos muestra las imágenes de distintas épocas de la zona del mundo que estemos observando.
Por otro lado, resulta de gran interés poder observar y analizar cómo va cambiando la tierra, el planeta. La herramienta Earth Engine nos permite hacer estos estudios. Por ejemplo, permite hacer un seguimiento de la deforestación de la selva amazónica o de los deshielos de los polos. Podríamos decir que con Earth Engine podemos monitorizar la salud del mundo. Como todos sabemos, habitamos un planeta vivo que cambia, evoluciona.
Más información
Google Earth es una herramienta muy completa que une distintas tecnologías para conseguir observar el mundo desde nuestra casa. Por otro lado, también nos permite visitar los océanos, observar el espacio desde la tierra y visitar la luna o marte.
Aquí se ha esbozado el funcionamiento general de la tecnología de Google Earth. Si se tiene interés, este blog dispone de muchos otros contenidos relacionados. Por favor, utilice el buscador de contenidos que tenemos en la cabecera del blog.
Por otro lado, estos son algunos otros artículos que pueden ser de interés: