用R语言 画出MU2387飞行航迹图

我们经常坐飞机,就知道上了飞机之后飞机是怎么飞的,就不甚了解了。今天我们就来扒一下航班的飞行数据,看看飞机飞行的航迹是怎样的。

首先要看航班的飞行轨迹,从https://zh.flightaware.com/这个网址可以查得到。今天我们来查一下2020年8月24日MU2387航班的飞行轨迹。

网页的数据表情况是这样的

我们先把这个表格给用爬虫,扒下来

代码:

library(stringr)

library(rvest)

library(dplyr)

#抓取航路数据

my_url<-"https://zh.flightaware.com/live/flight/CES2387/history/20200824/2345Z/ZLXY/ZSNJ/tracklog"

web_page<-read_html(my_url)

my_tabale<-web_page%>%html_table(".tracklogTable",header=T)

mydat<-as.data.frame(my_tabale[1])

#数据清洗

temp<-mydat[3:173,]

temp_1<-c()

temp_2<-c()

temp_1<-temp%>%filter(temp$纬度纬度!=temp[22,2] )

temp_2<-temp_1 %>% filter(temp_1$纬度纬度!= temp_1[26,2])

View(temp_2)

效果如图


数据爬下来了,下面就是对数据进行一些改造。比如纬度“34.387634.39”是这样,后面多了“.39”这样的。对于我们来说意义不大,我们就把.39这样的“尾巴”舍去。

  temp_2$经度经度<-substr(temp_2$经度经度,1,8)

  temp_2$纬度纬度<-substr(temp_2$纬度纬度,1,8)

  temp_3<-data.frame(lng=temp_2$经度经度[1:167],

                  lat=temp_2$纬度纬度[1:167])

得到的数据结构如下:


好了,这就是我们要的飞行的经纬度,下来我们就开始画图。我们先用示意图来

library(ggplot2)

library(mapdata)

library(ggthemes)

  ####################用ggplot画出航迹图1

  map_temp_1<-map("china",plot = F)

  ggplot(temp_3)+

    geom_path(data =map_temp_1,aes(x=long,y=lat,group=group))+

    geom_line(aes(as.numeric(lng),

                  as.numeric(lat)),colour="red")+

    ggtitle(label = "MU2387飞行航迹图",subtitle = "西安-->南京")+

    theme_map()+

    coord_fixed()

效果如图:

  ####################用ggplot画出航迹图2

  map_temp<-map_data("china")

  ggplot(temp_3)+

    geom_path (data = map_temp,aes(x=long,y=lat,group=group))+

    geom_line(aes(as.numeric(lng),

                  as.numeric(lat)),colour="red")

效果如图:

看着是不太舒服吧,我们就用可交互式的画图来看,这样会更习惯的。

###################交互式航迹图

library(leaflet)

library(leafletCN)

leaflet() %>%amap() %>%addPolylines(lng=as.numeric(temp_3$lng),

                                      lat=as.numeric(temp_3$lat),

                                    color = "blue", weight = 5)

效果如图:

你可能感兴趣的:(用R语言 画出MU2387飞行航迹图)