Descripción:
Se le ha pedido a usted que desarrolle un programa para explorar los atractivos turísticos que tiene el
Ecuador. El programa permite consultar los lugares turísticos del ecuador filtrando los resultados por
algunos criterios, recomendar lugares turísticos a usuarios basándose en su perfil, consultar lugares
turísticos cerca de usted y realizar un análisis estadístico de los atractivos del país.
Cada línea del archivo sitios_turistico.csv corresponde a un punto turístico del ecuador y contiene
información la siguiente información:
Cada línea del archivo aeropuertos.csv corresponde a un aeropuerto del ecuador y contiene
información la siguiente información:
Id, Nombre, Ciudad, Latitud, Longitud
En la Tabla 2 a continuación se presenta una descripción de cada campo
Codigo: 39
Puntaje: 5
Comentario: Buen lugar para pasear en familia o solitario.
Codigo: 18
Puntaje: 4
Comentario: Viaje en tren es de 40 minutos de ida y 40 de regreso. Uno se queda 1 y poco más en la
parte baja . Buenas vistas. Buenas fotos
Codigo: 39
Puntaje: 2
Comentario: El lugar es muy bonito y podría llegar a ser de los lugares más hermosos del mundo. Es
una pena que no tengan una educación por el respeto a la naturaleza y que todos los lugares estén
sucios, llenos de basura
….
Programa Principal
A continuación, un ejemplo
b. Para calcular la distancia entre dos coordenadas geográficas puede usar la Fórmula del
Haversine. La fórmula es
donde
R -> 6378 km
lat2 y long2 -> latitud y longitud del punto de llegada en radianes
lat1 y long1 -> latitud y longitud del punto de partida en radianes
d -> la distancia entre los dos puntos
Nota: Los valores de latitud y longitud dados en la data está en grado centígrados,
por lo que los debe transformar en radianes antes de hallar la distancia.
c. Para obtener las coordenadas geográficas de una dirección ingresada usted debe
usar el API de Geocoding de Google Maps. Este API proporciona una forma directa
de obtener las coordenadas geográficas de un lugar a partir de una dirección a
través de una solicitud HTTP.
Request http:// maps.googleapis.com..
JSON
Al hacer esto estamos haciendo una petición GET al servicio identificado por la URL.
Como respuesta a la petición al API, se muestra una página con datos acerca del lugar
que consultamos.
La data mostrada está en formato JSON, que es una forma de representar datos, que
se asemeja a un diccionario.
Para obtener su API Key consulte el documento adjunto que dice como obtenerlo.
El módulo request de Python permite realizar peticiones http. Este módulo no es parte
de la librería por lo que tiene que instalarlo para poder usarla.
El móduclo json permite fácilmente leer JSON data (cuál es una forma de organizar
data en diccionarios).
Referencias:
http://docs.python-requests.org/en/latest/
https://developers.google.com/maps/documentation/geocoding/intro/
1. Cree una función que reciba el código de un sitio y el nombre del archivo con las
reseñas de los turistas y retorne el rating promedio del sitio pasado como parámetro.
Si para el sitio pasado como parámetro no existe ningún comentario, el rating
devuelto será 5.
2. Cree una función que reciba el nombre del archivo donde se encuentran los sitios
turísticos y retorne un diccionario donde las claves son los nombres de las provincias
y los valores son diccionarios con la información de sitios que pertenecen a cada
provincia. La ubicación del sitio debe almacenarse como una tupla y las actividades
como un conjunto. A continuación, se muestra un ejemplo del diccionario que se debe
generar.
{
'Santo Domindo de los Stáchilas': {
'Bosque La Perla': { 'codigo': 75,
'ciudad': 'Santo Domingo',
'actividades': {'senderismo'},
'ubicacion': (-0.014502, -79.3866092),
'raiting': 4,
'tipo_lugar': 'Bosque'},
'Parque Zacay': { 'codigo': 74,
'ciudad': 'Santo Domingo',
'actividades': {'cultural'},
'ubicacion': (-0.2541717, -79.1688151),
'raiting': 3.9,
'tipo_lugar': 'Parque'}
},
'Napo': {
'Puerto Misahuallí': { 'codigo': 60,
'ciudad': 'Tena',
'actividades': {'paseo bote; cultural'},
'ubicacion': ('-1.0348151', '-77.6670608'),
'raiting': '3.7',
'tipo_lugar': 'Balneario'},
..}
..
}
3. Cree una función que reciba como parámetro dos tuplas con la ubicación de dos
puntos goegráficos y retorne la distancia en kilómetros entre ambos puntos. Cada
tupla tiene los valores (lat, long). Use la fórmula de distancia Harvesine explicada en
el punto 2 para esta función.
4. Cree una función que reciba una dirección y retorne la coordenada geográfica en las
que se encuentra esa dirección.
5. Cree una función que genero un arreglo de una dimensión que las distancias desde un
punto geográfico a cada uno de los sitios turísticos. La función recibe como parámetro
la tupla con la coordenada, el diccionario de sitios y retorna el arreglo de distancias y
la lista de los sitios usadas para generar las distancias.
6. Defina una función que retorne una matriz con todos los tiempos (en minutos) entre
los puntos turísticos y el tiempo que tomaría alcanzarlos desde un punto dado usando
diferentes medios de transportación. El tiempo se define como la relación entre la
distancia y la velocidad.