goo blog サービス終了のお知らせ 

てくてくダイアリー

GISとか使ってました

フリーデータを使う(4) 緯度経度の(XY)データの表示

2012-01-24 | ArcGIS

日本だと全く地図のデータがない!ということは少ないと思うが、海外に行くとなかなかデジタルの地図は手に入らなかったりする。

まぁ日本であっても、自分好みのデータ、例えば「ここ内緒のフィッシングポイントね」とか、「お気に入り猫雑貨ショップの地図」とか、そういう地図は自分で作ることになる。内緒でお気に入りを地図にする人がいるのか言われればまぁいないのかもしれないが。

で、そんなときに使うのが、「XYデータの表示」、という機能だ。この機能は、緯度や経度のような座標値をテキストファイルなり、CSVなり、エクセルなりに保存しておいて、その座標値を元にポイント地図を作ってくれる。

例えばエクセルで以下のようなデータを作っておく。

で、ArcMapに、このエクセルファイルのワークシートを追加する。

「データの追加」でもって、エクセルファイル名をダブルクリックすると、そのファイル内のワークシートがリストアップされる。今回の例ではエクセルファイル名が「学内食堂の緯度経度.xlsx」、ワークシート名がExcelデフォルトの「Sheet1」である。

でSheet1を追加して、開くと以下のようなテーブルが表示される。「名前」の部分は表示幅が短くて読みにくかったので、フィールドの幅を広くしている。

当然だけど、エクセルでの見え方とほぼ同じだ。

で、このデータの緯度をY座標、経度をX座標として、ポイントの地図を作成する。緯度経度でYXの順なので、お間違えなく(ときどき間違えて、反転したポイントが表示されて焦ることがある)。

ArcMapの(デフォルトだと)左側に表示されている「コンテンツ」の部分から、ワークシート名を右クリックし、「XYデータの表示」を選択する。

で、表示される「XYデータの表示」というウインドウの中で、Xフィールドとして「経度」、Yフィールドとして「緯度」を選択する。

さらに、今回はGoogleMapで緯度経度を取得したので、WGS84を入力座標系として指定する。

 

  1. 「入力座標の座標系」というところの「編集」というボタンをポチッと押す。
  2. 「空間参照プロパティ」ウインドウで「選択」ボタンを押す。
  3. 「日本周辺の地理座標系」>「WGS 1984.prj」をダブルクリックして選択する。
  4. 「空間参照プロパティ」ウインドウの「OK」ボタンを押す。

 

以下のような感じで指定ができたら「OK」をクリック。

以下のようなメッセージが表示されることがあるかもしれないが、「OK」をクリック。

で、追加された「Sheet1$イベント」データにラベリングすると、以下のように表示される。

ポイントの地図なので、なんかちょっとさみしーなぁ。自分で作った力作データなのに(笑)。

ちなみに追加されたポイントはシェープファイルにはなっていないので、ArcMap内でポイントを動かしたりはできない。もし、シェープファイルにしたい場合は、「Sheet1$ イベント」を右クリックして、「データ>データのエクスポート」でシェープファイルにエクスポートする。

GPSなんかで取得した緯度経度なんかをポイント地図化するときなどにどうぞ。

余談だが、ESRIの製品の中では、テーブルにあるデータをポイント地図化したデータを「イベント」と言うらしい。なんとなく覚えておくと、別の機能の中で「イベント」という言葉が出てきたときにわかりやすいかもしれない。

まま、今回はこれにて。。。


フリーデータを使う(3)-7 町丁目毎の平均傾斜角度の集計

2011-12-27 | ArcGIS

じゃあ今回はささっと町丁目毎の平均傾斜角度の集計を。

まず集計の前に、集計対象である傾斜角度を計算する。えーっとArcToolboxのSpatial Analyst>サーフェス>傾斜角(Slope)で、DEMから傾斜角が計算できる。

入力ラスタはDEM(先週からの例だと、bunsp5m2)、出力ラスタ名はまぁ適切に(数字で始めない、半角8文字以下、特殊文字を使わない方がベター)、あとはデフォルトのままOKをクリックする。

そうすると以下のようなグリッドが出力される。

傾斜の緩いところは薄い色で、きつくなるに従って濃い茶色になるよう表示されている。谷筋は結構傾斜がきついことがわかる。確かに後楽園の方から大学まで歩くと、道によっては急な坂を上ることになるからなぁ。

で、前回と同じよう町丁目でゾーンデータにして、ゾーン統計をテーブルに出力(Zonal Statistics as Table)を実行して、出力されたテーブルを町丁目界のデータに結合する。で、表示してみると以下のような感じ。

平均の傾斜角が緩い町丁目は薄い色で、急になるに従って濃い色で表示されている。

念のため、人口密度の方も再掲してみる。

人口密度が低いと青くて、人口密度が高くなるに従って黄色を経て、赤くなる、という配色である。

一番平均傾斜角が急なところは人口密度が確かに低いといえなくもないかもしれない。先週から、いえなくもない、ばっかりだな。

人口密度と平均傾斜角の散布図は以下のようになる。

縦軸が人口密度、横軸が平均傾斜角度である。一つ傾斜角が10付近に、人口密度0.004の外れ値があるが、これは関口二丁目という町丁目である。これも地図を見てみると椿山荘があるあたりである。かなり広大な敷地だったと記憶しているので、傾斜角度が大きいから人口が少ないというよりは、大型の施設があるから人口が少ないのかもしれない。

それを除くとまぁ、団子かなぁ。。。地形の影響で傾斜がきついところには確かに人が住みにくいのかもしれない部分と、大型の施設があって人口が少ないところ、などなど、人口(密度)を決定する要因は当然ながらいくつかあって、単相関でははっきりとは現れにくいのかなと思う。

そもそも、町丁目毎に標高とか傾斜角度とか集計するってどうなのよ(ノリつっこみ気味)。町丁目っていう人工的なくくりと高さとか傾斜角度とかってほんとに関係あるわけ?

あ、でも、それを確認するためにやったってことで。ついでに、ポリゴンでグリッドを集計する方法を確認したってことで。

さぁ、これで、今度こそ、今年の記事はおしまい。

いろいろあった一年だったけど、みなさま。よいお年を。


フリーデータを使う(3)-6 町丁目毎の平均標高の集計

2011-12-20 | ArcGIS

今回は予告通り?町丁目ごとの平均標高とか平均傾斜角の集計を。これにはSpatial Analystが必要。どうもDEM関係はエクステンションを多用しちゃうよなぁ。

まずArcMapに基盤地図情報から作成したDEMとe-Statからダウンロードした町丁目界のデータを追加する。

んで、ArcToolboxから「Spatial Analyst>ゾーン>ゾーン統計をテーブルに出力」を起動して以下を指定する。

  • 入力ラスタ、またはフィーチャゾーンデータ:文京区の町丁目界のデータ(h17ka13105)
  • ゾーンフィールド:MOJI
  • 入力値ラスタ:DEMのデータ(bunsp5m2)
  • 出力テーブル:何か適切な名前(数字で始めない、特殊記号を使わない)。
    ここでは例えばZoTakasaにする。Zonal Takasaの略のつもり。
  • 統計情報の種類:ALL

指定ができたら、OKをクリック。ほぼ瞬時に処理が終わって、ZoTakasaテーブルがArcMapに追加される。このテーブルを開いてみると以下のような感じ。

ZoTakasa.dbfテーブルのMOJIは、e-Statの文京区の行政界のデータのMOJIから引っ張ってきたものなので、両者を結合することができる。行政界のデータの方にDBFテーブルを結合して、MEANで地図化してみると以下のような地図ができる。

平均標高が低いところが緑色で、高いところに行くに従って黄色くなり、最終的に赤くなっている。西側が平均標高が高く、南側&東側が標高が低めである。文京区の位置を考えたら当たり前か。

んじゃ、肝心の人口密度はどうだったかというと、以下のような分布である。

人口密度が低いところが青くて、薄い黄色を経て、赤いところが最も人口密度が高いという地図である。

両者を見比べてみると、平均標高が低めところ(特に文京区の北東部にある町丁目)では人口密度が高めといえないこともないかもしれない。

しかし、いえないような気もする(笑)。特に南側真ん中あたりの人口密度が最も低いところは標高も最も低い色に分類されている。

じゃあこの例外的な傾向(というほどのものでもないけど)を示す、南側真ん中あたりのところはどんなところなのかを、GoogleMapで確認してみよう。ちなみにこの町丁目は後楽一丁目である。なんとなく、住所だけでピンときた人も多いんじゃないかと思うけど。。。

http://maps.google.co.jp/maps?q=%93%8C%8B%9E%93s%95%B6%8B%9E%8B%E6%8C%E3%8Ay%88%EA%92%9A%96%DA&z=16

後楽一丁目は東京ドームや後楽園のある町丁目なので他と同じぐらいの密度で人が住んでいたとしても、人が住めない部分が広いので、結果として人口密度が低くなっていたわけだ。確認していないが、おそらく東大のある町丁目(本郷七丁目)も同じように人口密度が低いんじゃないだろうか。

さて、個別に値を確認したり値の空間的な分布の関連を確認するなら、平均標高と人口密度の地図を見比べるのもいいんだけど、全体の値の傾向をもっとちゃんと知りたいときはグラフを描くとわかりやすい。

例えばArcMapで町丁目界のデータに人口密度を入れるフィールドを追加して、JINKO/AREAを計算、で、平均標高とともに散布図を描くと以下のようになる。(このあたりはExcelとかでやる方が手っ取り早いかも)

横軸が平均標高で、縦軸が人口密度である。左下隅の(X,Y)=(6,0.0002)のあたりの○が後楽一丁目のデータである。

とてもとても引いてみれば、平均標高が高くなるに従って(右に行くに従って)人口密度が低くなる(縦軸の値が小さくなる)、逆相関に見えなくもない(かなり苦しいけど)。統計処理を行うソフトでほんとに逆相関なのか、などなど確認する、ということになると思う。

しかし、山の手の方が低層の住宅地がひろがっていて、一軒一軒の面積が大きいんだろうか。。。低層って言うなら、下町の方がそういうイメージがあるけどなぁ。。。標高が低い方が高層住宅を建てやすいのかなぁ。。。いやむしろ、山の手は商業施設とか大学みたいな、居住面積が小さいエリアなんだろうか。。。と、傾向がおぼろげにわかったところで、それがなぜだかはまだ考えて確認する必要があるわけだけれど。

じゃあ今週はっていうか今年はこれにて。。。

あああ、傾斜角の計算、忘れてた!ということで、来週ちょろっとやってみましょう。ちょろっと。


フリーデータを使う(3)-5 シェープファイルを鳥瞰表示

2011-12-13 | ArcGIS

今年も残すところあと半月ほどである。昔はこの時期になると「今年もあれができなかった」とか「年内にあれをやらなきゃ」とか、あせったりしてものだが、今はといえば「うううう」とか「あああ」と擬音語を発することぐらいしかできなくなってきた。これが年をとると言うことか。

このまま年をとり続けると、一年中「うううう」と「あああ」で過ぎ去ってしまいそうである。

さて、楽しかった先週の鳥瞰図表示のついでで、鳥瞰図の上にシェープファイルを重ねて表示をしてみたいと思う。重ねて表示するのは、以前ダウンロードしたe-Statの国勢調査のデータだ。

シェープファイルを地形のでこぼこに沿わせて表示するには、やっぱりArcSceneを使う。先週の通り鳥瞰図が表示できたら、さらに「データの追加」アイコンで、シェープファイルを追加する。えーっとシェープファイル名はh17ka13105.shpだったかな。

シェープファイルを追加すると以下のように表示される。

まだ地形に沿っておらず真っ平らな緑のやつがシェープファイルである。

でこれを地形に沿って表示するには、DEMをでこぼこに表示したのと同じように操作する。具体的には、h17ka13105レイヤのレイヤプロパティを開いて、「基準高度」タブ内で、「指定したサーフェス上に配置する」を選択し、DEM名を指定する。今回の場合だと、bunsp5m2というグリッド名を指定する。

これで「OK」をクリックすると以下のようにレイヤが表示される。

なんかDEMの段採図とシェープファイルの色が部分部分で入り混じっていて気持ち悪いな、という人もいると思うのだが、長くなりそうなので(実際かなり長い)今回は見なかったことにする。きれいにポリゴンが表示できたとすると下にあるDEMは見えなくなるわけだから、あんまりここで時間をとっても何でしょう。。。と言い訳したりして。

とりあえず、DEMの方の表示をオフにして、人口の方の様子に注意してみることにする。

例えば、人口密度の分布を鳥瞰図上で確認してみよう。国勢調査のシェープファイルには「JINKO」フィールドに人口が、「AREA」フィールドに面積が入っているので、人口を面積で割った値を地図化してみる。指定の方法は、ArcMapと同じである。

すると以下のように表示される。

ちょっと地形の凹凸でがわかりにくいので、視点を移動して水平方向から見てみると。。。

人口密度の高いところ(濃い色で表示されている町丁目)は谷に沿ったところにあるような気がする。あるいは平らなところなのかな。ちょっと鳥瞰図をくるくる回してみるとよりわかりやすいかも。

もし人口密度と標高や傾斜角が関係あるなら、町丁目毎の平均標高を出してみたくなったりするのが人の常ではないだろうか(強引)。

次回は、町丁目ごとの平均標高や傾斜角を集計してみようと思う。さぁうまい結果がでるかどうか。。。まだ私もやっていないので、次回の記事はどきどきだなぁ。

ではでは、今週は短めだけど、これにて。。。


フリーデータを使う(3)-4 標高グリッドの鳥瞰図表示

2011-12-06 | ArcGIS

世の中3次元なゲームとか3次元テレビ、飛び出す映画とか、3次元がはやりである。大昔、立体視鏡で空中写真を見てみたら、地形の高低がくっきり浮かび上がってきたが、あんな感じなのだろうか。

さて今回は、標高グリッドの傾斜でも出して行政界毎に集計でもするか、と思ったのだが、なんだかまじめな内容が続いているので、楽しく鳥瞰図を表示することにする。ただし鳥瞰図表示するには、3D Analystが必要。持ってない人、またまたごめんなさい。

普段はArcGISで地図を表示というとArcMapを使うことがほとんどだが、鳥瞰図を作るときにはArcSceneを使う。

ArcSceneを起動したら、ArcMapと同じように、データの追加アイコンをクリックして、先週作成したグリッドを追加する。

すると、以下のように、斜め上から文京区を見下ろすような視点でデータが追加される。

ArcGISのヘルプを確認すればよいのだが、確か南西の方向からデータを見る感じで追加されるはずである。

ここで、ツールバー中にある「ナビゲート」アイコンをクリックし、鳥瞰図上を上下左右にドラッグすると、地面がドラッグに従ってくるくる回る。

ちなみに、マウスを右クリックしてシーン上を上に動かせばシーンが縮小、下に動かせば拡大される。もちろん、拡大縮小アイコンを使っても構わないが、マウス右ドラッグだと視線のターゲットとなる点がデフォルトであるグリッドの中央付近から動かないので、最初はこちらの方がオススメ。

で、地面をくるくる回しているとお気づきの通り、この地面は真っ平らである。そこで、このグリッドの持っている値(標高)によって、地面を起伏させる設定をする。

これには、ArcScene内でレイヤプロパティを開き(レイヤ名上を右クリックしてプロパティを選択)、「基準高度」タブで、「指定したサーフェス上に配置する」を選択して、標高グリッド名が指定されていることを確認する。

これでも、地面は真っ平らなまま表示される。水平方向の広がりに対して、上下方向の起伏があまりにも小さいので、でこぼこが表現できないのだ。そういうわけで、上下方向を強調して表示する設定をする。

これには、シーンプロパティ(「シーンレイヤ」という文字を右クリックして「シーンプロパティ」を選択)の「一般」タブで「高さ強調」のところで0以外の数字を指定する。「範囲から計算」をクリックするとArcSceneの方で適切と思われる強調スケールを計算してくれるが、強調しすぎ。。。と感じることもなきにしも、なので、参考程度にその値を見つつ適宜強調スケールを指定するとよいと思う。

今回は高さ強調を「5」にしてみた。それでよってみるとこんな感じ。

まぁまぁ強調されている気がする。あとは再度レイヤプロパティで配色を変えて、「陰影起伏効果を使用」をオンにすると。。。

こんな風に表示される。まぁいい感じかな。

きれいに表示できたところで、今週はこれにて。。。


フリーデータを使う(3)-3基盤地図情報の数値標高モデルをグリッドへ

2011-11-29 | ArcGIS

火曜日ってあっという間にくるのね。。。と思う今日この頃。

今回は先週シェープファイルにしたDEMのデータをグリッドにしてみようと思う。グリッドにすると、表示が速いし、傾斜角とか斜面の向きとか計算できるし。ただし、ここから先はSpatial Analystが必要だ。持ってない人ごめんなさい。

ポイントのシェープファイルからグリッドを作成するには、

  1. 単純にシェープファイルをラスタに変換する方法
    ArcToolbox>変換ツール>ラスタへ変換>ポイント→ラスタ(Point to Raster)
  2. ポイントシェープから補間をしてラスタに変換する方法
    ArcToolbox>Spatial Analystツール>内挿 ツールボックスに含まれるツール

の2つがある。1.の方法だと処理は速いんだけど、ラスタに値を割り当てる際、統計的な処理が行われてしまい、DEMには不向きだと思う。いや、表示だけならまぁいっかとも思うけど。

ここでいう統計的な処理というのは、ポイントからラスタに変換する際に、1つのセルの中に複数のポイントが入った場合、その平均をとるとか、合計をとるとか、という処理を指す。

今回は(約)5m間隔のポイントシェープができているのだが、1.の方法で30mのセルサイズのグリッドを作成するように指定すると、30mの中に複数のポイントが含まれることになる。この複数のポイントを合計したり、最も値の出現数が多かったりするものをそのセルの値として使って、グリッドを作る、ということになる。

今回の場合、平均値を出力するならまぁ悪くはないかもしれないけど、そのセルの真ん中から複数のポイントへの距離も考慮されずにそのセルの値にしちゃうのはうーん、って思わない?かな。。。

ついでにセルサイズが30mであれば大丈夫だけど、5mとか1mとかだと、そのセルに入るポイントがないという事態が発生し、ここには標高値は入らない。この場合斜めに白い線が入ったようなグリッドが作成される。それはこまるっしょ。

ということで、今回は2.の内挿のスプラインを使おうと思う。

スプラインを実行するには、「ArcToolbox>Spatial Analystツール>内挿>スプライン(Spline)」を実行する。

入力ポイントフィーチャには前回ポイントシェープに変換した基盤地図情報、で、Z値フィールドは「標高」になる。出力ラスタなどを適宜入力して、出力セルサイズは今回は処理が重いかもしれないけど5mにする。あと、オプションのスプラインの種類で「TENSION」を指定する(と大きな外れ値のないきれいな標高データができることが多い)。

もし文京区の形でグリッドを出力したい場合は「環境」ボタンをぽちっと押して、「処理範囲」と「ラスタ解析」の「マスク」を指定しておこう。四角いままでいいようなら、「環境」の設定は抜かしてくださいな。

余裕があったら、前回ダウンロードした基盤地図の文京区の範囲をポリゴンにしておいて、ここで指定するといいんだけど、そういえば少し前にe-Statのページから文京区の町丁目界のデータをダウンロードしたのでそれを使っちゃうことにする。ああ、データの測地系、座標系が同じってすばらしい。

まずは「処理範囲」の文字をクリックして、「範囲」のところで、「h1713105.shp」を指定する。

同様にして、ラスタ解析の「マスク」のところで「h1713105.shp」を指定する。

2つの設定が終わったら「環境設定」ウインドウの「OK」をクリックする。

で、スプライン(Spline)のウインドウでOKをクリックする。入力の指定は、例えば以下のような感じ。

で、しばししばしまつ。結構待つかも。(1分ぐらい待った)。

グリッドができあがるとこんな感じ。

ついでに文京区の形で切り出すとこんな感じ。

うんうん。きれいきれい。

しかし、ふと基盤地図情報のメタデータ(fmdid0-6.xml)を見てみると、今回ダウンロードしたのは数値地図5mメッシュ(標高)を0.2度間隔で読み直したデータだったらしい。それをまた5mに補間し直すって。。。何か分析に入る前に、ちょっとずつ誤差が出てきてしまうような気がする。

ちゃんと分析をしたいなら数値地図を買って、point to rasterを出力セルサイズ5mで実行する方がよいかもしれない。数値地図は確実に5mメッシュであって、0.2度メッシュ=約5mメッシュじゃないということだ(と思う)から、Point to Rasterで統計的な処理が行われる心配もないわけだし。

まま、今週はこんなところで。。。


フリーデータを使う(3)-2基盤地図情報の数値標高モデルをArcGISへ

2011-11-22 | ArcGIS

さて一人で大感動のうちに表示したDEMデータだが、表示だけでは物足りない。データのドラッグ&ドロップに対応していなくてもいいから、ArcGISに持ち込みたい。そんなときには、DEMのデータをポイントシェープに出力することができる。

※ちなみに、ArcCatalogからArcMapにシェープファイルなどをドラッグ&ドロップして、マップにデータを追加することはできる。

データの変換も楽々で、基盤地図情報ビューアー・コンバーターで、「コンバート>標高メッシュをシェープファイルに出力」を選択し、出力先ファイルなどを指定して、OKすればよい。

ただし、何も考えずにシェープファイルに変換するとすんごい容量のポイントシェープができあがってしまうので、今回は文京区のあたりに絞ってポイントシェープに変換することにする。

実は基盤地図情報ビューアー・コンバーターでは、シェープファイルに変換する範囲を大まかに決めておくことができる。矩形やポリゴンで切り出す範囲を決めたり、今表示されているだいたいの範囲を切り出すこともできる。

ただ、切り出し範囲を決めるにせよ、表示されている範囲を切り出すにせよ、DEM上で文京区がどのあたりかがわからないと範囲を決定できない。というわけで、基盤地図情報から文京区のデータをダウンロードして、基盤地図情報ビューアー・コンバーターに表示し、だいたい文京区のあたりを表示しておいて、シェープファイルにデータを変換しようと思う。

データは前回と同じ、基盤地図情報のホームページから入手する。

今回は、基盤地図情報(縮尺レベル25000)のJPGISをクリックして、「東京都>行政区画の境界線および代表点」にチェックし、「選択して次へ」をクリックする。で、「FG-JPS-13-05-Z001.zip」をダウンロードし、展開しておく。

で、DEMが表示されている基盤地図情報ビューアー・コンバーターに「FG-JPS-13-AdmBdry25000-20110131-0001.xml」と「FG-JPS-13-AdmPt25000-20110131-0001.xml」をドラッグ&ドロップする。(展開したファイルを3つ全部追加しちゃってもいい)。

そうすると行政界(区の境界)と区の名前が表示される。

これで文京区を探して、だいたい文京区全体が表示されるようにしておく。以下の図のような感じ。

こんな風になったら、「コンバート>標高メッシュをシェープファイルに出力」を選択する。

