2016年07月18日

研A-1212パラボラ室

2016-07-18 19-38-26.png

先日、東京工科大学のオープンキャンパスへ行ったとき
25年ぶりに研究を行った部屋の前に行ってみました。
「研A-1212パラボラ室」まだあったんですね。

当然、入れるわけはありませんが

当時は自由気ままに好き勝手なテーマを決めて、卒論をPC-9801で書いていましたね。
インターネットなんてなくてパソコン通信NiftyとかPC VANとかテレスターとか
そういう物で情報を収集していた時代です。

当時は先輩もいなくて自力でなんとかして大学を卒業したってかんじです。

posted by トシ at 19:47| Comment(0) | 日記

2016年07月16日

東京湾(内海)ポリゴンの作成

http://jm.2-d.jp/index.php?title=qgis:%E6%9D%B1%E4%BA%AC%E6%B9%BE%EF%BC%88%E5%86%85%E6%B5%B7%EF%BC%89%E3%83%9D%E3%83%AA%E3%82%B4%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90

qgis:東京湾(内海)ポリゴンの作成
はじめに

今回は、東京湾の内海ポリゴンの作成方法について説明する
この図のように、東京湾の内側に任意のサイズのポリゴンを生成したいとする(ここの図では紫色のポリゴン)
2016-07-13 22-33-36.png
要するにこんな様なポリゴンを作るとする。
2016-07-13 22-33-18.png
作り方
新規ポリゴンレイヤの作り方は理解しているという前提で、ピンポイントで説明する。
設定→スナップオプション→スナップモード(アドバンテスト)を選択する
2016-07-13 22-42-28.png
ここで、交差したくないレイヤ(今回の場合、都道府県レイヤ)の「交差の禁止」を選択する。モードと許容範囲は特にデフォルトで問題なし。
そうして、欲しいエリアのポリゴンを生成すると、複雑に入り組んだポリゴンの逆ポリゴンを生成することが出来る
posted by トシ at 00:15| Comment(0) | 日記

2016年07月03日

gis:指定した半径内にランダムポイントを作成

はじめに

こういう用途があるか分かりませんが、仕事で必要になった事案があったので備忘録的に記録しておきます。
目的

あるポイントデータ(緯度経度)があり、そのポイントから半径xxx[m](例えば半径500m)以内に、ランダムなポイントを設定して、そのランダムポイントから半径xxx[m](例えば半径500m)の円を記載する
といった状況の作り方です。

赤い線で指定された範囲内でオレンジ色の線を書くための方法です

なんで、こんなことをしたいかというと、ある情報を部外に提示するときに赤い線で指定された範囲だと中心位置が分かってしまいあまり都合が良くないので、適当に中心位置を散らして「当たらずとも遠からず」的な情報を提示するときに使用します。(なんか面倒くさい、遠回し的な情報ですが、必要に迫られて作りました)
作成方法
ポイントデータ作成

gis:地図データの入手で市区町村役場データ辺りのポイントデータを持ってきます
ダウンロードすると以下のようなファイルがダウンロードされます(例は和歌山県)
KS-META-P34_14-30.xml
P34-14_30.dbf
P34-14_30.prj
P34-14_30.shp
P34-14_30.shx
P34-14_30.xml
これ見れば、シェープファイル(Shape File)だと言うことが分かります。(拡張子がshp)
これをqgisに読み込みます

2016-07-02 22-33-13.png

こんな感じで地図上にプロットされます(背景地図を入れてます)
シェープファイルをqgisに読み込むと、見かけ上はプロットされてるけどCRS座標系(Coordinate Reference System (CRS))を合わせないと、後々メチャクチャになるので、そのレイヤを名前を付けて保存します

2016-07-02 22-52-23.png

CRSを「EPSG:3100: JGD2000 / UTM zone 54N」に合わせて名前を付けて保存します

2016-07-02 22-54-33.png
CRSを変えたポイントデータの読み込み

