2017年05月10日

時系列のデータをアニメーション表示(2)

今年のESRIジャパンのコミュニティーフォーラム、ジャックさん来るんだー。いいなー。

さてさて、前回の続き。前回は、地価のデータを時系列表示するためのデータを、国土数値情報のサイトからダウンロードしてArcMapで表示した。

ここで、時系列のデータのつくりを一応説明しておく。私の勝手な思い込みなので、もし間違ってたら、コメントくださいませ。

今回ダウンロードした地価のデータは、一つの地価公示点に対して、各年の地価が保存されている。図にすると以下のようなイメージだ。

i17042002.PNG
(図はクリックすると拡大します)

これをArcMapでアニメーション表示したい時は、以下のようなデータに作り変える。

i17042003.PNG

ある一時点(例えば1983年)に対して、一つのフィーチャ(図形)と一つの属性(地価)が保存されているようなデータだ。同じ地点に複数年数のデータがあれば、その分だけ図形も重ねて保存しておく。

それで、後述するArcMapのタイムスライダーで時間を指定すると、その時間の属性を持つ点だけ表示するようフィルタがかかって、地図上に表示される。

i17042004.PNG

この図の例だと、属性テーブルでYearが、タイムスライダーで指定されている1984であるフィーチャだけにフィルタがかかり、1984年の点だけが表示される。

もし、landpriceの値の大小で色を変えるような設定にしていれば、1984年の数値に対応するクラスの色で地図が表示される。

多分、そんな仕組みなんじゃないかと思うんだけど。

今回の地価の点は、基本的に同じ地点の地価が保存されているけど、例えば台風の中心位置みたいに、時間の経過とともに点の位置が動いたってOKである。

ポイントだけじゃなくラインとかポリゴンでもタイムスライダーはもちろん使える。だから時間の経過とともに、形状が変わるようなデータもパラパラ漫画にすることができる。例えば、年次ごとの市区町村境界とその人口のデータがあったら、市区町村合併とかで境界が変化する様子を見つつ、人口の変化も追っていくことができるはずだ。たぶん。

で、今回ダウンロードした地価のデータをアニメーション表示するためのデータに書き換えるのが、「フィールドの転置」ツールだ。ArcMapに23区の地価のデータ(tok23chikaとする)を追加した状態で、ArcToolboxの「データ管理ツール>フィールド>フィールドの転置(Transpose Fields)」を選択する。

ツールが起動したら、まず入力テーブルを選ぶ。今回はtok23chikaを選択する。すると、tok23chikaのフィールドがリストアップされる。前回確認した通り、L01_048からL01_080がS58年からH27年までの地価のデータで、これをアニメーション表示したいので、これらのフィールド名にチェックを入れる。

L01_048の行をクリック、そのまま下にスクロールバーでスクロールしてL01_080をShiftキーを押しながらクリック(これでL01_048からL01_080までが選択される)、で、「選択をオン」をクリックすると楽♪。

フィールド名をチェックし終わると以下のような感じ。

i17042005.PNG

次は、フィールド名の横の値を指定する。ここの値が時間として扱われるので、年の数字のみを入れていく。これは年次が多いので面倒だぞー。当然、年は元号じゃなく西暦で入力する。

昭和58年は1983年なので、まずl01_048の値の部分を「1983」に変更する。これをL01_080まで一つずつ数値を大きくしながら入力する。かすかにGISのしもべ状態だけど、ここは頑張る。うん。L01_080に対応する数字が2015になったらOKだ。

i17042006.PNG

次は出力するテーブル名を指定する。んん?なんでテーブル?と思った方もいるかもしれない。これは、このツールの下の方にある、属性フィールドのところで「Shape」にチェックを入れないと、ただ単に行と列が入れ替わったテーブルしか出力してくれないのだ(涙)。

とりあえずここでは、出力フィーチャクラス名を入力する。今回は「TokLandPriceTS」と入力した。

さて、次が「転置されたフィールド」というところだ。今回、転置されたフィールドには西暦を頑張って指定した。ここは、年、とか、Year、とかというフィールド名にするといいと思う。

