2017年04月05日

自動でちょっとだけ気が利いたラベリングにはMaplexエンジンを

ArcMapでポリゴンにラベリングをすると、デフォルトでは水平に文字が表示される。こんな感じ。

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

データは政府統計の総合窓口 e-Statのサイト(http://www.e-stat.go.jp/)からダウンロードした平成22年国勢調査 町丁・字等別境界データである。表示しているのは東京駅のちょっと北、神田とか秋葉原のあたりだ。ラベルが重なる場合は、ラベルを表示してくれないので、いくつか町丁目名が表示されていないところがある。

これを「レイヤプロパティ>ラベリングタブ」の「配置プロパティ」を開いて、「配置」タブの中で「常に直線」を選んでみる。

i17032702.PNG

そうすると…

i17032703.PNG

もう少し表示されるラベルが増えてくる。ここでもっと地名を表示させたい場合は、アノテーションに変換して一つずつラベル配置を調整するしかないんだろうか。それはちょっと大変そう…。またGISのしもべ状態になりそうだ。

データを入力して最初に地図化した時って、どこで値が突出しているのか、ちょっと地名が確認ができればいいだけのことも多い。そこまで凝った手作業をしなくても、もうちょっと自動で何とかラベリングしてくれないかなーと思っていたら、あったあった。データフレームのプロパティの「一般」タブに「ラベリングエンジン」というのがある。デフォルトは「標準ラベルエンジン」だけど「Maplexラベルエンジン」を選ぶ。

i17032704.PNG

Maplexにしてから、もう一度レイヤプロパティ>ラベルタブの「配置プロパティ」を開く。すると、インタフェースがこんな風に変化している。

i17032705.PNG

なんだかいろんなことができそうな感じ〜♪

試しに「ラベル調整ルール」タブで「フォントサイズを縮小」をオンにして、その「オプション」ボタンを押してみる。

i17032716.png

今は8ptで表示されている地名を、0.5ptずつ、最小で4ptまでフォントサイズを小さくして、ラベリングを試みてくれるらしい。この設定で表示してみると、こんな感じ。

i17032708.PNG

やっぱり4ptだとちょっと小さすぎるかな。以下は、1)レイヤプロパティウインドウ上でフォントを游明朝Demi Bold 10ptにして、2)「配置プロパティ」ウィンドウの「ラベル調整ルール」タブ、「フォントサイズを縮小」で、0.5ptずつ最小5ptまで縮小するよう設定、3)「配置プロパティ」の「ラベル位置」タブで、「字間をあける」をオンにして、そのオプションで最大60%まで字間を広げる設定にしたものである。

i17032709.PNG

うーん、どうだろう。美しく見やすい地図を作るには遠いのかもしれない。でも、手っ取り早く地名を確認したい、というだけならこれでも悪くなさそうである。まぁ自動とはいえ設定できることが多くて、きりがなさそうではあるけど。

あっ、せっかく国勢調査の境界データを使ったので、最後に人口っぽい何かを。とりあえず何もデータを結合しなくても境界データについてくる人口と世帯数を使おう。下の地図は人口を世帯数で割った、1世帯当たりの人口である。

i17032715.png

鍛冶町2丁目の周辺は1.5〜2人だけど、それ以外のところは1〜1.5人の世帯が多いようだ。大まかに言って、1〜2人世帯が多くて、どっちかというと1人世帯の方が多いという地域らしい。

ここに年齢別のデータを結合したらどこそこに高齢者の一人暮らしが多い地域がある、といった様子も見えてくる…、かもしれない。
posted by たかはし at 11:00| Comment(0) | ArcGIS

2017年03月27日

緯度経度データの世界地図表示には投影座標系を設定しよう

最近、2地点の緯度経度座標からラインを発生させて地図を作るという作業をしている。まずは緯度経度の座標はエクセルかなんかで、ID番号、始点X座標(経度)、始点Y座標(緯度)、終点X座標(経度)、終点Y座標(緯度)が一行に入っている表に準備しておく。

i17032601.PNG

あ、都市の緯度経度はかなり適当に取得したものなので信じないでください。はい。

表ができたら、ArcToolboxの 「データ管理>フィーチャ>XY 座標 →ライン(XY to Line)」を使って、ラインを発生させる。

i17032602.PNG

これで出来上がるのがこんなラインのデータだ。ArcMap立ち上げ直後にXY to Lineを実行したので、地図はXY to Lineツールを使うときに空間参照の項目で指定したGCS_WGS_1984で表示されている。

i17032603.PNG

なんだか少し気持ち悪くないだろうか。そう、背景の世界地図を超えてびよーんとでっばった線が2つほどあるのだ。1つは東京toサンフランシスコの緑色の線、もう一つはサンフランシスコto香港の青い線である。

どうやら、日付変更線を超える都市まで伸びる線は、本来の位置から360度回った位置まで伸ばして表示されるようなのだ。どちらから生えるかは、始点を基準にしているらしい。つまり、東京toサンフランシスコなら東京を起点に線を伸ばし、サンフランシスコto香港ならサンフランシスコを起点に伸ばすのだ。

