箱根リベンジ

11月の連休に箱根に行った時は渋滞がひどくて、結局箱根にたどり着けませんでした。
詳しくは、my-hobby » 連休の箱根を見て下さい。

ただやっぱり箱根の紅葉を一眼レフに収めたい、そこで懲りずに今週(11月28日)も箱根に行ってきました。
さすがに連休ではないから、込んではいないはず!と心に言い聞かせて、更には気合も入れて、前回よりも1時間早く家を出発しました。

今回は東名高速から小田原厚木道路を通って、箱根に向かいました。
東名高速の厚木インター付近、小田原厚木道路の一部で渋滞がありましたが、それ以外は問題なく順調でした。

途中小田原で昼食を取るほどの余裕を見せて、いざ箱根へ・・・
ちなみに、小田原で食べた岡西甘味喫茶店の「胡麻おはぎ」は甘さ控えめのあんに、やわらかい餅がマッチしてとても美味しかったです。
ウチの奥さんも、「もっと買っておけばよかったー」と言わせるほど美味かったです。

早速いつものルート「箱根ターンパイク」で、久々にエンジン全開にし、クルマの調子も良くなったところで、大観山に到着。
箱根の紅葉を上から見ようと、いざ展望台に向かったら、あれっ!紅葉してない。。。

箱根芦ノ湖
箱根芦ノ湖

ふもとの芦ノ湖付近にある、県立恩賜箱根公園に行き、紅葉を探してもありません。
ふと下を向くと、見事に散ったもみじの葉が散乱してました。。。

もみじの葉
もみじの葉

これは箱根の紅葉は既に終わっている事を意味してました(× ×)
やはり、1週間前が紅葉のピークだったか・・・

とりあえず、何も撮らないのも悔しいので、芦ノ湖を湖畔から撮影しました。

箱根芦ノ湖の湖畔
箱根芦ノ湖の湖畔

使用レンズ トキナー AT-X 124 PRO DX 撮影モード 絞り優先AE
F値 8.0 焦点距離 12mm
シャッター速度 1/2500秒 ISO感度 400
その他 露出補正-0.9(SILKYPIX Developer Studio 4.0 で補正)

何ともやり切れぬ一日でした。。。

連休の箱根

11月の3連休に紅葉を見に行こうと思い、ドライブも兼ねて箱根に日帰り旅行に行きました。

東名高速は下り線が大渋滞していたので、箱根新道から新湘南バイパス、西湘バイパス経由で箱根に行こうとハンドルを切りました。
しかし、今まで渋滞なんて一度もしてなかった新湘南バイパスまで渋滞しているではありませんか><

予定では箱根で昼食をとる予定だったのに、平塚辺りで既に13時を過ぎてました。
幸いにも子供が車の中で寝てくれてたので、ここまでガマンして来れましたが、いつものパターンで行くと、そろそろ起きるはず。。。

「これじゃ箱根は無理だ・・・」という空気が夫婦の間で流れ始め、結局平塚のファミレスで昼ご飯にして、箱根の紅葉はあきらめました。

ただ、このまま帰るのもシャクなので、平塚の海で少し遊びました。
せっかく一眼レフで紅葉を撮ろうと思ったのに・・・とりあえず海でこんな写真を撮りました。

平塚の海1
平塚の海1

使用レンズ キヤノン EF50mm F1.4 USM 撮影モード 絞り優先AE
F値 8.0 焦点距離 50mm
シャッター速度 1/1600秒 ISO感度 400
その他 露出補正-2.1(SILKYPIX Developer Studio 4.0 で補正)
平塚の海2
平塚の海2
使用レンズ キヤノン EF50mm F1.4 USM 撮影モード 絞り優先AE
F値 8.0 焦点距離 50mm
シャッター速度 1/6400秒 ISO感度 400
その他 露出補正-0.8(SILKYPIX Developer Studio 4.0 で補正)

ちなみにこの撮影のポイントは、露出を抑えて、海に反射する太陽の光を最大限に生かした写真に仕上げてみました。

