2010 年 5 月の履歴(もしくは日誌)


2010 年 5 月

5 月 28 日

Eye-Fi Pro X2 は RAW ファイルには Geotag を付加しない

Eye-Fi Pro X2 を買いました! Eye-Fi は無線 LAN 内蔵の SD カードです.デジタルカメラで撮影した画像を順次無線 LAN で転送できます.特に Eye-Fi Pro X2 は RAW ファイルに対応しているのでデジタル一眼レフにも使えます.さらに位置情報(geotag)を扱う事ができます.でも GPS を内蔵しているのではなくて無線 LAN を使って位置情報を得ます.

ぼくの理解では,撮影時に近くの無線 LAN アクセスポイントの情報を記録.カメラから無線 LAN で画像を転送するときにインターネット経由で撮影時の無線 LAN アクセスポイントの情報から位置情報を得て,画像ファイル保存時に EXIF に位置情報を書き込むという仕組み.

この位置情報ですが,なんと JPEG には書き込まれますが RAW には書き込まれません! Eye-Fi Pro X2 はそういう仕様です.

だから撮影時にはカメラの設定で RAW と同時に JPEG も保存するようにしておいて,後から JPEG の位置情報を RAW にコピーする必要があります.そういう話しが forums.eye.fi にありました.

ここで Nikon の RAW ファイルである NEF に対して Mac で処理するというシェルスクリプトが紹介されていました.ぼくは Nikon D40 と MacBook の組み合わせなのでばっちりです.find . -name *.JPG だとうまく行かなかったので '*.JPG' とクォートしました.

これを実行するには exiv2 というコマンドが必要です.MacPorts からもインストールできますし,http://www.exiv2.org/ からソースをダウンロードして Mac でビルドするのも簡単でした.

この処理をしてから Aperture に読み込めば良いわけです.いいですね.

2010-05-09 chregu http://forums.eye.fi/viewtopic.php?f=3&t=1148#p8932

#!/bin/bash
for j in `find . -name '*.JPG'` 
do
   FILE=`echo $j | cut -f 2 -d "." `
   FILE=".$FILE"
   if [ -f $FILE.NEF ]
   then
      echo $FILE
      IFS=$'\n'
      A=` exiv2 -Pkyv $FILE.JPG  | grep GPSInfo`
      echo -n "" > meta.txt
      for i in $A
      do
         echo "set $i" >> meta.txt 
      done
      exiv2 -m meta.txt $FILE.NEF
      mv $FILE.JPG ./oldjpegs/
   fi
done

I found the original shell script in Eye-Fi Forums. It reads geotag from JPEG and writes the geotag into NEF. I added NRW handling to the script.

でもぼくは Nikon COOLPIX P6000 も持っています.こっちは GPS 内蔵ですが GPS を使ってうまく位置情報が付かない場合も多いのです.電源を入れた直後とか建物の中とか.だから内蔵 GPS で位置情報が得られなかったときは Eye-Fi Pro X2 でっていうのは良さそうです.

てな訳で先のシェルスクリプトを参考に自分でも書いてみました.今回はシェルスクリプトを参考にしたので Perl で書かずにシェルスクリプトで書きました.

COOLPIX P6000 で RAW と JPEG を同時に保存すると D40 の用に同じファイル名で拡張子だけが違うファイルで保存されるのではなくて,RAW と JPEG で別々のファイル名で保存されちゃいます.それに対応してついでに Aperture でも扱いやすいように D40 のような命名規則になるようにリネームしちゃいます.そして P6000 の RAW は NEF ではなくて NRW です.

タイムスタンプで同じ時刻なのを確認して RAW 側には位置情報が書き込まれていないのを確認してから JPEG の位置情報を RAW に書き込むようにしました.

