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 件のコメント:
コメントを投稿