ううむ、しかしできれば日付変更線を超えるときは、そこで一度線が切れて、逆側に線を回りこませたい。東京toサンフランシスコなら、一度ハワイのあたりで線が切れて、切れた残りの線が地図左側からまた伸びてきて欲しい。

当初これをやるには、180度のところで線を一度切って、360度足したり引いたりするという、手作業エディットが必要なのかなーと思っていた。んが、しかし、いつも経度0度を中心に地図を表示するわけではない。日本付近を中心にすることだってあるだろう。そのたびに、地図の端にあたる経度で線を切って360度移動、というのは、私がGISにこき使われるしもべ状態ではないか。

ま、実際その作業を何回かして、ある時ふと気づいた。データフレームの座標系を投影座標系に設定すると、線を切らなくてもきちんとそれが回り込むのだ。

上のXY to Line実行直後の地図は、緯度経度をそのままXY座標として表示している。それを例えば、ミラー図法(投影座標系>世界範囲の座標系(WGS 1984))を指定する。これはデータフレームのプロパティ>座標系タブで設定する。

i17032604.PNG

そうすると、これまでびよーんと伸びていた線がきちんと左右に回り込んでくれるのだ。

i17032605.PNG

ああ、素敵。ついでに、データフレームのプロパティ内では、中央子午線も指定できる。例えば、東経140度を真ん中にすると…。

i17032608.PNG

ちゃんと日本付近を中心に表示してくれる。それだけではなくて、今度はサンフランシスコからロンドンに伸びる線がきちんと地図の左右で回り込んでくれる。

i17032607.PNG

あのGISにこき使われていた時間はなんだったのか…、と思わなくもない。きっと知っている人は知っている話に違いない。まぁそれでもこれでその作業から解放されて、ひとまずはめでたしめでたしなのでした。
posted by たかはし at 10:15| Comment(0) | ArcGIS

2017年03月01日

ラベルの配置プロパティを閉じるとレイヤプロパティがハング

ArcGISを買って数か月後のある日、デフォルトのラベル位置では見えにくかったので、何気なくレイヤプロパティのラベルタブで「配置プロパティ」を開いてみた。で、配置の設定をしてOKをクリックしても、制御がレイヤプロパティに戻らない(涙)。(応答なし)とウインドウのタイトルに出たまま、うんともすんとも動かなくなる。

なんかデータが壊れているのかなぁと思って、他のデータでも試してみたけど、やっぱりハングする。絶対に再現するってある意味すばらしいんだけど、この後ArcMap.exeを終了しようとしても絶対に終了しないという困った現象まで必ず再現される。

まずは、Windowsのタスクマネージャからのタスクの終了はスルーされてしまう。タスクマネージャの「詳細」タブのところで、ArcMap.exeを終了しようとすると「アクセスが拒否されました」と言われてしまう。

管理者権限でtaskkillをしてもだめ、その他いろいろ手を尽くしても、プロセスが終了できない。仕方なくPCのシャットダウンをかけると、レイヤプロパティだけが残った状態となって、その他の動作はできなくなる。レイヤプロパティ以外は、シャットダウンされてしまっているのかもしれない。

仕方なく、本当に久しぶりにPCの電源ボタンを長押しして強制的に電源を切った。

これだけ大きなバグが残っているとは考えにくいので、OSとかドライバといった環境固有の問題なんだろうなぁと思う。実際、もう一つインストールしたWin7機では現象は再現しない。再現するのはWin8.1機である。しかし、大変に困る。せっかくArcGIS用にPCを買ったのになぁ。新しいPCの電源をぶちっと切り続けるのも気が引けるし。

ArcMapをWin7互換モードで起動しても現象は再現する。ArcGISのバージョンを最新にしても(当時は10.4)、再現する。うーん、とてもとても困る。

パソコンとか詳しくないんだけどな(涙)、と思いながら、いろいろ調べてみると、ArcMapが起動している最中、待機チェーンとしてsplwow64.exeというのが時々リストされることがある。常にリストされるわけじゃないんだけれど、ラベルの配置プロパティを開いた時もリストされる。

splwowって、スプールの何かなのかな?プリンタ関係のWindows Updateがあったら狙ってみてもよさそうである。

一応このバグが出た時点で、Windows Updateは最新のものを適用していたんだけど(Win10へのアップグレード関連は除く)、もう一度確認してみるとオプションでインストールが推奨されているものに、KB3013769というのがあった。

このKBは複数のdllなどが更新されるのだが、その中にsplowow64.exeも含まれていた。果たしてこのアップデートを適用したら、配置プロパティを開いてもハングしない!ああ、ハングしないってすばらしい!

このKBで、splwow64.exeのバージョンは6.3.9600.17415から6.3.9600.17480に更新されていた。配置プロパティを開いてもハングしないWin7機では6.3.9600.17415だったので、このバージョンのsplwow64.exeが絶対にいけないというわけでもなさそうである。

KB3013769にはsplwow64.exe以外にもいろいろアップデートされるので、必ずしもsplwow64.exeがいけないという確信があるわけではないんだけど。でも、とりあえずハングしなくなってほんとによかった。

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