En esta sesión abordaremos el concepto de API (Application Programming Interface). Una API actúa como el puente que comunica una interfaz con un servidor, permitiendo realizar peticiones y obtener respuestas. Utilizaremos una API geográfica gratuita del USGS que provee información en tiempo real sobre eventos sísmicos a nivel mundial.

Configuración y Petición HTTP

Se requieren las librerías requests y folium. La respuesta exitosa tiene código 200:

Python
import requests

url = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson"
response = requests.get(url)
terremotos = response.json()

Extracción de Atributos

El GeoJSON del USGS organiza la información en features. Las coordenadas están en orden [Longitud, Latitud, Profundidad]:

Python
for terremoto in terremotos['features']:
    coordenadas = terremoto['geometry']['coordinates']
    lugar = terremoto['properties']['place']
    magnitud = terremoto['properties']['mag']

Visualización con Folium

Folium requiere coordenadas en orden [Latitud, Longitud], inverso al GeoJSON:

Python
import folium

m = folium.Map(location=[0, 0], zoom_start=2)

for terremoto in terremotos['features']:
    coords = terremoto['geometry']['coordinates']
    lugar = terremoto['properties']['place']
    mag = terremoto['properties']['mag']
    
    folium.Marker(
        location=[coords[1], coords[0]],  # [Lat, Lng]
        popup=f"{lugar} - Magnitud: {mag}"
    ).add_to(m)

m.save("terremotos.html")