以外ときれいに撮れたのでそれなりに満足!

EOS40Dに合うレンズ(タムロン)

購入当初はキットレンズとして付属していたEF-S18-55mm F3.5-5.6 ISを使用していましたが、望遠側が物足りなかった為、望遠と広角を一つのレンズでカバー出来るTAMRON | B003を購入しました。

TAMRON AF18-270mm F/3.5-6.3 Di II VC LD Aspherical
TAMRON AF18-270mm F/3.5-6.3 Di II VC LD Aspherical
全開まで伸ばした感じ
全開まで伸ばした感じ

当時はまだ発売されたばかりで、キャッシュバックキャンペーン中という事もあり即購入って感じでした。
また自分自身もF値やMTF特性などがよく解っていなかった頃なので、単純に高倍率ズームの効くレンズ=高性能なレンズ、と勝手に思い込み、値段もCanonの純正レンズより安かったので購入を決めました。

このレンズ非常に汎用性が高いです。
自分の様に子供がいて、どこに行くにも荷物がかさ張る様なタイプの人にはぜひお薦めのレンズです。
Lレンズの様に高いパフォーマンスを発揮する事はありませんが、全般的に使ってて不快を感じる事はありません。
●良いところ
・超高倍率ズームなので、非常に汎用性が高い。
どこで場所を選ばず撮影可能です。
これ1本持って行けば、ほとんどの場合で自分の意図したアングルでの撮影が可能です。
・値段が安価
純正で同じ様な性能を持つキヤノン:一眼レフ用交換レンズ EF LENS|EF-S18-200mm F3.5-5.6 ISに比べて、市場価格ベースで1万円以上も安い
タムロンの270mm付近ではF値が6.5になってしまいますが、200mm付近ではF値も5.6をキープするので、性能的にも見劣りはしません。
・手振れ補正がよく効く
これは純正のレンズよりも非常に優れています。望遠側で撮影するときは必須の機能ですが、このレンズはシャッターを半押ししてピントを合わせると、被写体がピタッと停止します。

●悪いところ
・オートフォーカスが純正のCanonレンズに比べて遅い。
フォーカスを合わせると、モーターがウィーーーンて周る音がして、その音も遅さを感じる。
「そう言う物だ」と思って使えば、すぐに慣れます・・・
AFサーボにして連写撮影すると、被写体が迫ってくる様なシーンではフォーカスが追いつかない場合があります。
・270mm付近のF値が6.5まで落ちるので、暗い場所などではピントが合わない場合が多い。
元々EOS40DのオートフォーカスはF値が5.6までと書かれているので、それ以上の数値になるとピントが正しく合わない場合が多いです。
明るい外などではピントが正しく合います。

上記の様な感じのレンズなので、スポーツ撮影等にはあまり向いていませんが、風景撮影には抜群の威力を発揮します。
最近撮影した一枚を掲載します。

紅葉
紅葉
使用レンズ TAMRON 撮影モード 絞り優先AE
F値 8.0 焦点距離 270mm
シャッター速度 1/280秒 ISO感度 800
その他 露出補正+0.3、PLフィルター使用

まぁどのレンズも良し悪しはありますが、使い手の環境によって克服出来たり、我慢できたりと色々あると思うのですが、個人的にはそれらを考慮した上でトータル的にこのレンズが今のところベストレンズであると言えます。
どこに行くにも、このレンズを最初に付けてから家を出ます。

EOS40Dで撮ってます

現在自分が所有のデジタル一眼レフ、デジタルカメラEOS 40Dです。

今から9ヶ月ほど前に購入しました。

EOS40D
EOS40D

当時はEOS50Dが発売されて間もない頃で、型落ち品として安く販売されていたのでそれを購入しました。
EF-S18-55mm F3.5-5.6 ISが付いたレンズキットでした。

当時はキャノン:EOS kiss X2の購入と迷いましたが、実際に家電量販店で手に持ってみた感じ、EOS40Dの方が重みがあって自分の手になじむ感じがしたので、こちらをネット通販で購入しました。
他にも、色々な本を読んで勉強したのですが、初心者なので何を言っているのか分からず・・・結果、自分の手になじんだという理由だけでEOS40Dにしました。

ただ今思い返してみると、EOS40Dを買って良かったと思います。
理由は・・・
1.重量感があるので、カメラを構えた時に安定する。
2.多少ぶつけてもビクともしない。かなり頑丈です。
3.中級者っぽい気分になれる。
4.連写が使える。
などなどです。
特に2は非常にありがたい感じです。
自分には1歳の子供がいるので、子供を抱っこしながらカメラを肩から提げて歩くと、柱などにカメラをぶつけてしまいます。
「ゴツッ!」と鈍い音がすると、うぁーやべ~・・・と思いながらもカメラは無傷!
このタフさには驚きです。多分EOSkissX2だったら壊れてたかもしれません。

逆にEOSkissX2のこの機能がうらやましいと思った点は・・・
・オートライティングオプティマイザがある。
くらいです。
ただこの機能、非常にうらやましいです。
室内で、特に被写体の背景が明るい(窓などがあったりする)と被写体が暗く写ってしまいます。
フラッシュをたけばいいのですが、そうすると自然な感じが損なわれてしまうので、この機能だけはうらやましいと思いました。

カメラ本体の話はこのくらいにして、これからはレンズのレビューや、シーンに応じた設定などをシロートなりに記事にしていきたいと思いますので、よろしくお願いします。

ブログはじめました!

初めまして!

神奈川県内在住のろっきーと申します。
学生時代からアウトドアやギター、日帰り温泉などの趣味を持ち、一児の父親になってからは、一眼レフにハマッてます。
世の中の色んなものに興味を持ち、面白そうだったら趣味にしてしまう・・・そんなお気楽な性格です。

そんなお気楽な性格から得たものや、さまざまな経験をブログに残してみようという事で始めました。
よろしくお願いします。。。

あと、自分は現在ITエンジニア(フリー)の仕事をしています。
IT関係に関する技術ブログ(flashcast:フリーで働くITエンジニア集団のブログ)や、自分が作成したサイト(郵便番号検索 -zipnavi-)なども興味があったら見ていってください。

2地点の緯度経度から距離を求める(概念編の詳細)

前回の記事(my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~結果報告編~))でgoogleMAPS APIの計算式の検証を行ないました。
その際に検証用として使用した図に対して、メンバーのもじゃもじゃさんから「なぜこの様な図が出来上がるのか?詳しく教えて欲しい」という話があったので、今回はmy-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)で提案した図についてもう少し詳しく説明したいと思います。
またこの図を使って、ちょっとした実験もしてみたいと思います。

この記事を見て、図に興味を持った方は是非見ていってください。
図のサンプル

図1
図1

●初めに、この図で検証しようと思ったきっかけ
2地点の緯度経度の距離を数字で比較するよりかは、ビジュアル的な図で比較した方がぱっと見た感じ解りやすくて良いと思ったからです。

●この図を一言で言うと
A地点からB地点までの距離を点の集合体で表現した図です。
A、B地点の意味は、my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~概念編~)を参考にしてください。

●詳細な説明
先ずこの図は、A地点を中心に上下左右が対称である事が分かります。
つまり、縦2等分、横2等分に4分割したいづれの部分も、同じ理論で描画されている事になるので、どこか1箇所を説明すれば、それが他の3箇所にも当てはまる事になります。
そこで、今回は右上のエリアに絞って説明を行ないます。
右上のみに絞った図を以下に示します。

図2
図2

この点について全てを説明するのは大変なので、更にいくつかポイントを絞って説明していきます。
1.B地点が東経0~180度、北緯90度(北極点)の場合の距離(図3参照)
この図は、地球という球面を平面に見立てて距離を求めようとしているのですが、平面の場合、単純に3平方の定理を使用して、2地点の長さを求めると、その距離は2点(A地点、B地点)を対角線で結んだ長さとなります。※青色の線
しかし(2地点の緯度経度)で紹介した計算式(ここでは「ろっきー方式」とさせて頂きます)を使用して解くと、必ずしも2点を対角線で結んだ長さにはなりません。※赤色の線
この1の例で言うと、ろっきー方式を使用して2地点の距離を求めると、B地点の経度は異なるのですが、実は北極点の1点をさしているので、全て同じ計算結果になります。

