Skip to content

Instantly share code, notes, and snippets.

@rinx
Created December 11, 2014 05:59
Show Gist options
  • Save rinx/03458f8d0197784faccb to your computer and use it in GitHub Desktop.
Save rinx/03458f8d0197784faccb to your computer and use it in GitHub Desktop.
Get and parse flight track from flightrader24.com
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'net/http'
require 'uri'
require 'json'
flightIds=ARGV
api_url='mobile.api.fr24.com/common/v1/flight-playback.json'
for flightId in flightIds do
uri = URI.parse('http://' + api_url + '?flightId=' + flightId)
json = Net::HTTP.get(uri)
res = JSON.parse(json)
unless res['result']['response'].nil? then
# flight data
flight = res['result']['response']['data']['flight']
identi = flight['identification']['number']['default']
model = flight['aircraft']['model']['code']
orig = flight['airport']['origin']
dest = flight['airport']['destination']
puts "# flightId: #{flight['identification']['hex']}"
puts "# code: #{flight['airline']['name']} #{identi}"
puts "# model: #{model}"
puts "# origin: #{orig['name']}:#{orig['code']['iata']}"
puts "# destination: #{dest['name']}:#{dest['code']['iata']}"
puts "# --------------------------------------------"
# tracks
tracks = res['result']['response']['data']['flight']['track']
puts "# timestamp lat lon kmh kts mph squawk heading"
for track in tracks do
lat = track['latitude']
lon = track['longitude']
kmh = track['speed']['kmh']
kts = track['speed']['kts']
mph = track['speed']['mph']
sqw = track['squawk']
azm = track['heading']
timestamp = Time.at(track['timestamp']).strftime("%Y/%m/%d %H:%M:%S")
puts "#{timestamp} #{lat} #{lon} #{kmh} #{kts} #{mph} #{sqw} #{azm}"
end
puts ""
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment