← Back to visualization

Hidden Gems - Underrated Travel Hubs

Visualization Protocol

Timestamp

December 2025

Authors

Alan Dominguez, Rafaela Dos Santos Molina Farina, Colin Augustine

Data Source

OpenFlights Database
Routes, airports, and airlines data

Dataset

Download country_connections_geo.json

Download country_stats.json

Data Structure

Field Type Description
source String Origin country name
dest String Destination country name
source_coords Array [lon, lat] Geographic coordinates of origin
dest_coords Array [lon, lat] Geographic coordinates of destination
num_routes Integer Number of unique flight routes between countries

Protocol / Methodology

  1. Download raw routes data from OpenFlights database containing source airport, destination airport, and airline information.
  2. Download airports data containing IATA codes, names, cities, countries, and geographic coordinates.
  3. Filter routes to include only international connections (source country ≠ destination country).
  4. Join routes data with airports data to obtain country information for each route endpoint.
  5. Aggregate routes by country pairs, counting the number of unique routes between each pair.
  6. Calculate centroid coordinates for each country based on the average of all airport coordinates within that country.
  7. For countries with missing or invalid coordinates (0,0), use manually verified centroid positions.
  8. Generate country statistics including: total routes, number of connected countries, number of international airports, and top destinations.
  9. Export processed data to JSON format: country_connections_geo.json for route data and country_stats.json for aggregate statistics.
  10. Validate data integrity by checking for missing coordinates, null values, and route count consistency.

Visualization Technology

  • • D3.js v7 - Data visualization library
  • • TopoJSON - Geographic data format
  • • Natural Earth projection - Map projection
  • • GSAP ScrollTrigger - Scroll animations

Limitations

  • • Data reflects routes at time of download; does not include real-time flight data
  • • Some small nations may have inaccurate centroid positions
  • • Route counts represent number of scheduled routes, not flight frequency
  • • Codeshare agreements may result in some route duplication