図3
図3

実際の計算結果は以下の通りです。

A地点 B地点
緯度 経度 緯度 経度 距離(Km)
0 0 90 0 9990
0 0 90 10 9990
0 0 90 20 9990
0 0 90 30 9990
0 0 90 40 9990
0 0 90 50 9990
0 0 90 60 9990
0 0 90 70 9990
0 0 90 80 9990
0 0 90 90 9990
0 0 90 100 9990
0 0 90 110 9990
0 0 90 120 9990
0 0 90 130 9990
0 0 90 140 9990
0 0 90 150 9990
0 0 90 160 9990
0 0 90 170 9990
0 0 90 180 9990

この計算結果を図に反映させると、A地点を中心とした半径(距離Km)の円を描く様な図が出来上がります。

2.B地点が東経180度、北緯0~90度の場合の距離(図4参照)
距離の長さを赤線で示していますが、1の円形と違って、楕円を描くような感じの図になっています。
北緯90度から0度に移動するにつ入れて、距離が長くなっている事になります。
1の場合はB地点がいづれも北極点を指していた為、距離が同じでしたが、今度は北極点から赤道に向かってB地点が配置されている為、距離が伸びていく結果になります。

図4
図4

実際の計算結果は以下の通りです。

A地点 B地点
緯度 経度 緯度 経度 距離(Km)
0 0 90 180 9990
0 0 80 180 9534
0 0 70 180 10347
0 0 60 180 12006
0 0 50 180 13991
0 0 40 180 15937
0 0 30 180 17621
0 0 20 180 18906
0 0 10 180 19708
0 0 0 180 19980

これでもいまいちイメージが付きづらいと思うので、ちょっと視点を変えて、地球を球体として見るとどの様になるか図にしてみました。(図5)

図5
図5

図4の青枠の線と、図5の青枠の線は同じ場所を指しています。
図4では分かりませんでしたが、図5の様に視点を変えてみると、A地点からの距離が伸びているのが分かると思います。

この様な計算結果を今回提案したような図に描くと、図1の様な図形が出来上がります。
これを踏まえると、基準となるA地点と、計測対象となるB地点の緯度経度が分かれば、地球上のどこの場所の地図でも描く事が出来るという事です。

では冒頭にも書きましたが、試しにこの図の概念を使って面白い実験をしてみたいと思います。
JR東京駅をA地点、東京都内の各地域をB地点として、それぞれの2地点の距離を使用して東京都の形を描いてみたいと思います。
B地点となる緯度経度情報については位置参照情報ダウンロードサービスより取得しました。

約5200箇所のB地点の緯度経度情報を元に、それぞれの距離計算して作成した図は以下の通りです。
ちなみに、ろっきー方式は精度が悪いので、より精度の良いGoogleMAPS APIと近い計算結果になった計算式で描画してみました。

図6
図6

うーん・・・何となく東京都っぽい形が浮かび上がりました。
※言われてみないと分かりませんが・・・
B地点の緯度経度情報が均等で無い為、山岳部などは点の数が少なくなっています。
逆に都心部はそれなりの形を成しています。
ちなみに、各市区町村別のB地点の数は以下の通りです。

