Memahami PostGIS Spatial Queries

 

Pada GIS tutorial kali ini anda akan familiar dengan table geometri PostgreSQL dan fungsi PostGIS. PostgreSQL adalah sebuah database yang dapat menyimpan data GIS, serta banyak fungsi GIS untuk menganalisa dan memanage data anda. Anda akan mempraktikan penulisan SQL dan melihat output secara visual dari PostGIS Query untuk membantu anda memahami kekuatan menggunakan query spasial.

 

Sebuah tabel geometri PostgreSQL adalah  tabel data untuk sebuah lapisan GIS tertentu. Dalam banyak hal mirip dengan shapefile. Sebagai contoh, anda mungkin memiliki shapefile GIS mengandung negara USA. Data GIS ini dapat dimuat kedalam PostgreSQL dan akan disimpan kedalam database sebagai tabel tunggal. Tabel ini akan memiliki semua atribut kolom yg terkait serta kolom geometri. Kolom geometri menyimpan koordinat geografis yang sebenarnya untuk setiap negara di Well Known Binary (WKB) format. ini adalah format yang ditentukan oleh OpenGIS Consortium (OGC) yang medifinisikan informasi tentang jenis objek (titik, garis, poligon, multi-poligon, dll) dan koordinat yang membentuk geometri. Dalam contoh ini, akan ada  sebuah record (baris) untuk setiap negara.

 

 

PostGIS adalah satu set fungsi GIS yang ditambahkan ke PostgreSQL yang memungkinkan database untuk menyimpan dan menganalisa data GIS. Sebuah PostGIS query Browser telah dikembangkan untuk tutorial ini sehingga Anda dapat melihat output geografis dari query - query PostGIS.

Fungsi PostGIS dijalankan melalui query pada kolom geometri dari  sebuah tabel data GIS. Ada banyak fungsi GIS didukung oleh PostGIS, daftar lengkap dapat dilihat di sini.
http://postgis.refractions.net/docs/reference.html


Mari kita mulai dengan menulis pernyataan SELECT sederhana untuk melihat data GIS dari tabel usa_states. Sintaks dasar untuk pernyataan PostgreSQL SELECT adalah sebagai berikut:

 

SELECT column1, column2,... etc.

FROM tablename1, tablename2,... etc.


Subtitusi column1, column2, dll untuk kolom yang ingin Anda lihat, dan tablename1, tablename2, dll,  untuk data tabel yang Anda minta. Untuk melihat hasil geografis, Anda harus memilih kolom geometri yang berisi data GIS.


Untuk tujuan
GIS tutorial ini, kami telah menyiapkan database PostgreSQL dengan 2 tabel: usa_states dan usa_rivers. Kedua tabel memiliki kolom geometri yang dinamai the_geom. Klik tombol "Run" tombol di jendela query di bawah ini untuk mengeksekusi query. Tombol "C" akan menghapus semua lapisan PostGIS. Anda akan melihat setiap negara bagian AS muncul dalam oranye pada peta serta tabel atribut kembali dari query. Query ini memilih semua kolom (* berarti semua kolom) dari tabel usa_states.

 


Output ditampilkan dalam bentuk grafik, serta tabel hasil. Apa query ini berarti bahwa kita memilih semua kolom termasuk kolom geometri (GIS Data) dari tabel usa_states. Ingat tabel ini berisi
lapisan GIS negara USA.

Fungsi PostGIS SQL

Sekarang mari kita melakukan fungsi analisis GIS. Query berikut membuffer geometri California setiap 30km. Hal ini dilakukan dengan menggunakan ST_Buffer () fungsi pada kolom the_geom dan hanya memilih California dengan menggunakan WHERE (columnname = value). Perhatikan bahwa unit peta dalam meter sehingga kita membuffer dengan nilai 30000 untuk mendapatkan 30km.

Nested PostGIS queries

 

