Cuma, Eylül 25CBS Akademi
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

PostGIS – PostgreSQL Sorguları (Intersect, Touches, Contains)

tarihinde

Bilgilendirme: Bu yazımız SQL sorgu dili bilgisi gerektirmektedir.

PostgreSQL ve CBS uzantısı olan PostGIS, açık kaynaklı ve esnek yapısı ile CBS kullanıcılarına büyük kolaylıklar sağlayan bir veri tabanı yönetim sistemidir. Özünde SQL sorgu dili kullanılabilen bu veri tabanı sistemini bilgisayarlarınızda pgAdmin arayüzü ile kullanabilirsiniz. PostgreSQL veri tabanı yönetim aracı pgAdmin ve alt bileşenleri ücretsiz ve açık kaynak kodlu bir şekilde sunulmaktadır. Bu yazımızda CBS yazılımlarında da uygulayabileceğiniz ancak çok fazla zaman alabilecek tablo ve konumsal (spatial) sorgulardan kesişim, temas etme ve içerme sorgularının nasıl kolaylıkla yapılacağını işleyeceğiz.

Öncelikle aşağıda gelen olarak sayacağımız adımları yaptığınızdan emin olun:

  1. PostgreSQL’in çekirdek veri tabanı yönetim uygulamasını ücretsiz indirip bilgisayarınıza kurun
  2. Kolay sorgu ve görüntüleme için pgAdmin‘in en güncel sürümünü ücretsiz indirin
  3. PostGIS eklentisini indirip kurun
  4. PostgreSQL ile oluşturduğunuz bir veri tabanı içinde PostGIS özelliğini aktif edin. Sorgu penceresineCREATE EXTENSION postgis; yazın. (Bu işlemi PostgreSQL ile otomatik oluşturulan “postgres” veri tabanı üzerinde yapmayın!)
  5. Veri tabanını ESRI ArcGIS üzerinde kullanmak istiyorsanız ESRI’nin önerdiği veri tabanı bağlama adımlarını takip edin.

Bu temel kurulum işlemlerinden sonra veri tabanında konumsal veriler (vektör veya raster farketmez) depolayabilir ve konumsal sorgular yapabilirsiniz. Senaryomuza göre ArcGIS ve QGIS yazılımlarında kullanabilecek bir postgresql veri tabanı oluşturduk. Bu veri tabanı ile konumsal sorguları SQL sorgularla hızlıca yapabilmek istiyoruz. Elimizde A tablosu ve B tablosu isimlerinde iki farklı konumsal veri olduğunu farzedelim.

ST_Intersects

İki konumsal verinin kesişip kesişmediğinin sorgusudur. A ile B verilerinin kesişiminde kullandığımız field veri tablosunda bulunan herhangi bir sütun olabilir. Sorguda kullandığımız geometry veri tablosunda geometri bilgilerinin saklandığı sütundur. Bu sütunun adı verinizde shape olabilir.

 

SELECT A.field,B.field FROM A,B WHERE st_intersects(A.geometry,B.geometry)

 

 

 

ST_Contains

İki konumsal verinin iç içe olup olmadığını veya herhangi bir konumsal verinin içinde kalan diğer verileri seçmek için kullanılır.

SELECT A.field,B.field FROM A,B WHERE st_contains(A.geometry,B.geometry)

 

ST_Touches

İki konumsal verinin dış sınırlarının birbiri ile temas edip etmediğini sorgulamak için kullanılır.

SELECT A.field,B.field FROM A,B WHERE st_touches(A.geometry,B.geometry)

 

Diğer bölümlerde daha çeşitli PostGIS analizlerine değineceğiz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.