都道府県名 市区町村名 緯度経度(B地点の数)
東京都< 神津島村 1
東京都 小笠原村 2
東京都 西多摩郡日の出町 2
東京都 新島村 2
東京都 八丈町 5
東京都 三宅村 6
東京都 福生市 20
東京都 西多摩郡瑞穂町 22
東京都 稲城市 23
東京都 国立市 27
東京都 狛江市 41
東京都 清瀬市 43
東京都 小金井市 45
東京都 武蔵野市 51
東京都 羽村市 51
東京都 荒川区 52
東京都 東村山市 53
東京都 あきる野市 53
東京都 三鷹市 62
東京都 武蔵村山市 63
東京都 小平市 65
東京都 大島町 68
東京都 文京区 68
東京都 国分寺市 70
東京都 東大和市 72
東京都 昭島市 75
東京都 立川市 79
東京都 東久留米市 80
東京都 渋谷区 80
東京都 豊島区 83
東京都 中野区 85
東京都 多摩市 87
東京都 目黒区 88
東京都 中央区 98
東京都 調布市 102
東京都 墨田区 104
東京都 台東区 108
東京都 日野市 109
東京都 北区 113
東京都 西東京市 114
東京都 千代田区 115
東京都 港区 117
東京都 品川区 130
東京都 板橋区 134
東京都 町田市 137
東京都 杉並区 139
東京都 青梅市 144
東京都 府中市 147
東京都 江東区 149
東京都 新宿区 152
東京都 葛飾区 155
東京都 江戸川区 196
東京都 八王子市 199
東京都 練馬区 202
東京都 大田区 216
東京都 足立区 267
東京都 世田谷区 277

何かこの図の考え方は他にも応用が利きそうですが、またアイデアが浮かんだら記事にしたいと思います。
いきなりこの記事を読んだ方!意味不明かと思いますので、興味があればバックナンバーを参考にして下さい。

Googleの郵便番号検索の精度を検証してみた

先日Googleが、住所から郵便番号を検索するサービスを開始したというニュースが流れました。
Google Japan Blog: これからは郵便番号も検索できます!

9月にzipnaviをオープンしたばかりなのになんと、競合相手がGoogleになるとは・・・
zipnaviは構想から、オープンまで1年近くかかったのに対して、小さな改善から大きな機能追加まで、次から次へとリリースされていくのはさすがです。
とりあえず、どれくらいの精度があるのか、早速試してみる事にしました。
検索方法としては、住所の前か後ろに「郵便番号」という文字を付けて検索を行なえばいいそうです。

先ずは東京タワーの住所を検索してみました。
「東京都港区芝公園4丁目2-8」
rokky_20091112_pic1

正しく検索されました。
※検索結果のドメインが日本郵便(www.post.japanpost.jp)になってますけど、日本郵便と提携しているのでしょうか?
しかも、番地まで入れても正しく検索が行なわれるのは、zipnaviと同じ。
さすがGoogle!

でもこれは簡単なケースなのでもう少し難しいケースを試してみます。
「東京都港区赤坂ミッドタウン・タワー1階」
rokky_20091112_pic2

ん!?これはダメなようです。
※郵便マークが表示されません。別のサイトが上位に来ています。
「北海道釧路市音別町中音別光和」でも試してみましたがこれでもダメでした。

「東京都港区芝公園4丁目2-8」と「東京都港区赤坂ミッドタウン・タワー1階」では何が違うのか?
これは、前者は1つの町域に対して郵便番号は1つしか存在しませんが、後者は1つの町域に対して郵便番号が複数存在するケースです。
「ミッドタウン・タワー」は階数に応じて郵便番号が違うのです。
これは「ミッドタウン・タワー」に限った事ではなく、最近の大規模オフィスビルにはこの様に階数ごとに郵便番号が振られる傾向にあるようです。
「北海道釧路市音別町中音別光和」も「北海道釧路市音別町中音別(光和)」と「北海道釧路市音別町中音別(その他)」で郵便番号が違うのです。

これから察するに、Googleの郵便番号検索は1つの町域に対して複数の郵便番号を持つようなケースには対応していないという事になります。
こちらで把握している情報では、ゆうびんホームページ – 日本郵便から提供されている住所データ(2009/10/30更新分)のデータ(約122,000件)に対して、この様なケースは約5,000件あります。
122,000のうち5,000が検索できないという事になるので、網羅率は約96%という事になります。

ちなみに、zipnaviでは上記のいずれの住所も検索可能です。
1年近く、熟考してきたかいがありました。
これに満足することなく、zipnaviも検索精度の向上に努めていきたいと思います。