次は、値フィールドのところだ。今回は各年の地価の値が入ったフィールドを転置してねと指定したので、地価、とか、LandPrice、みたいなフィールド名だといいと思う。

ここまで指定すると、出力テーブル、転置されたフィールド、値フィールドは以下のような感じ。ぜいぜい。

i17042008.PNG

最後に、「属性フィールド(オプション)」入力テーブル中の属性のうち、出力したフィールドを指定する。(オプション)って書いてあるけど、パラパラ漫画をしたいなら、ここがとてもとても大切。Shapeを必ずチェックする。


i17042009.PNG

その他、出力したい属性にチェックを入れる。例えば、こんなフィールドを出力してみることにする。

L01_017 標準地行政コード
L01_018 表示地市区町村名称
L01_019 住居表示
L01_021 利用現況
L01_043 法規制

ここまで指定できたら、さあOKをクリックだ!

つつがなく処理が終わったら、TokLandPriceTSの属性テーブルを開いてみよう。

i17042010.PNG

転置する前の23区の地価のポイントは全部で1,594点、それぞれの点に33年分のデータがあるから、1,594×33=52,602レコードあるはずである。

ここで、LandPriceのフィールドがテキスト型(涙)なので、新しくLandPriceNumフィールドをLong Integerで作って、そこにLandPriceの値をコピーしよう。以下、作業イメージだけ掲載しておく。

Long Integer型のフィールドを追加して…
i17042011.PNG

フィールド演算でLandPriceの値をコピー
i17042012.PNG

LandPriceNumフィールドで塗り分けると以下のような感じ。

i170420121.PNG
(国土交通省国土政策局「国土数値情報(地価公示データ)」をもとに、てくてくGISラボ たかはしが編集・加工)

真っ青な点のいくつかはおそらくゼロが入っている点だと思う。地価が計測されていなかった点にはゼロが入るみたいなので、LandPriceNumがゼロは省いた方がよさそうだ。

これをやるには、えーと、レイヤプロパティでフィルタを設定する。

i17042013.PNG

パラパラ漫画するには、あともうちょっとなんだけど…。今回はこれにてっ!
posted by たかはし at 11:00| Comment(0) | ArcGIS

2017年04月26日

時系列のデータをアニメーション表示(1)

最近ではデータがリッチになってきて、時系列でいろんなデータが入手できるようになってきた。昔からのGISだとどっちかというと、時間による変化を見せるのはあんまり得意ではない。でも、ちょっと前のArcGISから、パラパラ漫画的なアニメーション地図(っていうのかな?)を作ることができるようなった。

ということで、今回は時系列データのアニメーション表示方法をメモっておく。とりあえず今回はデータの入手までをメモメモ。

今回使うのは、おなじみ国土数値情報の地価のデータだ。最新版のデータをダウンロードすると昭和58年ごろからの地価も保存されていて、結構便利だ。

国土数値情報ダウンロードサービス
http://nlftp.mlit.go.jp/ksj/

ここの「JPGIS形式」の「GML(JPGIS2.1)シェープファイル)」というデータ形式の中から、「地価公示」を選ぶ。その次のページに、データのフォーマットの説明があって、ページ最下部でダウンロードするデータの都道府県を選ぶことができる。今回は東京のデータを使った。

あ、あと都道府県を選ぶところのちょっと上あたりに「シェープファイルの属性について」というエクセルファイルへのリンクがあるので、これも入手しておくといいと思う。それによると、地価公示(L01)のデータは、L01_48からL01_80という名前のフィールドに、昭和58年から平成27年までの価格が保存されているらしい。

都道府県を選んだら、次のページへ。データの年次が選べるので、一番下にある最新の平成29年のデータにチェックを入れる。

その後、利用目的のアンケートとか、ちゃんと利用規約理解した?とかのページが表示されるので、それらに答えて読んで、データをダウンロードする。今回の場合だと、L01-17_13_GML.zipという名前のファイルがダウンロードできる。