#!/bin/bash
# 2010-05-09 chregu http://forums.eye.fi/viewtopic.php?f=3&t=1148#p8932
# 2010-05-27 onohiroki@cup.com http://onohiroki.cycling.jp/
for file in `find . \( -name '*.NEF' -or -name '*.NRW' \) | LC_ALL=C sort` 
do
   tag=''
   file=${file%.*}
   if [ -w $file.NRW ]; then
     t1=` exiv2 -Pkyv $file.NRW 2>/dev/null | grep -a Exif.Photo.DateTimeOriginal ` 
     nrwf=${file%%[0123456789]*}
     nrwn=` expr ${file#*DSCN} + 1 `
     nrwj=`printf "%s%04d.JPG" $nrwf $nrwn`
     gpslat=` exiv2 -Pkyv $file.NRW 2>/dev/null | grep -a 'GPSInfo.GPSLatitude '  | awk '{print $3 $4 $5}' `
     gpslon=` exiv2 -Pkyv $file.NRW 2>/dev/null | grep -a 'GPSInfo.GPSLongitude ' | awk '{print $3 $4 $5}' `
     if [ "$gpslat" != '0/00/00/0' ] && [ "$gpslon" != '0/00/00/0' ]; then
      tag='Geotag'
     elif [ -f $nrwj ]; then
       t2=` exiv2 -Pkyv $nrwj 2>/dev/null | grep -a Exif.Photo.DateTimeOriginal `
       if [ "$t1" = "$t2" ]; then 
         IFS=$'\n'
         geometa=` exiv2 -Pkyv $nrwj 2>/dev/null | grep -a GPSInfo `
         echo -n "" > meta.txt
         for i in $geometa
         do
           echo "set $i" >> meta.txt 
         done
         exiv2 -m meta.txt $file.NRW
         tag='+Geotag'
         if [ ! -f $file.JPG ]
         then
           #mv $nrwj ./oldjpegs/
           mv $nrwj $file.JPG; 
         fi
       fi
     fi
   elif [ -w $file.NEF ]; then
     t1=` exiv2 -Pkyv $file.NEF | grep Exif.Photo.DateTimeOriginal `
     geometa=` exiv2 -Pkyv $file.NEF 2>/dev/null | grep -a GPSInfo `
     if [ -n "$geometa" ]; then
       tag='Geotag'
     elif [ -f $file.JPG ]; then
       t2=` exiv2 -Pkyv $file.NEF | grep Exif.Photo.DateTimeOriginal `
       if [ "$t1" = "$t2" ]; then 
         IFS=$'\n'
         geotag=` exiv2 -Pkyv $file.JPG | grep GPSInfo `
         echo -n "" > meta.txt
         for i in $geotag
         do
           echo "set $i" >> meta.txt 
         done
         exiv2 -m meta.txt $file.NEF
         tag='+Geotag'
         #mv $file.JPG ./oldjpegs/
       fi
     fi
   fi
   printf "%s %s\n" $file $tag
done

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20100528n1 TrackBack

5 月 9 日

Softbank の iPad の料金プランは悩ましい / b-mobile SIM U300 と比べても安い?

Softbank の iPad の料金プランが発表されましたね.米国では iPad は SIM ロックフリーだったのに,Softbank から発売される iPad には SIM ロックがかかっているとしたら残念.もし SIM ロックがかかっていなかったら海外でも気楽に使える方法があったろうし,日本国内でも b-mobileSIM U300 を micro SIM サイズに加工するとかで使えたのに.

ぼくは GPS が機能する 3G 版 iPad で容量 64 GB のを買います.買って 1 年使ってその後は買い替え(買い増し)するだろうから 1 年の総支払額が重要.

プリペイドプラン(1GB)で本体を一括で買って,データプランの支払いが最初の一回だけで以後チャージしない場合は,本体 81,840 円とウェブ基本資料料(P) 315 円と前払い基本使用料 4,410 円で,総支払額が 86,565 円.

データ定額プランで1年間だと本体 77,280 円とウェブ基本資料料(P) 315 円が 12ヶ月と前払い月月割適用後の基本使用料 2,910 円が 12ヶ月とで 1 年の総支額が 115,980 円.
月月割の適用開始が3ヶ月目からだとプラス 3,000 円で 1 年の総支額が 118,980 円.

プリペイド最初の 1 ヶ月だけの 86,565 円とデータ定額 1 年の 118,980 円の差額は 31,415 円.これって b-mobile SIM U300 と比べてびっくり,b-mobile SIM U300 は1年で 29,800 円.

つまりもし SIM ロックフリーだったとしてもプリペイド最初の 1 ヶ月だけの iPad に b-mobile SIM U300 を指してもあまり料金的なメリット無いって事?

海外で使う場合もちょっとの旅行では1日単位定額プランの無線 LAN モバイルルータのレンタルっていうのがプリペイド SIM より手軽かもしれないし.

あとはデータ定額プランの途中解約での契約解除料 9,975 円をどう考えるかかなぁ.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20100509n1 TrackBack

[ 上に戻る]