Sebuah fitur yang kuat menggunakan SQL untuk analisis GIS adalah bahwa Anda dapat menjalankan beberapa fungsi spasial dalam 1 query. Hal ini dilakukan dengan fungsi Nested PostGIS sekitar satu sama lain. Bagian dalam fungsi mengeksekusi pertama dan fungsi luar mengeksekusi terakhir. Dalam contoh ini kita terlebih dahulu memilih centroid masing-masing negara, maka menerapkan buffer 200 km di sekitar centroid, dan kemudian membuat gabungan dari semua buffer menciptakan 1 record.

 

Menggunakan GROUP BY dengan fungsi PostGIS

 

GROUP BY dapat digunakan untuk melakukan fungsi GIS pada kelompok atribut - atribut. Sebagai contoh, kita mungkin ingin membuat batas-batas untuk masing-masing daerah AS dengan menggunakan batas-batas negara. Kita dapat melakukan penyatuan pada masing-masing daerah dengan menggunakan contoh berikut:


Hal ini menciptakan 4 poligon yang berbeda yang telah padukan berdasarkan kolom daerah.

 

Menggunakan beberapa lapisan GIS dengan fungsi PostGIS

 

Seringkali kita ingin menganalisis data GIS dalam hubungan satu sama lain. Kita dapat menggunakan beberapa lapisan di PostgreSQL dengan menentukan lebih dari 1 tabel dalam klausa FROM. Karena kita menggunakan beberapa tabel, kita juga perlu untuk menentukan tabel ketika memilih kolom. Misalnya, Anda dapat menggunakan format tablename.columnname atau Anda dapat memberikan nama alias tabel Anda dan menggunakan alias untuk referensi tablename tersebut. Pada contoh berikut kita mendefinisikan alias untuk 2 meja kami: usa_states dan usa_rivers.

FROM usa_states as s, usa_rivers as r

Kami kemudian membuat referensi untuk tabel ketika memilih kolom. Misalnya
SELECT s.state berarti kita memilih "negara" kolom dari tabel usa_states.

Pertanyaan berikut akan memilih geometri di mana sungai-sungai bersinggungan dengan negara bagian Texas


ST_Intersection () mengeksekusi persimpangan yang sebenarnya dan mengembalikan geografi yang mewakili bagian bersama antara sungai dan negara bagian Texas.

 

Tantangan

 

Tulis query yang memilih buffer 50km sekitar setiap sungai yang memotong wilayah Barat. Pastikan untuk hanya memilih geometri sungai yang memotong wilayah Barat dan tidak ada geometri lain di luar batas ini. Union geografi ini untuk masing-masing negara. Ada 11 negara di wilayah Barat sehingga seharusnya hanya 11 catatan. Perhatikan bahwa peta unit dalam meter:

 

Selamat atas penyelesaian GIS tutorial ini. Anda sekarang harusnya sudah memiliki pengetahuan teknis PostGIS dan memahami “kekuatan menulis query spasial” menggunakan PostGIS. Anda dapat menggunakan PostGIS untuk menyelesaikan analisis secara penuh dalam cara yang mirip dengan program GIS desktop lainnya. Pada kebanyakan program GIS desktop yang Anda akan menggunakan alat analisis khusus untuk menciptakan output (biasanya shapefile baru). Output tersebut biasanya digunakan sebagai masukan untuk GIS tool berikutnya dan serangkaian shapefile dibuat seluruh analisis. Anda dapat melakukan hal yang sama di PostGIS dengan membuat tabel dengan output dari query Anda. Sintaks untuk ini untuk menambah 1 baris pada awal query Anda sebagai berikut:

 


CREATE TABLE tablename AS

 


Ini berarti bahwa tabel baru akan dibuat berdasarkan query SELECT Anda. Anda dapat menggunakan ini untuk membuat tabel dan menggunakannya sebagai masukan untuk query spasial selanjutnya yang harus dilakukan analisis Anda.

 

(sumber : http://www.gistutor.com/postgresqlpostgis/10-intermediate-postgresqlpostgis-tutorials/75-understanding-postgis-spatial-queries.html)

 

Go to top