2012年5月21日月曜日

Postgres:流域界③

流域界を水系コードでディゾルブしてpostgreさんにインポートしてみた。











えー~ーーーーーw。

属性が全部落ちてる。。。。。 きっと[v.out.ogr]のオプションの設定が間違ってるんだぁ









ライン+バウンダリー ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=line,boundary dsn=W12_52A_2K_ALL_dis1

バウンダリー+セントロイド ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=boundary,centroid dsn=W12_52A_2K_ALL_dis1

バウンダリー ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=boundary dsn=W12_52A_2K_ALL_dis1

ライン+バウンダリー+セントロイド ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=line,boundary,centroid dsn=W12_52A_2K_ALL_dis1

ライン+セントロイド ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=line,centroid dsn=W12_52A_2K_ALL_dis1

ライン+バウンダリー+エリア ⇒×
v.out.ogr input=W12_52A_2K_ALL_dis1 type=line,boundary,area  dsn=W12_52A_2K_ALL_dis1

エリア ⇒◎
v.out.ogr input=W12_52A_2K_ALL_dis1 type=area dsn=W12_52A_2K_ALL_dis1


流域界 水系域コードでのディゾルブ。できました。


Postgres:流域界②

ここにパイタンスクリプト書いておく。

GRASS:MASK

説明書的な修正をしたときに、どんなものかちょっと試してみた。
結果
ハマリ。。。。


実際マスクじゃなくてリージョン設定で事足りてるので、仕事ではまだ使ったことがありません。
市町村単位で解析を行うときなんかは便利らしい。

元ガラス屋としては『リージョン⇒矩形』で『マスク⇒異形』って覚えることにしよっ。


①基盤地図情報から行政界のデータをDL。千葉県のシェープファイル読み込み。(v.in.ogr)
















②属性からマスクを作成

2012年5月18日金曜日

Python:0パディング

すごい!
そんな関数(?)が用意されていた。

『rjust』

桁数を4ケタにしたいとき
str(変数).rjust(4,'0')

>>>0001

2012年5月15日火曜日

OSM:初めてみた

初めてみた。
でも、使い方が全然判らない。。。

小人さんが印刷してくれた『OpenStreetMap利用者ガイド(v1.0)』を読みながら。。。


①初めての編集
*ユーザーアカウントの作成 ⇒ でけた。

*『Potlatch2』というエディタを使ってデータを操作するらしい。。。
最初の編集ではレストランや学校、あるいは、あなたが見つけた間違った道路情報などを対象とするらしい。

職場の近くにあるコンビニを追加 ⇒ でけた。

小人さんが間違った道路を削除 ⇒ でけた。

道路を追加するのはタグの情報を入れたり面倒そうなので後回し。
②データの収集
OpenStreetMapに取り込むことができる2つの便利なツールがありんす。多くのOpenStreetMap投稿者がGPS受信機を使用しているらしい。GPSを持っていない場合はウォーキングペーパーという紙地図を使いデータを収集することも出来るらしい。

*GPSでデータ収集 ⇒小人さんにガイドと同じ受信機を貸して貰いました。


電源を入れてみた。
ガイドと同じように衛星の画像が出てきた。



Python:if文

Pythonで初のIF

If 条件式 then
      真
else
      偽
end if

の書き方じゃダメらしい。。。


If 条件式:
  条件が真だったら、処理が実行

セミコロンがポイントだょね。
  

2012年5月14日月曜日

Python:配列

データを配列に入れるぞぉ!

list = [10, 20, 30, 40, 50]
print list[0]


>>>10

これでいいのか???

Postgres:流域界①

この前まで編集していた流域界・非集水域(面)のデータを
ShapeFile Lodarで楽々インポート。
                                                                        

これ便利だょね。








①指定した座標値の河川コードを取得する。
うーーーん、distanceで指定座標値から何キロとかは取れるみたいだけど。。。

distance_sphere(point, point)
二つの緯度/経度の地点間の距離を,地球を半径6,370,986mの球形として計算します。Distance_spheroidより速く計算できますが,正確さは劣ります

指定した緯度経度から1000メートル内のデータを、近い順に引っ張って来てるハズ。
SELECT the_geom,distance_sphere(the_geom,GeometryFromText('POINT(140 36)',-1)) as distance
FROM テーブル名
WHERE distance_sphere(the_geom,GeometryFromText('POINT(140 36)',-1)) < '1000' order by distance;

イコール0で指定座標値ピッタリなんて。。。
distance_sphere(the_geom,GeometryFromText('POINT(140 36)',-1)) ='0'


あー間違えた。
土地利用データに座標指定しても河川情報は何も取得出来ないんだ。。。
座標指定して流域界・非集水域(面)データより単位流域コードを取得する。