ZIPを展開すると、L01-17_13で始まるシェープファイルを構成するファイル群と、KS-META〜で始まる、メタデータが展開される。

シェープファイルをArcMapに追加すると、島嶼部とか、市部とかも含む東京全域のデータが表示される。今回は、そこから23区のデータだけを使う。

L01_017フィールドが131で始まるポイントを選択して、エクスポートをかけた。このフィールドには市町村コードが入っている。東京、というか特別区のコードについて、詳しくはWikiの以下のページを見てみてくださいな。

全国地方公共団体コード の「特別区の区域および政令指定都市」の説明
https://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD%E5%9C%B0%E6%96%B9%E5%85%AC%E5%85%B1%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%BC%E3%83%89#.E7.89.B9.E5.88.A5.E5.8C.BA.E3.81.AE.E5.8C.BA.E5.9F.9F.E3.81.8A.E3.82.88.E3.81.B3.E6.94.BF.E4.BB.A4.E6.8C.87.E5.AE.9A.E9.83.BD.E5.B8.82


23区に絞った地価のシェープファイルを表示すると、こんな感じのデータが表示される。

i17042001.PNG

(国土交通省国土政策局「国土数値情報(地価公示データ)」をもとに、てくてくGISラボ たかはしが編集・加工)


データフレームの座標系をJGD2000の平面直角9系にして表示している。

ほんとは地価を数値分類で表示したかったんだけど、地価のフィールドの型がテキストで、シェープファイルそのままでは表示できなかった…。新しく数値型のフィールドを作って、そこに値をコピーするのをS58 年からH27年間分やるのはちょっと…。しょぼーん。

そういえば前もこんなことがあって、ExcelでDBFを開いて数値型に変換するツールを教えてもらった気がする。今度国土数値情報をダウンロードするときに、アンケートに書こう。その時にはまた忘れてそうだけど。

次回、このデータからアニメーション用のデータを作る際に実行する「フィールドの転置」を使うと、地価のフィールドは1つのフィールドにまとめられる。そしたら、一回だけ数値型に変換しよう。そうしよう。

今回は、とりあえずデータ入手までということで。よれよれ。
posted by たかはし at 11:00| Comment(0) | ArcGIS

2017年04月19日

ArcMapでArcToolboxツールの結果を再利用

ArcMap上のArcToolboxで何か処理をして、もう一度同じパラメタで処理を実行したくなることがある。

よくやってしまうのは、フィーチャを選択したままArcToolboxで処理を実行してしまって、選択フィーチャだけに処理が実行されてしまうという操作ミスだ。重いはずの処理がやたらと早く終わり、嫌な予感を抱えつつ出力フィーチャを見ると、ちょろっと一点だけ出力されていたりする。全くそんなうっかりな自分にがっかりだ。

仕方がないのでもう一度ArcToolboxのツールを実行しなおすわけだが、指定したパラメタの数が多かったりすると、やりなおすのも手間である。

そんな時は、「結果」ウインドウを確認する。これはArcMapの「ジオプロセシング」メニューから「結果」を選択すると、(ArcToolboxのようにArcMapウインドウ右側に)表示される。

i17041901.PNG

今さっきやったArcToolboxでの処理であれば「現在のセッション」のところにリストされているはずだ。図は先週ぐらいにやった処理がリストされていて、このときはフィールド演算を何度も実行していたらしい。

この「フィールド演算」というところをダブルクリックすると、フィールド演算ツールが、以前実行した時に指定した式や数値などが入った状態で、表示される。

i17041902.PNG

ここで「OK」をクリックするともう一度その処理を実行できる。

もしシェープファイルなどに出力するような処理の場合は、前回と同じシェープファイル名だと処理を再実行できないので、あらかじめ間違って出力しちゃったシェープファイルを削除しておくか、別の名前を指定するとよいと思う。

まま、ArcToolboxをよく使う人なら知ってるよね…、という内容だけど、とりあえずメモメモ。
posted by たかはし at 11:18| Comment(0) | ArcGIS