2017年05月24日

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

前回までで、基本的な時系列アニメーションの表示方法を確認した。

これで確かにパラパラ漫画的アニメーションは表示できるんだけど、その地図がいつの時点の地図なのかはタイムスライダーバーに表示されている時間を確認しないとわからない。今回は、地図上に時間を表示する方法をメモっておく。

まずは、タイムスライダーウインドウの中にある「オプション」アイコンをクリックする。

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

すると以下のような、タイムスライダーオプションというタイトルのウインドウが開く。

i17051002.PNG

「時間表示」タブの一番下にある「マップ上に時間を表示」をオンにしてOKすると、今何年の地図を表示しているか、文字で表示される。

i17051003.PNG

で、めでたしめでたし、ではあるんだけど、デフォルトでは時間が2010/01/01 0:00:00と表示される。国土数値情報のページによると、各年1月1日が調査時点と書いてある。しかしたぶん、1月1日の0時きっかり、新年あけましておめでとうございますの地価ではないだろう。ここは、年月日だけ表示したい。

もう一度タイムスライダーのオプションを開いて、日付表示形式の中から「2017年5月24日(yyyy'年'M'月'd'日')」を選択する。(日付表示形式にはこの操作をした日の日付がサンプルとして表示される。)

i17051101.PNG

このままだと「時間: 2017年1月1日」というように時間が表示される。ここは、「調査時点:2017年1月1日」と表示されるようにしよう。

これにはタイムスライダーオプションのウィンドウ内の「表示形式」ボタンをクリックする。「時間テキストの外観」というウィンドウが開いて、表示する文字列を入力することができる。

デフォルトだと、「時間: 」と書いてあるので、これを「調査時点:」というように変更する。

i17051102.PNG

で、時間テキスト概観のウィンドウでOK、さらにタイムスライダーオプションのウィンドウでもOKをクリックする。

そうすると、地図上に例えば「調査時点:2010年1月1日」と表示される。
i17051103.PNG

スライダーバーの方の時間も、2010年1月1日という表示になる。

ちなみにこの表示、レイアウトビュー(メニューの表示>レイアウトビューを選択、凡例や方位記号などを盛り込んだ地図を作る際に使う表示)でも表示される。が、データフレームの上枠の直下に表示されて、位置を動かすことができない。

i17051104.PNG

レイアウトビューでデータフレームの時間を別の場所に表示したい時は、タイムスライダーオプションで時間を表示するのではなく、ダイナミックテキストを使うとよい。ダイナミックテキストで時間を表示するには、ArcMapのメニューから「挿入>ダイナミックテキスト>データフレーム時間」を選択する。

i17051007.PNG

そうすると、地図上にちっこい字でデータフレームの時間が表示される。必要なら位置を調整したり、文字列をダブルクリックして、文字を大きくするなり、「データフレーム時間:」を「調査時点:」という文字れるに変更したりする。

i17051105.PNG

あ、そうそう、ダイナミックテキストの時間の表示形式は、タイムスライダーオプションのそれに従っているらしい。

ではでは、今回はこれにて〜。
(記事内の地価の地図は、国土交通省国土政策局「国土数値情報(地価公示データ)」をもとに、てくてくGISラボ たかはしが編集・加工)
posted by たかはし at 11:00| Comment(0) | ArcGIS

2017年05月17日

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

前回は、国土数値情報のホームページからダウンロードした地価公示のデータを、時系列アニメーション表示をするためのデータに作り変える作業を行った。今回はいよいよアニメーション表示である。

前回作成した、時系列アニメーションを表示するためのデータ「TokLandPriceTS」のレイヤプロパティを開いて、「時間」タブをクリックする。

で、一番上の「このレイヤーで時間を有効にする」をクリックしてオンにする。

レイヤ時間はデフォルトのまま、「各フィーチャに1つの時間フィールドがあります」を選択しておく。

時間フィールドは、フィールドの転置ツールボックスで、黙々と入力した西暦年が入っているYearを選択する。

ここまで指定するとこんな感じ。

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

さらにその下のフィールド形式の部分では、西暦年が4桁の数値で入っているので「YYYY」を選択する。

時間ステップの間隔は1年ごとなので、「1」と「年」を選択、レイヤの時間範囲のところで「計算」ボタンをクリックすると、Yearの値の最小値と最大値を読み取ってくれる。今回のデータだと1983〜2015と表示されるはずである。

「計算」をクリックすると時間ステップの間隔が勝手に「2」になってしまうかも。この場合は手動で「1」と入力しておく。

以下のように指定できたら「OK」をクリックする。

i17042602.PNG

で、地図の表示だけど、あんまり変わりがないように見える…かもしれない。ここで、ツールバーから「タイムスライダーバー」をクリックして表示しよう。

i17042603.PNG

すると以下のようなタイムスライダーウインドウが開く。スライダーバーは今一番左側の1983/01/01 0:00:00になっている。

i17042604.PNG

ここで地図を見ると、すごく点が減って表示されていると思う。地価の高い赤い点も皆無だ。これはTokLandPriceTSのポイントからYearが1983のポイントだけが選ばれて表示されているためだ。

i17042605.PNG

スライダーバーを左右に動かすと、その時間に従ったデータが表示される。以下は1990年の地図だ。

i17042606.PNG

以下は2000年。

i17042607.PNG

以下は2010年である。

i17042608.PNG

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

楽しい?かな…

スライダーバー右端の右矢印のアイコン(動画とかビデオの再生みたいなボタン)を押すと、ゆっくりながらもスライダーバーが自動で動いて、1年ごとの地価の地図をパラパラと表示してくれる。

ここまでが、基本的な時系列アニメーションの操作方法だ。そんなに操作数は多くないんだけど、長かったなぁ。

今回はこれにて…。
posted by たかはし at 11:00| Comment(0) | ArcGIS

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