直角座標系にした方が後々楽なので、チェックが入った状態にし、東京なので9系で、出力範囲は「(おおむね)現在表示されている要素のみを出力」を選択する。あと出力先ファイル名を指定する。

で、OKすると、シェープファイルへの変換が始まる。

変換後のシェープファイルをArcMapに追加すると、ポイントがぎっちりと表示される(結構時間がかかる)。このままだとちゃんと変換できてるんだろうかと不安になるのだが、例えば、指定間隔分類で5mずつに区切り(以下の画面はレイヤプロパティ>シンボルタブ内の「分類」ボタンを押すと開く)、

「シンボル」の文字上をクリックして「すべてのシンボルのプロパティ」を選択して。。。

シンボル選択ウインドウの「サイズ」をとても小さくして。。。(ここでは4)

標高のカラーランプを使って表示すると。。。

こんな風に表示される。

なかなかいい感じ♪左側というか西側の白いところは雪が積もるほど標高が高いわけではないけれど。

さて、後はグリッドに変換でもするか?そしたら3D表示もいいかも?

まま、今週はこの辺で。


フリーデータを使う(3)基盤地図情報の数値標高モデル

2011-11-15 | ArcGIS

いや、もうここで紹介するほどのこともないような、メジャーなデータだけど、ちょっとコンバートツールに感動したもので。。。

今回は東京都文京区のあたりのDEMデータをダウンロードして、コンバートツールで表示するところまでやってみようと思う。変換とか補間とかは次週以降ということで。

まずはデータのダウンロードは以下のページから。

基盤地図情報ダウンロードサービス
http://fgd.gsi.go.jp/download/

#ちなみに近い将来、ユーザ登録制になるらしいですよ。と書いた先から、ユーザ登録制になってました。早い。。。しかし、なんでユーザ登録に年齢とか性別とかが必要なんだろう。。。50代男性はよくDEMをダウンロードしてます、とか?(笑)。

「利用者登録画面はこちら」でユーザ登録を済ませた後、上記ページから「利用者登録画面はこちら」をもう一度クリックし、IDとパスワードを入力する。もしかするとアンケートが表示されるかも。

で、開いたダウンロードページの「基盤地図情報数値標高モデル」のところで、JPGISかGMLかのリンクをクリックする。たぶんどっちでもいいんだけれど、今回はJPGISをクリック。

そうすると5mメッシュ、10mメッシュ、250mメッシュの選択肢が現れるので、その文字列の前の+をクリックして展開する。例えば5mメッシュの前の+をクリック。

するとデータの地域が選択できるので、今回は「東京埼玉地区」にチェックをして「選択して次へ」ボタンをクリックする。そうするとダウンロード画面に行くのだが、どのデータが文京区のあたりなんだがよくわからない(涙)

データの名称をみると「FG-JPS-5339-XX-DEM5A.zip」となっているのだが、このXXの部分が標準地域メッシュの2次メッシュの番号になっているらしい。

文京区のあたりの2次メッシュ番号を調べるには、同じく地理院さんのページで「基盤地図情報(縮尺レベル25000)閲覧用インデックスマップ」から調べていく。今回は東京都文京区なので、地図上から「東京」をクリックする。

さらに「20万分の1地勢図名:東京」というページで文京区のあるあたりをえいやっとクリックする。ちなみに「東京西部」の図郭がそれにあたる。そうすると「533945.png」という画像が開く。この画像名がわからないときは、URLの末尾を確認してくださいな。

このファイル名の下2桁(45)が数値標高モデルのデータのXXの部分と対応しているので、今回ダウンロードすべきはFG-JPS-5339-45-DEM5A.zipということがわかる。

あと、533945.pngを見ると文京区が画像の右端というか東にあって、文京区全域はここには含まれていないっぽい予感がする。このような時には、もう一度「20万分の1地勢図名:東京」のページで、「東京西部」の東隣の図郭をクリックする(東京首都です)。

そうするとこの2次メッシュは46ということがわかるので、もうひとつFG-JPS-5339-46-DEM5A.zipをダウンロードすればいいのだな、ということがわかる。

データをダウンロードしたら、展開しておく。

あと、データのコンバートツールも地理院さんのサイトからダウンロードしておく。上記ページの下の方に「基盤地図情報閲覧コンバートソフト(6.2MB zipファイル)」というリンクがあるのでここからダウンロードしておく。もう持っているよ、という人が多いと思うけれど、今年の10月4日に更新されたらしいので、もう一度ダウンロードしておくとよいかも。

コンバートソフトもダウンロードしたら展開しておく。

あとは、展開したファイルの中から「FGDV.exe」をダブルクリックして起動する。