とりあえず、これからも郵便番号検索 -zipnavi-をよろしくお願いします。。。

2地点の緯度経度から距離を求める(Goole MAPS API ~距離の計算式編~)

my-hobby : 2地点の緯度経度から距離を求める(Google MAPS APIとの比較~結果報告編~)の結果で、Google Maps API リファレンス – Google Maps API – Google Code(google方式)の精度が、3平方の定理を使用した方式(ろっきー方式)よりも精度が良い事が分かりました。
そこでgoogle方式の計算式を調べていたところ、偶然、javascriptのコードを緯度経度から2点の距離を求める – masakiplusの日記で見つけました。

今回は、これをVB.netに変換し、2点間の距離を算出しました。
以下のプログラムです。
[vbnet]
Imports System.Math
Public Function Getdistance(ByVal longitudeFrom As Double, ByVal latitudeFrom As Double, ByVal longitudeTo As Double, ByVal latitudeTo As Double)As Double
Dim from_x As Double ‘A地点の経度(ラジアン)
Dim from_y As Double ‘A地点の緯度(ラジアン)
Dim to_x As Double ‘B地点の経度(ラジアン)
Dim to_y As Double ‘B地点の緯度(ラジアン)
Dim deg As Double
Dim distance As Double ‘2地点の距離

from_x = longitudeFrom* Math.PI / 180
from_y = latitudeFrom * Math.PI / 180
to_x = longitudeTo * Math.PI / 180
to_y = latitudeTo * Math.PI / 180

deg = Sin(from_y) * Sin(to_y) + Cos(from_y) * Cos(to_y) * Cos(to_x – from_x)
distance = 6378140 * (Atan(-deg / Sqrt(-deg * deg + 1)) + Math.PI / 2) / 1000 ‘2地点の距離(Km)
Return distance

End Function
[/vbnet]

このプログラムを使用して、計算を行った結果と、google方式の結果を比較したところ、以下の様な結果となりました。

図1-計算結果
図1-計算結果

※赤がgoogle方式、黒がインターネット上で見つけた計算式です。
google方式、インターネット上で見つけた方式の順に上書き描画しています。

なんと黒色の点しか存在しません。

詳細に調べる為、結果を数値レベルで比較したところ、最も誤差の大きいところでも0.013Km程度でした。(0.00008%の誤差)
また、上記のケースは東経0~180度、北緯0~90度の範囲ですが、念の為に世界全体で比較した場合も同様の結果となりました。(図2を参照)

図2-計算結果(世界全体)
図2-計算結果(世界全体)

プログラムで小数点以下を扱う以上、この程度の誤差は出てしまうので、ほぼこの計算式で間違いないと言えます。

なおGoogle MAPS APIの公式な情報として、この計算式が発表されているわけでは無いので、本当の計算式は不明ですが、非常によく似た結果になった事は事実です。
今回は計5回に分けて記事を書きましたが、その結果以下の結論を得る事が出来ました。

・三平方の定理を使用した2地点の距離の計算式(ろっきー方式)よりは、Google MAPS APIが提供している機能(google方式)の方が精度が良い。
・図1、図2の様なテストケースにおいて、Google MAPS APIが提供している2地点の距離を求める計算結果は、上記の計算式を使用して計算した結果と非常によく似ている。

前者は悔しいですが、ある意味予想通りの結果でした。
ただ後者の事実が得られた事は予想外の収穫でした。

この計算式があれば、インターネットが利用できない環境(Google MAPS APIが利用できない環境)でも、Google MAPS APIを利用した場合と同等の結果(2地点の距離)を求めることが出来るようになります。

ちなみに余談ですが、計算式のヒントとして紹介したサイトから、更にそのサイトが参考にしたサイト(Seis Pesos)は、googleマップを使った技術がすごいです。
上記の計算式も、元々はこのサイトで掲載されていた様です。(今は無かったです)
今後googleマップを使ったアプリを作る機会があったら参考にしたいと思います。(今回のもう一つの収穫でした)