確か<1指定すれば良かったようなぁ。
SELECT W12_001,W12_002,W12_003
 FROM 流域界・非集水域(面)テーブル
WHERE distance_sphere(the_geom,GeomFromText('POINT(140.276 36.455)',-1)) < 1


で結果。

おっ。バッチシ。
②取得した単位流域コードで上流コードを単位流域台帳からひっぱる。
select * from 単位流域台帳 where 水系域コード = 83027 and 単位流域コード= 84


おぉーー。取れたぁ。
あとはパイタンでスクリプト化するだけだぁー!

2012年5月11日金曜日

QGIS:じおれふぁれんさー

ツノダヒロさんからのお願い。


旧測地系の国土基本図を新測地系に変換。
迅速測図の時は座標値が決まってたけど今回は元の地図の座標値を
tko2jgdで新測地系に変換してから入力。


①国土基本図の各コーナーに書いてある座標を変換する。

y=39.0,x=28.0

②上記座標をWeb版TKY2JGD で変換する。
*座標を入力する時にyは『x座標』、xは『y座標』に入力して変換するらしい。
人間様と地図様は逆に考えているから???

③変換した座標値をジオレファレンサーでポイントする。

隅っこに点を打って(手が震える~~~~~~~~~~~~~~~~~~)
変換したxyを入力。(ここでも逆にする!)

4点ポイントを入力したらジオレファレンサー!!!
うーーーん、新測地系に変わった感じ???


迅速測図の時はbmpだったのでQGISのバージョンがver1.5.0しか使えなかったけど

今回はtifだからver1.6.0でも使えるみたい。
ver1.7.2だとじおれふぁれんさーは動いてるみたいだけど最終的にファイルが生成されない。

2012年5月10日木曜日

GRASS:流域界②

全国版流域界データをv.in.ogr








ちょいちょい拡大してみると。。。








このあたりを編集してからv.out.ogr
postgreSQLに取り込むためのシェープ作り。

GRASS:流域界

国土数値情報から流域界・非集水域(面) データをダウンロード。


ここから







###############################################################################
4月以前は都道府県単位でしかなかったのでチマチマダウンロード。
都道府県単位でDLしてくると、かなり凄い!
何が?県境が。
被りすぎでしょー!
これ編集してたらおかしくなるでしょー!






###############################################################################

 4月以降は全国版が出たのでダウンロードしてシェープファイルに変換してGRASSへインポートする(v.in.ogr)
全国なんで県境とかは結構キレイだけど凄いとこに線が入ってたりする。


postgres:Windowsへインストール不具合

Windowsにポスグレさんをインストールしたので仮想マシン内にあるポスグレさんから
お引越しをしようと仮想マシンを起動と思ったら。。。。

VM Ware Serverが起動しないッ!!!

VMware Server HomePageを起動すると下記画面エラー(涙)













単純にサービスが上がってないだけかもしれないのでサービス確認。
VMWare Host Agentってサービスが落ちてる。(なんで落ちたか不明)











サービス起動しないッ!!!












いっぱいググってみたけど原因は判らず。
きっとVMさんポスグレさんは相性が悪いんだよ。

対応策は。。。
postgreSQLをインストールする時に『postgres』ユーザーを追加。
このユーザーだと、なぜかログイン可能。
バカ。

postgres:Windowsへインストール②

PostgreSQLをWin7にインストールするメモメモの続き。
①でPostgreSQL本体のインストールまで完了したので、②はスタックビルダから。

③PostGISインストール(スタックビルダ)
 
    PostgreSQLのインストールが終わると自動的にスタックビルダが起動する。ステキ。
③-1:インストールしたDBを選択して「次へ」をクリック
 
凄い!!!
PostgreSQLから引き続きのpostGISインストール。
Linuxだったらリポジトリ探したり、いろいろ面倒だけど
WinはすべてGUIでいいねッ!





③-2:インストールしたいアプリケーション(ここでpostGIS)を選択して「次へ」をクリック







③-3:『I Agree』を選択。








③-4:デフォルトで次へ。

③-5:インストール先はポスグレさんと同じ場所にしておこ。

③-6:データベースへの接続情報を入力して次へ。

③-7:データベース名の設定???
postGISが使えるDB名(?)を設定するみたいだけど、いろんなところで使いたいし。。。
とりあえずデフォルトのまま行ってみました。

③-8:インストール開始。
*インストール途中でpgAdmin3のプラグイン(shp2pgsql)をインストールするか聞いてくるので迷わず「Yes」

③-9:インストール完了。

③-10:スタックビルダ終了。

これでpostgreSQL⇒postGISのインストール作業完了♪

おおおぉー。何も設定してないのにpgAdminにサーバーが追加されてる。