さぁ、ここからが感動の瞬間だ!基盤地図情報と書かれた背景が水色の部分に、展開したDEMのデータ(例えば、FG-JPS-5339-45-99-dem5a-20090202.xml)をドラッグ&ドロップする。

そうすると、基盤地図情報ビューアー・コンバーター内に、ドラッグしたデータが表示されるのだ!ドラッグ&ドロップでデータが表示されるなんて!しかも配色が超きれい。結構かんどー。

さらに、複数のXMLファイルを一度にドラッグしても(ちょっと時間はかかるけど)OK!あっというまに2次メッシュ2図郭分のDEMを表示することができる。めちゃめちゃかんどー!


2次メッシュ2図郭分のDEM。
なんてうつくしー。
下町のあたりを拡大すると、細かな道まで見えてくる。

ああ、こんなことで感動するなんて、もしかしてArcユーザだからかなぁ。。。(苦笑)データの種類が決めうちで、だいたいの標高の範囲もわかっているからできることなんだろうけど。。。ほんとに簡単で、きれいな地図が表示されるんだもん。

一人で大感動したところで、今週はこれにて。。。


フリーデータを使う(3)GADM

2011-11-08 | ArcGIS

今回は海外もののデータのご紹介。

海外物のデータというとDCWとか(ふるっ)衛星画像ものとかがあるけど、やっぱり何となく行政界をゲットしたい。私がインドのデータを探していたときに、最初に教えてもらったのがこのGADMのデータだ。

GADM database of Global Administrative Areas
http://www.gadm.org/

全世界のデータを一挙にダウンロードもできるようだが、結構巨大なファイルらしいので、国毎のダウンロードがオススメ。以下のページから国毎のデータをダウンロードできる。

Download by country
http://www.gadm.org/country

「Country」のところで国名を指定して、ダウンロードするフォーマット(デフォルトでShapefile)を選んで、OKをクリックする。

そうするとダウンロードできる地図の画像のページに移動し、そこで「Download」をクリックするとそのデータをダウンロードできる。かなりお手軽にデータを入手できる。

ちなみに利用はアカデミックユース、非商用ユースのみ。再配布、コマーシャルユースは要許可だ。

さてこのデータ、どの程度の細かさまで入力されているか、だが、インドの場合だと、だいたいディストリクト~タルク(サブディストリクト)レベルまで入力されている。面積が小さいタルクの場合は、ディストリクトかいくつかのタルクがまとめられた行政界が入力されている。(まぁつまり厳密なタルクが入力されているわけではない、ということだ。)

日本の場合だと、国境、都道府県界(47ポリゴン)、おそらく市区町村界(1811ポリゴン)の3つのポリゴンシェープが入手できる。ただし、横浜市とか川崎市は1つのポリゴンになっているようだ。

欲を言えば、政令指定都市内の区の境界もほしいよなー(インドならタルクは全部入っててくれるとありがたいなー)と思ってしまうところだが、日本のように地図が入手しやすい国ならともかく、地図が手元に全くない海外を対象にしていると、まずはあってありがたいデータである。

測地系はWGS84なので、ランドサットのデータ(こっちもWGS84)と重ね合わせるとぴたっとくるので、ちょっとうれしかったりする。意味もなく行政界毎に植生指数とか求めてみたりしたくなってしまう。

今回は文章ばっかりですが。。。これにてー。


フリーデータを使う(2)e-Statの統計データのフィールド定義

2011-11-01 | ArcGIS

先週は、ネタはあったんだけど、元気がなくて(体調が悪くて)ブログの更新ができなかった。。。更新チェックしにきてくれた人、ごめんなさいです。ネタがつきないのはもちろんすばらしいけど、健康ってほんとにすばらしい。

さて、今回は先々週使ったe-Statの統計データに含まれているKEY_CODEというフィールドのお話。

シェープファイルの方のKEYCODEフィールドはテキストフィールドとして読み込まれるのだが、統計データの方では数値型のフィールドとして読み込まれてしまう。このままだと結合ができないので、統計データの数値型フィールドをテキストフィールドとして読み込みたい。

数値型フィールドを文字型として読み込むなら、

  1. 文字型フィールドを一個作って数値型フィールドの内容をコピーする

    しかしその前にテキストファイルをDBFかなにかにエクスポートせねばなるまい。それも確かに悪くはない。

    あるいは元のCSVをEXCELか何かでよんで、セルの書式設定をすればよいのだろうか。最初の行のKEYCODEのところに何か文字を入れても素敵かもしれない。(ArcGISは最初の5行だか、20行だかのデータを呼んで数値型か文字型かを判断するらしいので)

  2. schima.ini内にフィールド定義を書き込む

の2種類ぐらいの方法があるだろうか。今回は何となくスマートに見える2番目の方法を説明する。

