CARTO – SQL を使って解析!FOSS4G Kyoto-Kansai(総合地球環境学研究所、京都市)

CARTO を使った生態系ネットワーク解析手法

2017年10月15日、FOSS4G Kyoto-Kansai(地球学研究所、京都市)において、CARTOを用いた生物多様性解析手法をご紹介します。

広域の生態系ネットワークのような大きなデータを一括処理しようとしたとき、パソコンで動作するGISでは非常に時間がかかったり、エラーで処理が止まってしまったりすることがあります。CARTO はクラウド上で動作しますので、パソコンの能力に関わらず、iPad や Android タブレットでも解析処理を安定して実行することが出来ます。

しかも、CARTOはSQLを用いたパイプライン処理を行うことで、素早く結果を得ることが出来ます。以下に、鳥類のハビタット解析の事例を用いた、SQLによるパイプライン処理の例を示します。

解析の元データには、東京都心部の緑被データ(樹林地、草地、水面)を利用します。デモデータをこちらに置きましたので、ダウンロードしてご利用下さい。

生態系ネットワーク分析用SQL

— コアエリアとして、ある鳥類が生息地として利用できる、2ha以上の樹林を抽出
drop table if exists hn_shijyukara_ca;
create table hn_shijyukara_ca as
select cartodb_id, area_m2, the_geom, the_geom_webmercator
from hn_base
where vegetation = ‘forest‘ and area_m2 > 20000;
select cdb_cartodbfytable(‘carto‘,’hn_shijyukara_ca‘);

— その鳥が飛んで移動できる範囲として、コアエリアから 400m のバッファを作成
drop table if exists hn_shijyukara_cab;
create table hn_shijyukara_cab as
with hn_shijyukara_cab_tmp as
(select st_union(st_buffer(st_simplify(st_transform(the_geom,32654),10), 400)) buff from hn_shijyukara_ca)
select
st_transform(buff, 4326) the_geom,
st_transform(buff, 3857) the_geom_webmercator,
st_area(buff) area_m2
from hn_shijyukara_cab_tmp;
alter table hn_shijyukara_cab add cartodb_id serial;
select cdb_cartodbfytable(‘carto‘, ‘hn_shijyukara_cab‘);

— 移動可能範囲として作成したバッファ内の樹林地の合計(5ha以上)、バッファ内に2ha以上の樹林がひとつ以上のバッファを抽出
drop table if exists hn_shijyukara_hqb;
create table hn_shijyukara_hqb as
with hn_shijyukara_hqb_tmp2 as
(with hn_shijyukara_hqb_tmp as
(select cartodb_id, st_transform(st_buffer(st_simplify(st_transform(the_geom32654),10), 200), 4326) the_geom
from hn_shijyukara_ca)
select cartodb_id, the_geom from hn_shijyukara_hqb_tmp
where hn_shijyukara_hqb_tmp.cartodb_id in
(select t1, cartodb_id from hn_shijyukara_hqb_tmp t1, hn_base t2
where st_intersects(t1.the_geom, t2.the_geom)
group by t1.cartodb_id
having sum(st_area(st_transform(t2.the_geom, 32654))) > 50000
and max(st_area(st_transform(t2.the_geom, 32654))) > 20000))
select st_union(the_geom) the_geom
from hn_shijyukara_hqb_tmp2;
alter table hn_shijyukara_hqb add the_geom_webmercator geometry;
update hn_shijyukara_hqb set the_geom_webmercator = st_transform(the_geom, 3857);
alter table hn_shijyukara_hqb add area_m2 float4;
update hn_shijyukara_hqb set area_m2 = st_area(st_transform(the_geom, 32654));
alter table hn_shijyukara_hqb add cartodb_id serial;
select cdb_cartodbfytable(‘carto‘,’hn_shijyukara_hqb‘);

— その鳥が移動途中に「飛び石」として利用できる、2ha未満の樹林地の抽出
drop table if exists hn_shijyukara_psc;
create table hn_shijyukara_psc as
with hn_shijyukara_psc_tmp as
(select st_intersection(t1.the_geom, t2.the_geom) the_geom
from hn_base t1, hn_shijyukara_hqb t2
where t1.vegetation=’forest‘ and t1.area_m2 < 20000
and st_intersects (t1.the_geom, t2.the_geom))
select the_geom, st_transform(the_geom, 3857) the_geom_webmercator, st_area(st_transform(the_geom, 32654)) area_m2
from hn_shijyukara_psc_tmp;
alter table hn_shijyukara_psc add cartodb_id serial;
select cdb_cartodbfytable(‘carto‘,’hn_shijyukara_psc‘);

–サテライトからの移動可能範囲(サテライトから400mのバッファ作成)
drop table if exists hn_shijyukara_psb;
create table hn_shijyukara_psb as
with hn_shijyukara_psb_tmp as
(select st_union(st_buffer(st_simplify(st_transform(the_geom, 32654), 10), 400)) buff from hn_shijyukara_psc)
select st_transform(buff, 4326) the_geom,
st_transform(buff, 3857) the_geom_webmercator, st_area(buff) area_m2
from hn_shijyukara_psb_tmp;
alter table hn_shijyukara_psb add cartodb_id serial;
select cdb_cartodbfytable(‘carto‘,’hn_shijyukara_psb‘);

  1. 世界をリードする最新の位置情報技術を一気にご紹介12月7日に東京国際フォーラムにて、世界を代...
  2. CARTO ハンズオン FOSS4G Tokyo 2017最新の CARTO(カート)の機能を触...
  3. 7月12日から20日に東京と名古屋で開催いたしました、CARTO UDPATE 2017、ハンズオン...
ページ上部へ戻る