2689944 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

One of my favorite things is ...

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2019.09.11
XML
テーマ:宇宙(894)
カテゴリ:データ分析
​​​​ NASAのNEOデータの可視化の試みとして、「R」でアニメーショングラフを作成してみました。

 なお、データは、NASAのサイト(https://cneos.jpl.nasa.gov/ca/)からダウンロードしています。


 以前作成したアニメーションGIFのグラフは、年別のグラフ画像のファイルを1個ずつ保存して、それらの複数の画像ファイルをアニメーションGIF作成ツールを利用して一体化していました。

 「R」のパッケージ「gganimate」を利用すれば、アニメーショングラフを簡単に作成できます。ただ、「gganimate」のパッケージをインストールする際に少しつまずいてしまいました。

 
「gganimate」には、同じ名前で、古いものと新しいものがあり、とても紛らわしいことになっています。名前を変えて区別できるようにしてほしかったです。

 コードも旧版と新版で異なるのですが、ネットの情報が旧版のものなのか、新版のものなのか、区別が難しくて困ります。

 とりあえず、古い方のインストールが難しそうだったので、新しい方の「gganimate」をインストールしました。

devtools::install_github('https://github.com/thomasp85/gganimate/releases/tag/v1.0.3')


 「gganimate」を利用すると、グラフを作成した時点で、アニメーションGIFの作成が終了することになるので、かなり、作業を効率化することができます。

 最初、
「gganimate」でアニメーショングラフを作成した時、すぐには何も表示されなかったので、PCがフリーズしたと思ってしまいましたが、グラフ作成(レンダリング)が終了するまで時間がかかるようです。パソコンのスペックによると思いますが、下のグラフだと1分程度かかりました。


▼1LD以下の距離にまで接近した小惑星(Asteroid)のグラフです。「年」の変数で動くようにしています(図の左上に「年」の表示があります)。
 2008年から2019年8月までのデータです。


 図の左側が「地球に近い」ということになります。左上に現れる点は、「地球の近くまで接近した大きな小惑星」ということになります。
 
 地球と月の間の距離「1LD」以下の距離まで接近する小惑星が多いことを感じることができると思います。

 日常的に、小惑星が地球の近くを飛行していることをイメージできるのではないかと思います。


 グラフの横軸:地球との距離、グラフの縦軸と円の大きさ:小惑星の大きさ(推定の上限値)、円の色は月別




▼1LD以下の距離にまで接近した小惑星(Asteroid)の年別のファセットグラフ(静止画)です。2008年から2019年8月までのデータです。

 「2019 OK」はファセットグラフの右下に表示されています。約0.2LDの距離で、130mの大きさのものが、
「2019 OK」です。
 グラフは、2008年からのものですが、この距離まで接近した小惑星で、
「2019 OK」より大きいものは見当たりません。


 グラフの横軸:地球との距離、グラフの縦軸と円の大きさ:小惑星の大きさ(推定の上限値)、円の色は月別




▼これは、1LD以下の距離にまで接近した小惑星(Asteroid)のアニメーショングラフです。「月」の変数で動くようにしています。スピードは落としています。

 今年の7月は、例年より多くの、しかも大きめの小惑星が地球に接近していたようです。


 グラフの横軸:地球との距離、グラフの縦軸と円の大きさ:小惑星の大きさ(推定の上限値)




▼「R」のコード例:一番上のアニメーショングラフのコードです


 普通に散布図を作って、動かすコード「transition_time()」を追加するだけです。
 最後の行の「animate(movy)」を単に「movy」としても作成されますが、
「animate(movy, fps=1)」というように、「fps=数字」を追加して速度を調整することができます。

----------------------------------------------------------
p <- ggplot(data1,aes(x = Dn_ld, y = size_high, size = size_high, colour = month)) +
  geom_point(show.legend = FALSE, alpha = 0.7) +
  scale_color_viridis_d() +
  scale_size(range = c(2, 12)) +
  labs(x = "Distance(LD)", y = "Estimated Size(m)")

movy <- p + transition_time(year_d)  +
  ease_aes("linear") +
  enter_fade() +
  exit_fade() +
  labs(title = "Year: {frame_time}")
animate(movy, width = 700, height = 450)
anim_save("asteroid.gif")
-----------------------------------------------------------

 
☆関連記事
▼NASAのNEOデータ分析のための前処理は、まずExcelのPower Queryで処理をし、必要に応じて「R」のコードを利用するのが効率的だと思います

▼NASAのNEOデータを、Power Queryで前処理してみました:コードを使わずに前処理が可能です

▼NASAのNEO(地球に接近した小惑星)のデータの分析:データを「R言語」で前処理するコード:データを随時更新する場合は、繰り返し作業を「コード化」するのが一番です 

▼8月21日放送のフジテレビ「とくダネ!」で「直径160mの小惑星が今月末に最接近」という話題がありましたが、地球にはあまり接近しないようです

▼地球に接近したNEOの日別の個数をMicrosoft Power BIで表示してみました

▼【平均値の差の検定をしてみました】地球に接近する小惑星の数の10月と8月の平均値には、統計的に有意な差が見られます

▼地球に接近する小惑星の数が多いのは10月頃?。少ないのは8月?:月別にかなり違いが見られます:Microsoft Power BI Desktopは、無料で利用できる、インタラクティブなインフォグラフィック作成ツールです


▼データ前処理の例(その2):Microsoft Power BI用データを準備するための処理の例:NASAのNEOデータをダウンロードし、英語の月名を含む日付の文字列を日付データに変換して、Power BIに読み込む

▼Microsoft Power BI用データを準備するための前処理の例です:NASAのNEOデータをダウンロードし、小惑星の大きさの推定値をExcelで取り出し、単位変換して、Power BIに読み込む

▼地球をかすめた小惑星「2019 OK」は、0.2LD以下の距離に接近したNEOの中で過去最大だったようです:NASAの1万3千件以上のNEOデータから

▼小惑星「2019 OK」は、過去3年間に0.2LD以下まで地球に接近したNEOの中でも最大でした:NASAのNEOデータをPower BIで分析してみました

▼【グラフを追加しました】:小惑星「2019 OK」はOKでしたが・・・:7月25日に地球とニアミスした、今年最大の小惑星の名前です。




[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Rではじめるデータサイエンス [ Hadley Wickham ]
価格:4320円(税込、送料無料) (2019/9/14時点)


 



​​​​





お気に入りの記事を「いいね!」で応援しよう

Last updated  2019.11.13 12:10:42
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


PR

Recent Posts

Free Space







Rebatesお友達紹介キャンペーン

​​​​

Category

Archives

Comments

digital_21@ Re[1]:◆【新型コロナ】やっぱり、PCR検査(08/02) 背番号のないエース0829さんへ すてきな内…
背番号のないエース0829@ Re:◆【新型コロナ】やっぱり、PCR検査 「日本一遅い成人式が、無事終了 !!」に、…

Keyword Search

▼キーワード検索

Rakuten Card


© Rakuten Group, Inc.