先ほど読み込んだ「P34-14_30」のCRSは地理座標系(経緯度)の「JGD2000 EPSG:4612」になっています。
「P34-14_30」を別名保存したCRSは投影座標系(UTM座標系)の「EPSG:3100: JGD2000 / UTM zone 54N」になっていると思います
内容の差分は他のサイトにゆだねるとして、少なくとも地理座標系(経緯度)と投影座標系(UTM座標系)の違いを理解し、合わせないとGIS上でおかしな表示になるので注意が必要です
簡単に言うと地理座標系(経緯度)の単位は度。投影座標系(UTM座標系)の単位はメートル(変えられますけど)と言うことを理解しておいてください
そして、「P34-14_30」を別名保存したファイルを読み込みます。
プロジェクトのプロパティで計測を選びます、楕円体にWGS84を距離計測単位にメートルを選択します

バッファ作成

指定した半径内ということで、その半径にポイントを打つために領域(バッファ)を設定します
空間演算ツールでバッファを選びます

2016-07-03 9-57-07.png

入力ベクタレイヤに投影座標系(UTM座標系)の「EPSG:3100: JGD2000 / UTM zone 54N」で設定したレイヤを指定します
円を近似させる線分の数:よく分かりませんが10位にすれば滑らかに円が描かれます
バッファ距離:ここで間違いがよく見つかります、実は単位が無いのです、単位が無い理由は座標系によっては、単位が「度」であったり「メートル」や「海里」など条件によって変わってきますので注意です
事前の説明の中で
座標は:「EPSG:3100: JGD2000 / UTM zone 54N」
楕円体は:WGS84、距離計測の単位はメートル
が指定されているはずです
そして、バッファ出力用のシェープファイル名を指定してOKを押下します

2016-07-03 9-58-33.png

500mになった

500.781m(少々誤差有り)になっておもいどおりのバッファ距離になりました。
バッファ領域内にランダムポイントを作成

さて、ここまでで以下の条件の地図ができあがっているはずです
1:正確な緯度経度情報によってプロットされた点ポリゴン
「1」の情報から作成された半径500mの円ポリゴン
この章では、半径500mの円ポリゴンの中にランダムに置かれた1つの点ポリゴンを作成します
調査ツールのランダム点群を選択します

2016-07-03 12-51-21.png

ランダム点群内容
作成するたびにCRSが変わるので測地系にあったCRSを選択し、名前を変えて保存すること

2016-07-03 13-00-59.png

範囲レイヤの入力:ランダム点群を配置する面ポリゴンを指定
サンプルサイズ
非階層化サンプリング方法(レイヤ全体)
このポイント数を使う:レイヤ全体(ポリゴンが100あっても1000あっても)に対して、指定されたポイント数をランダムに設置する。ここの例で説明すると、500m円が5個有った場合にポイント数を「3」と指定した場合、5個のうちランダムに選んだ3つの500m円内に更にランダムに3つのポイントを指定すること

2016-07-03 13-23-20.png

階層化サンプリング方法(ポリゴン別)
このポイント数を使う:同じように9個のポリゴンにポイント数4つを指定してみたけど、上記非階層化サンプリング方法との違いが分からなかった

2016-07-03 13-34-06.png

この密度の点群を使う:密度[0.0001]で指定したら、全てのポリゴンに対して半径500mに78個のランダムポイントが作成された、密度[0.01]で指定したら7822個のランダムポイントが作成された。

2016-07-03 13-36-53.png

入力フィールドの値を使う:フィールドの値は整数であること。入力フィールドの値で指定されたポイント数分をランダムに配置させる

2016-07-03 13-49-17.png
バッファ領域内にランダムポイントを作成(結果)

今回の様に、半径500m以内にランダムなポイントを1つ生成するためには、ランダム点群の入力フィールドの値を使うを選択する。その際には半径500mを作成したポリゴンの属性テーブルに対して整数で「1」を設定すること。この属性テーブルの「1」に対してランダムポイントを生成することとなる
最終バッファ作成
ここまでくると、500m以内でランダムになった点ポリゴンが生成されるため、このランダムポイントに対して500mのバッファを生成すれば、指定した半径内にランダムポイントを作成することが出来る
posted by トシ at 14:02| Comment(0) | 日記