【Ruby】写真ファイルの場所情報を取得する【多すぎる写真を整理したい】

デジカメ時代、写真データは大量になりがち

シャッフルして抽出した写真を見る楽しさ

アルバムってみるの楽しいですよね。

適量ならね!

そう。

デジカメなので、撮るのは簡単。

でも、選ぶの大変。

過去10年撮りためたデータは500GBくらいになってます。

プログラムにシャッフルチョイスさせる

そんなわけで、過去の写真をYYMMフォルダに整理し、そこからランダムにn枚チョイスするプログラムを作ったりしていました。

mhaya18.hatenablog.com

こうすると、過去をざーっと見返すことが出来て楽しいわけです。

YYMMごとにn枚なので、年月のバランスは良いんですけど、

完全にランダムにチョイスしているので、ちょっと偏ったりもします。

なので、場所の要素も追加して、チョイスするバランスを取ったらどうかと考えました。

場所情報の取得方法

環境

  • Windows10
  • Ruby 2.6.5
  • exifr (1.3.6)

やり方

exifrというgemをインストールします。

使い方の詳細はこちらを参照。

github.com

ディズニーランドに行った時の写真で試してみる

ソースコード

require 'exifr/jpeg'

Dir.glob('*.jpg').each do |f|

    ex = EXIFR::JPEG.new(f)
    p ex.exif?
    p ex.gps_latitude
    p ex.gps_longitude

end

結果

>ruby test.rb
true
[(35/1), (38/1), (897/100)]
[(139/1), (52/1), (4331/100)]

たしかこの辺で撮ったはず。

f:id:mhaya18:20200101081856p:plain