このschima.ini、ArcGISに一度統計データを読み込むと自動的に作成される。前回の統計データを読み込んだ直後のschima.iniの中身は以下のような感じだ。

[tblT000051C13105.txt]
Format=CSVDelimited

この後ろに、何かいろいろ書き足すと、テキストファイル(CSVとか)のフィールド定義(どの列が数値型とか文字型とかを指定すること)をすることができる。

詳しくはESRIJのブログに書いてあったのでそちらを見てくださいな。

テキスト ファイルのフィールドを定義する方法
http://blog.esrij.com/arcgisblog/2010/06/schemaini-301f.html

皆さんにはこの資料に一度は目を通していただくとして、今回はもうちょっと手抜きな方法を。

一度ArcGISに追加したデータのテーブルをテキストファイルにエクスポートすると、同じschima.iniにエクスポートした結果のテーブルのフィールド定義が自動的に追加される。

例えば、前回使ったシェープファイル「h17ka13105」の属性テーブルをテキストにエクスポートすると、以下のような情報がschima.iniに追加される。

[Export_Output.txt]
ColNameHeader=True
CharacterSet=932
Format=CSVDelimited
Col1=FID_ Integer
Col2=AREA Float
Col3=PERIMETER Float

<中略>

Col38=KCODE1 Char Width 7
Col39=KEY_CODE Char Width 11
NumberDigits=6

このCol39の情報を、統計データ(tblT000051C13105.txt)のCol1の情報として指定すると、統計データをArcMapに追加したときに、見事KEY_CODEフィールドが文字型として読み込まれるようになる。

ただし、一列目だけ(Col1だけ)のフィールド定義をschima.iniに書き込むと、それより後ろというか右側の列にはむなしく<ぬる>が入る結果となる(実際にやって、非常に寂しい思いをした)。

今回の場合tblT000051C13105.txtには全部で71列のデータが入っている。これを手動でフィールド定義を書き込むのはすごくいや(笑)なので、ちょっと手を抜く方法を考えてみた。

  1. 「h17ka13105」シェープの属性テーブルをテキストにエクスポートしておく。(先ほど説明したとおり)

  2. tblT000051C13105.txtをArcMapに追加する(このときはKEY_CODEは数値型として読み込まれる)

  3. 2.のテーブルをテキストファイルにエクスポートする。例えばtblT000051C13105_test.txtにエクスポートする。(これで、schima.iniにtblT000051C13105_test.txtのフィールド定義が自動的に追加される。素敵。)

  4. schima.iniをテキストエディタで開き、以下の編集をする

    • 以下の行を削除
      [tblT000051C13105.txt]
      Format=CSVDelimited

    • [tblT000051C13105_test.txt]を[tblT000051C13105.txt]に変更(_test部分を削除)

    • Col1についての情報を編集
      「Col1=KEY_CODE Float」となっているところを「Col1=KEY_CODE Char Width 11」と変更

      シェープファイルの属性テーブルをエクスポートしたテキストファイルに関するschima.iniの下から2行目Col39の行をコピーして使うと楽。

これでschima.iniが以下のようになるはず。太字のところが重要ー。

[Export_Output.txt]
ColNameHeader=True
CharacterSet=932
Format=CSVDelimited
Col1=FID_ Integer
Col2=AREA Float
Col3=PERIMETER Float
Col4=H17KA13_ Integer
<中略>
Col38=KCODE1 Char Width 7
Col39=KEY_CODE Char Width 11
NumberDigits=6
[tblT000051C13105.txt]
ColNameHeader=True
CharacterSet=932
Format=CSVDelimited
Col1=KEY_CODE Char Width 11
Col2=HYOSYO Integer
Col3=HTKSYU Char Width 255
Col4=CITYNAME Char Width 255
Col5=NAME Char Width 255
Col6=T000051001 Integer
<中略>
Col71=T000051066 Integer
NumberDigits=6

[Export_Output.txt](シェープファイルの属性テーブルをエクスポートしたテキストファイル)についての情報はいらないので、削除しても構わない(あっても構わないけど)。

で、念のため、ここでArcMapを一度終了させて、再度起動しよう。

で、もう一度tblT000051C13105.txtをArcMapに追加すると。。。

めでたくKEY_CODEが左寄せで表示される(ちなみに文字型は左寄せ、数値型は右寄せらしい)。

これでシェープファイルとの結合もばっちりできる。

文京区とか1つの市区町村で地図化する際にはあまり問題にならないかもしれないが、NAMEフィールドで結合すると同じ地名があったときに、間違って結合が行われてしまう可能性がある。

ある程度まとまった市区町村単位で町丁目別の地図を作りたい場合は、今回のようにKEY_CODEをキーに結合する方が確実だと思う。

なんだか結局あんまりスマートじゃないような気もするけど。。。まぁこんなやり方もあるということで。