2015年8月26日水曜日

18 - 重ねた地図をもう少し 5 - PostGIS でレイヤを調べる

18-6 PostGIS でレイヤを調べる
「Introduction to PostGIS (Japanese)(http://workshops.boundlessgeo.com/postgis-intro-jp/index.html)」を参考に PostGIS の関数を使ってレイヤの重なりを調べます。

18-6-1 テーブルに SRID を追加
最初に登録した tokyo_kuiki と akiruno_kukaku に SRID を追加します。

1 アクティビティ -> アプリケーションを表示する(左側の一番下のアイコン) -> pgAdminIII(2面めぐらい)
をクリックして起動します。

2 「オブジェクトブラウザ」欄の「PostGIS」サーバ(11 - PostGIS - 4 pgAdminIII で作成したサーバ)が接続していなければ、ダブルクリックして接続します。








3 「任意の SQL を実行」ボタンをクリックします。

4 「SQL エディタ」に次の SQL クエリを入力して「クエリの実行」ボタンをクリックします。

UPDATE akiruno_kukaku SET geom = ST_SetSRID(geom, 2451);


同じように、次の SQL クエリを実行します。

UPDATE tokyo_kuiki SET geom = ST_SetSRID(geom, 4326);

18-6-2 あきる野市の自然公園の面積
はじめに、「SQL エディタ」に次の SQL クエリを実行して、あきる野市の面積調べます。akiruno_kukaku レイヤでは、

SELECT ST_Area(geom) FROM akiruno_kukaku where code = '13228';





1 21910112.1119498
2 11974599.9199866
3 3542105.53778772
4 36033559.3587739


akiruno_kukaku レイヤが、もともと4つに分割されているので、次の SQL で合計します。

SELECT  Sum(ST_Area(geom)) FROM akiruno_kukaku where code = '13228';




73460376.9284981
(73.46km2)

tokyos_kuikiレイヤでは、

SELECT ST_Area(ST_Transform(geom, 2451)) FROM tokyo_kuiki where n03_007 = '13228';




73335285.8776135
(73.34km2)

あきる野市のホームページ(http://www.city.akiruno.tokyo.jp/)の「市政情報」>「広報・情報公開」>「統計」ページの「1.土地・面積」のファイルには「73.34km2」とあります。

akiruno_kukaku レイヤであきる野市の自然公園の面積を調べます。「SQL エディタ」に次の SQL クエリを実行して、

SELECT ST_Area(ST_Intersection(a.geom, ST_Transform(b.geom, 2451))) FROM akiruno_kukaku a, shizenkoen b where a.code = '13228';











17 2480377.51765633
19 1072081.85082639
77 4397107.18094086
78 10430356.4828294
80 13686306.9929797

次の SQL で合計します。

SELECT Sum(ST_Area(ST_Intersection(a.geom, ST_Transform(b.geom, 2451)))) FROM akiruno_kukaku a, shizenkoen b where a.code = '13228';




32066230.02523268
(32.07km2)

tokyo_kuiki レイヤでは、

SELECT ST_Area(ST_Intersection(ST_Transform(a.geom, 2451),ST_Transform(b.geom, 2451))) FROM tokyo_kuiki a, shizenkoen b where a.n03_007 = '13228';













5 3551781.3365151
20 28455887.55361

次の SQL で合計します。

SELECT Sum(ST_Area(ST_Intersection(ST_Transform(a.geom, 2451),ST_Transform(b.geom, 2451)))) FROM tokyo_kuiki a, shizenkoen b where a.n03_007 = '13228';




32007668.8901251
(32.01km2)

8-6-2 あきる野市の自然公園内の建築物の数
8-6-2-1 kenchikubutsu レイヤの建築物の数
はじめに、kenchikubutsu レイヤの建築物の数を調べます。「SQL エディタ」に次の SQL クエリを実行します。

SELECT COUNT(gid) FROM kenchikubutsu;





111527

8-6-2-2 あきる野市内の建築物の数
akiruno_kukaku レイヤのあきる野市内の建築物の数を調べます。「SQL エディタ」に次の SQL クエリを実行します。

SELECT COUNT(c.gid) FROM akiruno_kukaku AS a JOIN kenchikubutsu AS c ON ST_Contains(a.geom, c.geom) where a.code = '13228';





43458

tokyo_kuiki レイヤのあきる野市内の建築物の数を調べます。「SQL エディタ」に次の SQL クエリを実行します。

SELECT COUNT(c.gid) FROM tokyo_kuiki AS a JOIN kenchikubutsu AS c ON ST_Contains(a.geom, ST_Transform(c.geom, 4326)) where a.n03_007 = '13228';





43504

あきる野市のホームページ(http://www.city.akiruno.tokyo.jp/)の「市政情報」>「広報・情報公開」>「統計」ページの「8.住宅・道路」のファイルには、「課税家屋の棟数、床面積」の「平成25年度」の「棟数」に「33,865」とあります。

8-6-2-3 あきる野市の自然公園内の建築物の数
akiruno_kukaku レイヤのあきる野市の自然公園内の建築物の数を調べます。「SQL エディタ」に次の SQL クエリを実行します。(1分ぐらいかかりました。)

SELECT COUNT(c.gid) FROM kenchikubutsu AS c JOIN akiruno_kukaku AS a ON ST_Contains(a.geom, c.geom) JOIN shizenkoen AS b ON ST_Contains(ST_Transform(b.geom, 2451), c.geom) where a.code = '13228';





7262

tokyo_kuiki レイヤのあきる野市の自然公園内の建築物の数を調べます。「SQL エディタ」に次の SQL クエリを実行します。(1分ぐらいかかりました。)

SELECT COUNT(c.gid) FROM kenchikubutsu AS c JOIN tokyo_kuiki AS a ON ST_Contains(a.geom, ST_Transform(c.geom, 4326)) JOIN shizenkoen AS b ON ST_Contains(b.geom, ST_Transform(c.geom, 4326)) where a.n03_007 = '13228';





7279

0 件のコメント: