analitik kartografya

advertisement
ANALİTİK KARTOGRAFYA
Lisansüstü Ders Notu
Hazırlayan
Yrd.Doç.Dr. İ.Öztuğ BİLDİRİCİ
Konya 2004
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
GİRİŞ
Bilgisayar teknolojisinin ve bilgisayar grafiğinin ya da bilgisayarın grafik kullanımının kartografyaya
çok güçlü bir etkisi olmuştur. “Automated cartography” , “computer aided cartography”, “computer
assisted cartography” gibi terimler bu gelişmenin sonucu ortaya çıkmıştır.
Bilgisayarın kartografyaya girişi kartografyanın hem kavram hem de uygulama olarak değişmesine
neden olmuştur. Bilgisayar ayrıca kartograf olmayanların da harita vb. ürünleri yapmasını
kolaylaştırmıştır.
Bilgisayar kartografın yardımcısıdır ve onun çevresel birimleri yeni kartografyanın araçlarıdır. Biz
bunu “dijital kartografya” olarak tanımlıyoruz.
Bu ders dijital kartografya ya da kartografyada sayısal yöntemler gibi isimler de alabilirdi.
Morison (1980) bilgisayar destekli kartografyayı üç aşamaya ayırmıştır.
•
Kartografların bekle gör davranışı gösterdikleri 1960’ların başı
•
1960’larla 1970’ler dönemi kartograflar yeni teknolojiyle ilgilenmeye başladılar
•
1980’lerin sonu:Yeni teknolojinin tamamen uygulamaya geçmesi
Kartografyada bilgisayar çağının başlarında grafik çıkış cihazları gelişmemişti. Nokta vuruşlu
yazıcılar grafik çıkış araçları idi. Direkt klavye girişi bile yoktu. Delikli kart sistemi vardı.
Monitör ve klavyenin çıkması ile veri giriş çıkışı kolaylaştı.Yazıcılar ve monitörler gelişti.
Monitörlerde reflesh teknolojisi animasyonları mümkün kıldı. Tarayıcı (scanner) ve sayısallaştırıcının
(digitiz) geliştirilmesi sonucu grafik veri girişi kolaylaştı ve hızlandı.
Optik tarayıcılar hardcopy görüntüyü yansıyan ışığın yoğunluğunu ölçerek bir sayısal değerler
tablosuna dönüştürür. 1980’lerde microcomputer ve lazer harita teknolojisini bir kez daha değiştirdi.
Yeni bir yazılım dalgası başladı.
Meslekler arasındaki geleneksel keskin sınırlar bulanıklaşmaya başladı. Kartograflar mekansal
gösterim ve analiz konusunda tek uzman değiller hatta en önemli oyuncu da değiller.
VERİ MODELİ OLARAK HARİTA
Dent (1985) haritayı kültürel ve fiziksel çevrenin grafik gösterimi olarak tanımlamış ve haritanın
dokunulabilir olduğunu kabul etmiştir.
Görülebilirlik (visibility) ve dokunulabilirlik (tangibility) klasik harita ürünlerinin özelliğidir.
Bilgisayar teknolojisi bu kavramlar üzerinde yeniden düşünmemizi gerektirmektedir.
Bu noktada haritanın sürekli ya da geçici olma durumu üzerinde düşünülmesi gerekmekte. Kağıt
üzerinde basılı bir harita sürekli ve dokunulabilirdir. Yıllarca kullanılır. Bilgisayar ekranında görünen
bir harita ise geçicidir. Birinci tip, “real map” ikinci tip “virtual map” olarak da adlandırılır.Ya da
kağıt harita, ekran haritası, ya da analog harita, ekran haritası ayrımları yapılmaktadır.
En genel anlamda harita bir veri modelidir. Modeller ikiye ayrılır.
1. İkonik modeller: Gerçeğin ölçek olarak küçültülmüş benzeri
2. Sembolik modeller: Gerçeğin yüksek derecede idealize edilmiş gösterimleridir.
Örnek: Tematik haritalarda tematik gösterimin altındaki temel harita (base map) ikonik model, tematik
layer/layerlar sembolik modeldir.
14.03.2004
2/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
HARİTALAR VE VERİ İŞLEME SİSTEMLERİ
Kartografik bilginin işlenmesi genel veri işlemenin (data processing) özel bir uygulamasıdır. Bir veri
işleme sistemi,
•
Veri toplama
•
Veri depolama
•
Veri manipulasyonu
•
Veri kullanımı
bileşenlerinden oluşur. Veri manipulasyonu ise giriş, bellek, aritmetik ve kontrol bileşenlerine
ayrılabilir.
Bu bağlamda klasik harita/analog harita bir veri depolama aracıdır. Kitaplara benzer olarak. Haritalar
da manipulasyon açısından hem girdi hem de çıktı olabilirler.
KONUMSAL KARTOGRAFİK OBJELER
Haritalar sayısal görüntülere uzayın, ya raster ya da vektör veri modeli ile dönüştürülürler. Vektör
modelde iki boyutlu uzay, noktaların oluşturduğu sürekli bir kümedir. Raster modelde ise uzay, iki
boyutlu kafes olarak adlandırılan noktaların sonlu bir seti ile doldurulmuştur. Uzayın raster olarak
düzenlenmesi kafes ya da mozaik (tesellation) modele dayanır.
Vektör ve raster modeller arasındaki bir diğer fark
•
Vektör objeler alanları birbirinden ayıran çizgisel objeleri tanımlar.
•
Raster objeler, çizgisel objelerle sınırlanan alansal objeleri tanımlar.
Başka bir ifade ile
•
Vektör modelde alan çizgilerle sınırlanır. (Temel eleman çizgi)
•
Raster modelde çizgiler, alanlar arasındaki kesikliklerle tanımlanır. (Temel eleman alan)
Bu yorumlardan vektör modelin noktalar ya da alanları tanımlamadığı sonucu çıkartılmamalıdır.
Çünkü bu modelde nokta dejenere olmuş bir çizgi , alan ise kapalı bir çizgi olarak tanımlanabilir.
Sıfır Boyutlu Objeler
Nokta (point)
: İki boyutlu uzayda mutlak bir konumu belirten sıfır boyutlu obje
Son Nokta (end point) : Bir boyutlu konumsal bir objenin sona erdiğini belirten tek boyutlu obje
Grid noktası (lattice point)
boyutlu obje
: İki boyutlu uzayın mozaiğinde mutlak bir konum belirten sıfır
Bir Boyutlu Objeler
Çizgi(line)
:İki uç nokta (son nokta) arasında iki boyutlu uzayda kesiksiz bir eğri
oluşturan noktaların geometrik yeri
Kapalı çizgi (outline)
: İki uç noktasının mutlak konumu aynı olan çizgi
Doğru Parçası (straight line segment):İki boyutlu uzayda iki uç noktayı birleştiren ve yönü
değişmeyen noktaların geometrik yeri
Çoklu Doğru (string)
: Doğru parçalarından oluşan bir dizi
Kapalı Çoklu Doğru (ring)
:Halka
Tüm bir boyutlu objelerin yönü olabilir ya da yönsüz olabilirler. Yönlerinin olması durumunda uç
noktalarının birisi başlangıç noktası diğeri bitiş noktası olarak tanımlanır.
14.03.2004
3/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
Yönlü tek boyutlu objelerde sağ ve sol taraf tanımları da yapılır.
İki Boyutlu Objeler
Alan (area)
:İki boyutlu sürekli bir objenin iç kısmı.İç halkalar içerebilirler.
Bölge (region) :Bir ya da daha çok dış kapalı birbirini kesmeyen çizgileri (outline) olan, sıfır ya da
daha çok iç kapalı çizgileri (inner outline) olan bir alan
Arka plan Bölge(background region):Bir ya da daha çok iç kapalı çizgileri olan sıfır ya da daha çok
birbirini kesmeyen dış halkaları olan bölge. Bu bölge diğer tüm bölgelerin kümesinin tamamlayanıdır.
Poligon: Bir dış halka ve birbirini kesmeyen sıfır ya da daha çok iç halkadan oluşan bir alan
Arka plan Poligon (background polygon):Dış halkası olmayan sıfır ya da daha çok birbirini kesmeyen
iç halkaları olan bir alan. Diğer tüm poligonlar kümesinin tamamlayanıdır.
Piksel
:Düzgün şekilli bir görüntünün bölünemez en küçük iki boyutlu resim elemanı
Hücre(cell)
:Uzayın düzgün mozaiğinde (raster) bir elemanı temsil eden iki boyutlu obje. Çok
kullanılan hücre türleri dörtgenler, kareler, üçgenler ve altıgenlerdir.
dörtgen kafes yapı
(nokta)
çizgi
kapalı çizgi
doğru parçası
çoklu doğru
üçgen kafes yapı
(nokta)
kapalı çoklu doğru
Şekil 1: Temel noktasal ve çizgisel obje tipleri
14.03.2004
4/39
Taslak V.0
ANALİTİK KARTOGRAFYA
alan (area)
arka plan bölge
(background region)
İ.Öztuğ BİLDİRİCİ
bölge (region)
poligon
arka plan poligon
(background polygon)
Şekil 2: Alansal objeler
TEMEL ANALİTİK GEOMETRİ
Kartografın görsel olarak gördüğünü bilgisayarın nümerik olarak görebilmesi için bilgisayarı nasıl
programlayabiliriz? Bu sayısal kartografyadan beklenen en temel görevdir. Bu konudaki en önemli
yardımcı analitik geometridir.
R reel sayılar kümesini temsil ederse R*R (R'nin kendi ile kartezyen çarpımı) ya da R2 iki boyutlu
uzayı temsil eder. İki boyutlu uzayda iki koordinat ekseni vardır. X ve Y burada Anglosakson ülkeleri
gösterimini esas alarak X yatay Y düşey eksen olarak alınacaktır. Yada X doğu yönünü Y kuzey
yönünü göstermektedir.
İki boyutlu Öklid uzayında bir nokta iki reel sayı ile (koordinatlar) gösterilir. Nokta P ile gösterilirse
(X,Y) reel sayıları P noktasının kartezyen koordinatlarıdır.
VEKTÖRLER VE MATRİSLER
Bir vektör bir orijin noktasından çıkan n boyutlu bir güç olarak tanımlanabilir. Yönü ve sabit uzunluğu
ya da boyutu vardır.
Vektörler, nümerik olarak koordinat eksenlerine izdüşümleriyle ifade edilirler.
X  X 2 − X1
Y  = Y − Y 
   2 1 
(1)
Düzlemde herhangi bir nokta başlangıç ve bitim noktası aynı olan vektör ile tanımlanır. Sıfır vektörü
olarak da tanımlanabilir.
Vektör uzunluğu:
a =
X 2 +Y2
(2)
İki vektör arasındaki uzaklık:
14.03.2004
5/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
p−q =
( X 1 − X 2 )2 + (Y1 − Y2 )2
(3)
Normal vektör uzunluğu 1 olan vektördür.
Boyutları aynı olan iki vektör çarpılabilir. Çarpım sonucu skaler olan çarpım iç çarpım olarak
adlandırılır.
a( X 1 , Y1 )
b( X 2 , Y2 )
ise
ab = X 1 X 2 + Y1Y2
İki vektör arasındaki iç çarpım aralarındaki açı ile de ilişkilidir.
a.b = a b cosϕ
cos ϕ =
(4)
a.b
ab
(5)
Bir matris sayılardan oluşan dikdörtgen bir dizidir. Genel yazım tarzı olarak,
a 
a
A =  11 12 
a21 a22 
(6)
m satır n sütun sayısını göstermek üzere matrisler m*n boyutludur.
•
Boyutları aynı olan matrisler toplanabilir ya da çıkartılabilir.
•
A.B matris çarpımının var olabilmesi için A'nın sütun sayısı B'nin satır sayısına eşit olmalıdır.
•
A.B tanımlı iken B.A da tanımlı olsa A.B≠B.A
•
Sıfır matris: Tüm elemanları sıfır olan matris.
•
Kare matris: Satır ve sütun sayısı eşit olan matris
•
Birim matris: Kare, köşegen elemanları 1, diğer elemanları sıfır olan matris
y
y2
y1
q
p
x
x1
x2
Şekil 3: Koordinat sistemi
14.03.2004
6/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
HOMOJEN KOORDİNATLAR VE DÖNÜŞÜMLER
Homojen koordinatlar, kartezyen koordinatların bir boyut artırılmış biçimidir. İki boyutlu uzayda
P(x,y) noktasının homojen koordinatları P(hx, hy,h) şeklinde tanımlıdır.
Burada h sıfırdan farklı bir skalerdir. Herhangi bir iki boyutlu (x,y) vektörü h=1 alınarak (x,y,1)
şeklinde homojen vektöre dönüştürülebilir.
Homojen koordinatlar öteleme,döndürme ve ölçekleme gibi dönüşümler için gereklidirler.
Her bir dönüşüm orijinal noktadan (x,y) yeni bir nokta (x' , y' ) elde edilmesini sağlar.
Öteleme koordinat sisteminin orijininin değiştirilmesi için kullanılır. Orijin seçimi keyfi olduğundan
değiştirilmesi gerekebilir. Öteleme dönüşümü:
x' = x + T X
(7)
y ' = y + TY
şeklinde tanımlıdır. Matris normunda:
[x ′
y ′ 1] = [x
1
y 1] 0
T X
0
0
1
0
1
TY
(8)
Dönme dönüşümü koordinat sisteminin orijin etrafında saat ibresinin tersi yönünde θ açısı kadar
dönmesini sağlar.
x' = x cos θ + y sin θ
(9)
y ' = − x sin θ + y cosθ
Matris yazımı:
[x ′
y ′ 1] = [x
cos ϕ
y 1] sin ϕ
 0
− sin ϕ
cos ϕ
0
0
0
1
Öteleme ve döndürme iki boyutlu uzayda iki nokta arasındaki uzaklığı korur. Ölçekleme dönüşümü
ile koordinat sisteminin birim uzaklığı değiştirilir.
Ölçekleme dönüşümü:
x' = S X x
(10)
y ' = SY y
Matris yazımı:
[x ′
y ′ 1] = [x
S X
y 1] 0
 0
0
SY
0
0
0
1
(11)
Dönüşümlerin arka arkaya yapılması gerekebilir. Bu bakımdan dönüşümlerin matris biçiminde
yazılması yararlıdır. Bu şekilde istenen sırada dönüşüm matrisleri çarpılarak tüm dönüşümü
tanımlayan tek bir matris belirlenebilir. Dönüşümlerin sırası matris çarpımının değişim özelliği
olmadığından dolayı önemlidir. T öteleme S ölçekleme matrisi olsun.
C = T .S şeklinde bir dönüşüm matrisi
14.03.2004
7/39
Taslak V.0
ANALİTİK KARTOGRAFYA
1
0

TX
0
1
TY
İ.Öztuğ BİLDİRİCİ
0  S X
0  0
1  0
0  S X
0 =  0
1 TX S X
0
SY
0
0
SY
TY SY
0
0
1
C = S .T ise
S X
0

 0
0
SY
0
0  1
0  0
1 TX
0  S X
0 =  0
1 TX
0
1
TY
0
SY
TY
0
0
1
görüldüğü gibi elde edilen dönüşüm matrisleri farklıdır.
NOKTA VE ÇİZGİ İLİŞKİLERİ
R2 uzayında bir doğrunun denklemi
Ax + By + C = 0
(12)
vektör formunda;
 A
 B [x
 
C 
y 1] = 0
(13)
A,B,C skaler sayılar olup doğrunun konumsal özelliklerini tanımlarlar. Doğrunun eğimi
m=
−A
dir.
B
b=
−C
B
y = mx + b
(14)
şeklinde de doğru denklemi yazılabilir. Birinci yazış şekli programlama açısından daha kullanışlıdır.
Çünkü B = 0 olması durumunda da doğru tanımlı olur.
p(x1 , y1 ) ve q( x2 , y2 ) noktalarından geçen doğru denkleminde parametreler
 A  Y1 − Y2 
B =  X − X 
2
1

  
C  Y2 X 1 − Y1 X 2 
(15)
benzer şekilde q'dan p'ye doğru denklemi
 A  Y2 − Y1 
B =  X − X 
1
2

  
C  Y1 X 2 − Y2 X 1 
(16)
−A
r
doğrunun eğimini, ( A2 + B 2 )1 / 2 ise pq vektörünün büyüklüğünü verir.
B
C ise p ve q vektörlerinin oluşturduğu paralel kenarın alanına eşittir.
14.03.2004
8/39
Taslak V.0
ANALİTİK KARTOGRAFYA
p
İ.Öztuğ BİLDİRİCİ
q
Normlaştırılmış doğru denklemi,
2
2
 A'  A / A + B 

 B ' = B / A2 + B 2 

  
2
2

C ' C / A + B 


(17)
Düzlemde t ( xt , yt ) noktasının bir doğruya göre konumu,
S = Axt + Byt + C
(18)
den hesaplanan S skaler sayısı ile tanımlıdır.
•
S<0 ise t doğrunun saat ibresi yarım düzleminde (sağında)
•
S>0 ise t doğrunun saat ibresi tersi yarım düzleminde (solunda)
t noktasından L doğrusuna inilen dikin boyu ise,
d = S / A2 + B 2
(19)
L doğrusuna paralel olan bir L' doğrusu üzerinde bulunan tüm noktaları için hesaplanacak S değeri
aynıdır.
L ve L' paralel ise,
L için AX + BY + C = 0
L' için A′X + B ′Y + C ′ = 0
L' üzerinde bulunan noktalar için hesaplanacak tüm S değerleri,
S = C − C'
(20)
olur. Eğer birbirine paralel iki doğru normlaştırılırsa; aralarındaki uzaklık,
d = C − C'
(21)
olur. p ve q noktalarından geçen doğru parçasının orta noktası r ise,
14.03.2004
9/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
 Xr  ( X 1 + X 2) / 2
Yr  = (Y 1 + Y 2) / 2 
  

(22)
p ve q noktalarından geçen doğrunun orta dikmesi q orta dikmenin sağ tarafında kalıyorsa

 A  X 1 − X 2


B  = Y 1 − Y 2

  
C  [( X 2 2 + Y 2 2 ) − ( X 1 2 + Y 1 2 )]1 / 2 
(23)
İKİ DOĞRUNUN KESİŞİMİ
Birinci doğru: Ax + By + C = 0 , İkinci doğru: Ex + Fy + G = 0 ise
 Xi  (GB − FG ) /( FA − EB) 
 Yi  = (CE − AG ) /( FA − EB)
  

(24)
Eğer doğrular paralel ise FA − EB = 0 olur ve kesişim mevcut değildir.
İki doğrunun değil de iki doğru parçasının kesişiminin olup olmadığı araştırılmak istenirse bazı
problemler ortaya çıkar.
Eğer lineer denklem formu ile çözüm yapılırsa önce kesişim noktası hesaplanır sonra bu noktanın her
iki doğru parçasının da içinde olup olmadığı araştırılır. Bu durumda pek çok özel durum ortaya
çıkabilir. Bunun yerine şu yöntem izlenebilir:
(
Birinci doğru parçası i ( xi , yi ) − j x j , y j
İkinci doğru parçası
)
k ( xk , yk ) − l ( xl , yl )
1.
d = (x j − xi )( yk − yl ) − ( y j − yi )( xk − xl )
2.
d = 0 ise paraleldir, kesişim yoktur. Değilse,
3.
p1 =
4.
p2 =
5.
0 ≤ p1 ≤ 1 ve 0 ≤ p2 ≤ 1 ise kesişim doğru parçaları üzerindedir.
(xk − xl )( yi − yk ) − ( yk − yl )(xi − xk )
d
(xi − xk )( y j − yi ) − ( yi − yk )(x j − xi )
d
6. Kesişim noktasının koordinatları aşağıdaki gibi hesaplanır.
xs = xi + p1 (x j − xi )
ys = yi + p1 ( y j − yi )
Kesişim Probleminin İrdelenmesi
1. Programlama tekniği açısından düşünülürse değişkenler için hangi tipin tanımlandığı önemlidir.
Double tipi (8 byte) seçildiğinde ondalık noktanın nerede olduğundan bağımsız olarak 14 rakam
anlamlıdır. Sekiz değişik double değişkenden hesaplanan d değerinin tam olarak sıfır olması
beklenemez. Bu durumda bir hesap hassasiyeti belirlenerek (örneğin 10-5) onunla karar vermek
gerekir. If d = 0.0 yerine if abs ( d ) < 1e − 5 yazılmalıdır. Çünkü d = 0 şartının tam olarak
sağlanması genellikle mümkün değildir.
14.03.2004
10/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
2. Bazen sadece kesişimin var olup olmadığı önemlidir. Bu durumda p1 ve p2 kontrol edilir. Kesişim
noktasının koordinatları hesaplanmaz.
3. p1 ve p2 'nin kontrolünde (yine bunlar double olduğundan) sayısallaştırma hatalarının olduğu da
varsayılarak bir tolerans gerekebilir. ε tolerans değeri olmak üzere
− ε ≤ p1 ≤ 1 + ε − ε ≤ p2 ≤ 1 + ε
şeklinde koşullar yazılabilir. Ancak p1 ve p2 birimsiz (orantı) olduğundan seçilecek tolerans
değerinin belirlenmesi sorun olabilir.
4. p1 ve p2 geometrik anlamı biraz daha irdelenirse,
p1 = 0 ise kesişim noktası i noktası ile çakışık
p1 = 1 ise kesişim noktası j noktası ile çakışık
p2 = 0 ise kesişim noktası k noktası ile çakışık
p2 = 1 ise kesişim noktası l noktası ile çakışık
İki Doğrunun Kesişiminde Bisektör Denklemi
 R   A'+ E '
 S  =  B'+ F '
  

T  C '+G '
(25)
A', B', C' değerleri normlaştırılmış değerlerdir. Yani
A
A′ =
A2 + B 2
B′ =
B
A2 + B 2
C′ =
C
A2 + B 2
(26)
UZUNLUK VE ALAN HESABI
Bir çizginin uzunluğu, çizgiyi oluşturan doğru parçalarının toplamıdır. Eğer çizgi kapalı bir şekil
oluşturuyorsa uzunluğu kapalı şeklin çevresine eşittir.
n
[
l = ∑ ( xi +1 − xi ) 2 + ( yi +1 − yi ) 2
]
1/ 2
(27)
i =1
Kapalı poligonun alanı
f =
1 n
∑ ( xi yi +1 − xi +1 yi )
2 i =1
(28)
Alan hesabında poligon noktalarının yönü önemlidir. Noktalar saat ibresi yönünde ise alan pozitif
çıkar. Birden çok kapalı çizgiden oluşan poligonlarda dıştaki kapalı çizginin yönü saat ibresi yönünde,
içtekilerin yönü ters ise iç alan negatif çıkacağından toplam alan doğru olarak çıkar.
Bir kafes yapıda toplam alanın bulunması gerekirse:
1
2
Birim alan sayısı = b + c − 1
b: Poligon üzerinde bulunan grid noktaları sayısı
c: İç bölgede kalan grid noktası sayısı
14.03.2004
11/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
DÖNÜŞÜMLER
Bu bölümde iki boyutlu bir (u, v ) sisteminden, ( x, y ) sistemine dönüşüm yöntemleri irdelenecektir.
Dönüşümün genel ifadesi aşağıdaki gibidir:
x = f (u, v)
y = g (u , v)
(29)
Burada f ve g fonksiyonları belirlenmelidir.
AFİN DÖNÜŞÜM
İki değişkenli polinomların özel bir hali olan afin dönüşüm aşağıdaki gibi tanımlanır.
x = a0 + a1u + a2v
(30)
y = a3 + a4u + a5v
Çözüm için 6 katsayının belirlenmesi gerekir bu da en az 3 ortak nokta olması durumunda
mümkündür. İki sistemde koordinatları bilinen noktalar için afin dönüşüm eşitlikleri yazılırsa bir
lineer denklem sistemi oluşur.
Denklem sistemi açık olarak,
x1 = a0 + a1u1 + a2v1
y1 = a3 + a4u1 + a5v1
...
xn = a0 + a1un + a2vn
(31)
yn = a3 + a4un + a5vn
Matris yazımı ile,
 x1  1 u1
 y  0 0
 1 
 .  . .
 =
 .  . .
 xn  1 un
  
 yn  0 0
v1
0
.
.
vn
0
0 0
1 u1
. .
. .
0 0
1 un
0  a0 
v1   a1 
.  . 
 
.  . 
0  . 
 
vn   a5 
(32)
L = Ax
Bu sistemde bilinmeyenler katsayılardır. n=3 ise lineer denklem sistemi çözülerek katsayılar bulunur.
n>3 ise sistem dengelemeli çözülebilir. Bu amaçla,
L + v = Ax
sisteminin çözümü yapılır.
HELMERT DÖNÜŞÜMÜ
x = a0u + a1v + a2
(33)
y = −a1u + a0v + a3
14.03.2004
12/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
Dört katsayının belirlenmesi gerekir. Bunun için en az iki ortak nokta bilinmeli.
Denklem sistemi,
 x1   u1
 y  v
 1  1
 .  .
 =
 .  .
 x n  u n
  
 y n   v n
1 0
0 1 a0 
. .   a1 

. .  a 2 
 
1 0  a 3 

0 1
v1
− u1
.
.
vn
− un
(34)
n>2 ise L + v = A x şeklinde dengelemeli çözüm yapılır.
PROJEKTİF DÖNÜŞÜM
x=
a1u + a2v + a3
a u + a5v + a6
y= 4
a7u + a8v + a9
a7u + a8v + a9
(35)
Sistemin çözümü için a9 = 1 seçilmelidir. Aksi halde homojen denklem sistemi oluşur ve çözüm keyfi
olur.
Denklem sistemi,
x = a1u + a2v + a3 − a7ux − a8vx
(36)
y = a4u + a5v + a6 − a7uy − a8vy
sekiz katsayının belirlenebilmesi için en az 4 ortak nokta gereklidir.
Matris formunda
 u1
 x1  
y  0
 1  .
 ...  = 
  .
 xn  u
 yn   n
 0
v1
1
0
0
0
− u1 x1
0
.
.
0
.
.
u1
.
.
v1
.
.
1
.
.
− u1 y1
.
.
un
0
1
0
0 0
X n Yn
0 − un xn
1 − u n yn
 a1 
− v1 x1   . 
− v1 y1   . 
 
.  . 

.  . 
 
− vn xn   . 

− vn yn   . 
 
a8 
(37)
POLİNOM DÖNÜŞÜMLERİ
Bilineer Dönüşüm
x = a1u + a2v + a3uv + a4
(38)
y = a5u + a6v + a7uv + a8
14.03.2004
13/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
Sekiz bilinmeyen var yine 4 nokta gereklidir. Bu dönüşüm ikinci derece polinom dönüşümünde kareli
terimlerin atılmış halidir. Hiperbol denklemi olduğundan hiperbolik dönüşüm olarak adlandırılabilir.
Uzaktan algılamada uydu görüntülerinin rektifiye edilmesinde iyi sonuçlar verdiği bilinmektedir. Bir
kare ağına uygulandığında aşağıdaki gibi bir şekil bozulmasına neden olur.
Ya da bu şekilde deforme olduğu bilinen bir ağın eski haline getirilmesini sağlar. Denklem sistemi
matris formunda yazılırsa
 x1   u1
y  0
 1 
. .
 =
. .
 xn  un
  
 yn   0
v1
u1v1
0
.
.
vn
0
1
0
0
0
0
.
.
0 u1
. .
. .
v1
.
.
u1v1
.
.
unvn
0
1 0
0 un
0
vn
0
unvn
 a1 
0 a2 
1  . 
 
.  . 

.  . 
 
0  . 

1  . 
 
 a8 
(39)
L + v = A x şeklinde dengeleme modeli oluşur. Eğer sadece 4 nokta varsa sistemin çözümü
−1
L = A x ve A L = x şeklinde bilinmeyenler bulunur.
İkinci Derece Polinom Dönüşümü
x = a1u 2 + a2u + a3v 2 + a4v + a5uv + a6
y = a7u 2 + a8u + a9v 2 + a10v + a11uv + a12
(40)
Burada 12 katsayı bilinmeyen olup 6 ortak nokta gerekir.
Matris formunda denklem sistemi:
14.03.2004
14/39
Taslak V.0
ANALİTİK KARTOGRAFYA
 x1   u12
y  
 1  0
 x2   .
  
 y2  =  .
.  .
  
.  .
 x  u 2
 n  n
 yn   0
İ.Öztuğ BİLDİRİCİ
2
u1
0
.
.
v1
0
.
.
v1
0
.
.
u1v1
0
.
.
1 0
2
0 u1
.
.
.
.
0
u1
.
.
0
2
v1
.
.
0
v1
.
.
0
u1v1
.
.
.
.
un
0
.
.
.
.
vn
0
.
.
un vn
0
.
.
.
.
1 0
2
0 un
.
.
0
un
.
.
0
2
vn
.
.
0
vn
.
.
0
un vn
2
vn
0
 a1 
a 
 2

0  . 
 
1  . 
.  . 
 
.  . 
.  . 
 
.  . 
 
0  . 
1  . 
 
 . 
a12 
(41)
N. Dereceden Polinomun Genel İfadesi
n
n
f (u, v ) = ∑∑ aij u i v j ⇔ i + j ≤ n
(42)
i=0 j =0
Polinomların dönüşümlerde kullanılması durumunda iki ayrı polinom tanımlanması gerekir.
(u,v) birinci sistem (x,y) ikinci sistem ise,
n
n
n
n
x = ∑∑ aij u i v j y = ∑∑ bij u i v j
i =0 j =0
(43)
i =0 j =0
şeklinde iki polinom ile dönüşüm yapılabilir. Bu yazım tarzına göre n=2 alınırsa,
x = a00 + a10u + a01v + a20u 2 + a02v 2 + a11uv
y = b00 + b10u + b01v + b20u 2 + b02v 2 + b11uv
(44)
Bu şekilde tanımlanan polinomlara bivaryant polinomlar da denir. i + j ≤ n koşulu uygulanmaz ise
polinomun terim sayısı artar. Bu şekilde elde edilen polinomlar, katsayıların hızla artması nedeniyle
ikinci ve üçüncü derecede uygulanabilirler, bikuadrik (ikinci derece) ve bikübik (üçüncü derece)
polinomlar olarak tanımlanırlar. Bu tür polinomlara genel olarak bipolinom da denilmektedir.
Bivaryant polinomlar için polinom derecesi ile katsayı adedi arasında, N katsayı adedi, n polinom
derecesini göstermek üzere aşağıdaki ilişki vardır.
1
N = (2 + n)(1 + n)
2
(45)
Bipolinomlar için,
N = (n + 1)
2
(46)
3 Boyutlu Dönüşümler İçin n.Dereceden Polinom
3 boyutlu dönüşümler için kullanılacak 3 değişkenli polinomun genel ifadesi
n
n
n
f (t , v, u ) = ∑∑∑ aijk u i v it i i + j + k ≤ n
(47)
i =0 j =0 k =0
14.03.2004
15/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
n = 2 alınırsa;
f (u , v, t ) = a000 + a100u + a200u 2 + a110uv + a101ut + a010v + a020v 2 + a011vt + a001t + a002t 2
(u,v,t) sisteminden (x,y,z) sistemine dönüşüm için 3 polinom gerekir.
x = f (u , v, t )
y = g (u , v, t )
z = h(u , v, t )
DÖNÜŞÜMLERDE RADYAL BAZLI FONKSİYONLAR
İki koordinat sistemini birbirine dönüştüren eşitlikler kesin olarak bilinmiyorsa, ortak noktaları
kullanarak nümerik olarak bir fonksiyon belirlenebilir. Koordinat dönüşümlerin kullanımı oldukça
yeni olan radyal bazlı fonksiyonlar (RBF) ailesinden burada üç fonksiyon incelenecektir: multikuadrik
(MQ) ters multikuadrik (RMQ) ve thin plate spline (TPS).
Bu fonksiyonların pek çok kullanım alanı vardır. Ancak koordinat dönüşümleri dışında sayısal arazi
modeli uygulamalarında da ve yine bir tür koordinat dönüşümü olan uydu görüntülerinin
rektifikasyonunda kullanılırlar. En genel anlamda bu RBF’ler verilen nokta kümesine bir yüzey
uydurmak için kullanılır.
Aşağıda iki boyutlu dönüşümlerde her üç fonksiyonun uygulaması ayrıntılı olarak verilecektir.
MQ Fonksiyonu
R.L. Hardy tarafından ilk kez 1971 yılında yayınlanmış olan multikuadrik fonksiyon verilen
noktalardan geçen bir yüzey tanımlar.
n
f ( x, y ) = ∑ C i
i =1
(x − xi )2 + ( y − yi )2 + ∆2
(48)
Multikuadrik yüzey geometrik olarak düşünülürse hiperboloid yüzeylerin toplamı olarak
tanımlanabilir. Fonksiyonlardaki ∆2 parametresi sıfır seçilirse, yüzeyin geometrik anlamı koni
yüzeyleri toplamı olarak değişir.
İki koordinat sistemi arasındaki dönüşüm için iki fonksiyona ihtiyaç vardır.
n
x = f (u , v ) = ∑ C xi
i =1
n
y = f (u , v ) = ∑ C y i
i =1
(u − ui )2 + (v − vi )2 + ∆2
(49)
(u − ui )2 + (v − vi )2 + ∆2
Bazı uygulamada ∆2 = 0 alınmaktadır. Bu parametrenin alacağı değer tüm noktalar için sabit olup bu
konuya aşağıda tekrar değinilecektir. Burada Cxi ve Cyi katsayıları bilinmeyenlerdir. Bunların
bulunabilmesi için;
x1 = C x1 (u1 − u1 ) 2 + (v1 − v1 ) 2 + ∆2 + C x 2 (u1 − u2 ) 2 + (v1 − v2 ) 2 + ∆2 + ...C x n (u1 − un ) 2 + (v1 − vn ) 2 + ∆2
x2 = C x1 (u2 − u1 ) 2 + (v2 − v1 ) 2 + ∆2 + C x 2 (u2 − u2 ) 2 + (v2 − v2 ) 2 + ∆2 + ...C x n (u2 − un ) 2 + (v2 − vn ) 2 + ∆2
...
şeklindeki lineer denklem sistemi çözülmelidir. Matris formunda,
14.03.2004
16/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ

∆

2
(u 2 − u1 ) + (v2 − v1 ) 2 + ∆2
A=

.


.
(u1 − u 2 ) 2 + (v1 − v2 ) 2 + ∆2
(u1 − u3 ) 2 + (v1 − v3 ) 2 + ∆2
.
∆
.
.
.
.
.
.
.
.






aij ∈ A ⇒ aij = (ui − u j ) 2 + (vi − v j ) 2 + ∆2
−1
(50)
−1
(51)
x = AC x ⇒ A x = C x
benzer şekilde,
y = AC y ⇒ A y = C y
Bu şekilde ortak nokta sayısı kadar Cx ve Cy katsayıları elde edilir. Sistemin çözümünde tüm ortak
noktalar kullanıldığından dengelemeli çözümü yoktur. Başka bir deyişle oluşan katsayılara her ortak
noktanın etkisi vardır. Oluşan yüzey her ortak noktadan geçer.
Multikuadrik fonksiyonun en yaygın kullanım alanı sayısal arazi modelidir. x, y, z nokta koordinatları
olmak üzere
n
z = ∑ Ci ( x − xi ) 2 + ( y − yi ) 2 + ∆2
(52)
i =1
şeklinde örnekleme noktalarından geçen bir yüzey tanımlanır. Bu şekilde herhangi bir (x,y)’ye karşılık
gelen z değeri bulunur.
MQ fonksiyonunun kartografyada uygulaması ile ilgili olarak bkz Bildirici [2003], İpbüker v.d [2003],
İpbüker & Bildirici [2002]
∆2 Parametresinin belirlenmesi
∆2 parametresinin alacağı değer konusunda literatürde çok sayıda tartışma vardır. Bu konudaki
önerileriler ve uygulamalar, MQ fonksiyonunu bulan bilim adamı Hardy fonksiyonun kullanım
alanlarını kapsamlı bir şekilde özetlediği makalesinde bulunabilir [Hardy 1990]. Burada
uygulamaların özelliğine göre değişmeyen Schul’min ve Mittel’man tarafından önerilen eşitliğin
verilmesi yeterli görülmüştür.
∑∑ [(x
n
∆ =
2
n
i =1 j =1
− x j ) + (yi − y j )
2
i
2
]
(53)
n(n − 1)
Bu parametre yüzeyin yumuşaklığını belirlemektedir. Sıfır alınması durumunda yüzey en sert durumda
olmaktadır. Değer büyüdükçe yüzeyin yumuşaklığı artmaktadır. Ancak ∆2 koordinat değerlerine bağlı
olarak çok fazla arttırılamaz. Belli bir değeri aştığı zaman A matrisinin kondisyonu bozulur ve
katsayılar hesaplanamaz. ∆2 nin sıfır alınması durumunda ise matrisin köşegenleri sıfır olmaktadır. Bu
durum matris inversi alınırken dikkate alınmalıdır.
A matrisi köşegen kare bir matris olup, inversi her zaman mevcuttur. Ancak iki kontrol noktasının
koordinatının aynı olması durumunda inversi alınamaz.
3 Boyutlu multikuadrik dönüşüm
(u,v,t) birinci sistem (x,y,z) ikinci sistem olmak üzere
14.03.2004
17/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
n
x = f1 (u , v, t ) = ∑ c xi (u − ui ) 2 + (v − vi ) 2 + (t − ti ) 2 + ∆2
i =1
n
y = f 2 (u , v, t ) = ∑ c yi (u − ui ) 2 + (v − vi ) 2 + (t − t i ) 2 + ∆2
(54)
i =1
n
z = f 3 (u , v, t ) = ∑ c zi (u − ui ) 2 + (v − vi ) 2 + (t − t i ) 2 + ∆2
i =1
sistemin çözümü, ( ∆2 = 0 alınarak)
aij = (ui − u j ) 2 + (vi − v j ) 2 + (t i − t j ) 2
aij ∈ A
(55)
olmak üzere 3 lineer denklem sistemi oluşur.
x = Ac x y = Ac y z = Ac z
(56)
buradan ,
−1
−1
−1
A y = cy A z = cz
A x = cx
(57)
çözümleri yapılarak, katsayı vektörleri bulunur.
RMQ Fonksiyonu
RMQ (Reciprocal Multiquadric) fonksiyonu MQ fonksiyonunun tersidir. İki koordinat sistemi
arasında iki boyutlu dönüşümde kullanımı:
n
x = f (u, v ) = ∑ C xi
i =1
1
(u − ui )2 + (v − vi )2 + ∆2
n
y = f (u, v ) = ∑ C y i
i =1
(58)
1
(u − ui ) + (v − vi )2 + ∆2
2
Burada katsayıların bulunması ve ∆2 nin belirlenmesi MQ fonksiyonunda anlatıldığı gibidir. Ancak
burada ∆2 sıfır alınamaz.
TPS Fonksiyonu
RBF ailesinin diğer bir fonksiyonu da TPS fonksiyonudur. TPS in en önemli özelliği “enerjiyi
minimize eden” bir yüzey olmasıdır. Bunun anlamı yüzeyin MQ ve RMQ yüzeylerine göre daha
yumuşak olmasıdır. TPS fonksiyonu,
ri 2 = (u − ui ) + (v − vi )
2
2
olmak üzere,
n
f (u , v ) = ∑ ci ri 2 lnri 2
(59)
i =1
şeklinde tanımlıdır. (u,v) koordinat sisteminden (x,y) koordinat sistemine dönüşüm için ki adet
fonksiyon tanımlanmalıdır.
14.03.2004
18/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
n
x = ∑ c xi ri 2 lnri 2
i =1
n
y = ∑ c yi ri lnri
2
(60)
2
i =1
katsayıların belirlenmesi MQ çözümünde anlatıldığı gibidir. MQ ve RMQ fonksiyonlarındaki gibi bir
parametre ( ∆2 ) burada söz konusu değildir. Logaritma özelliği gereği,
n
x = ∑ c xi ri 2 lnri
i =1
n
(61)
y = ∑ c yi ri lnri
2
i =1
şeklinde de fonksiyonlar yazılabilir. Bu durumda katsayılar iki kat büyük çıkar. Ancak A matrisinin
elemanları (bkz MQ çözümü) daha küçük olacağından oluşan lineer denklem sistemi daha kararlı olur,
A matrisinin kondisyonu daha iyi olur.
NEWTON-RAPSON İTERASYONU
Bazı eşitliklerde bir değişkeni eşitliğin bir tarafına çekip diğer değişkenlere göre değerini hesaplamak
mümkün olmaz. Örneğin
2t − sin t = π sin ϕ
Burada t biliniyorken ϕ ’nin değerini hesaplamak mümkündür. Ama ϕ biliniyorken t nin değerini
hesaplamak cebirsel işlemlerle mümkün değildir. Böyle durumlarda iterasyon yapılması gerekir.
NEWTON-RAPSON İTERASYON METODU:
f(x)=0 şeklinde bir fonksiyon tanımlı olsun. x’in değerini iterasyonla bulmak için
xi +1 = xi −
f ( xi )
f ' ( xi )
formülü kullanılır. İterasyona
f ' ( x) =
df ( x)
dx
(62)
f ( xi )
terimi yeterince küçük oluncaya kadar devam edilir. Burada xi
f ' ( xi )
başlangıç değeri, olması gerekene oldukça yakın seçilmeye çalışılırsa iterasyon çabuk sona erer. Başka
bir deyişle
f ( xi )
terimi çabuk küçülür.
f ' ( xi )
ÖRNEK:
2t − sin t = π sin ϕ
f (t ) = 2t − sin t − π sin ϕ = 0
df (t )
= 2 − cos t
dt
t nin başlangıç değeri
14.03.2004
19/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
2t − sin t = π sin ϕ
t=
π
2
sin ϕ
alınabilir.
ti +1 = ti −
2ti − sin ti − π sin ϕ
2 − cos ti
VB kodu olarak
Dim Phi as double,t as double,dt as double
Dim Pi as double
Pi=2*asin(1)
t= Pi*sin(Phi)/2
Do while dt<1 e –8
Dt=(2*t – sin(t)-Pi *sin(Phi)/(2- cos(t))
T=t- dt
Loop
BİRDEN ÇOK FONKSİYON OLMASI DURUMUNDA NEWTON-RAPSON İTERASYONU
x = f1 (u, v)
y = f 2 (u, v)
fonksiyonları tanımlı iken, bunların ters fonksiyonları,
u = g1 ( x, y )
v = g 2 ( x, y )
aranıyor olsun. Fonksiyonların karmaşıklığına bağlı olarak g1 ( x, y ) ve g 2 ( x, y ) fonksiyonlarını
cebirsel olarak bulmak mümkün olmayabilir.
Örneğin harita projeksiyonlarında, projeksiyon düzleminde kartezyen koordinatlar ile küre üzerinde
coğrafi koordinatlar arasında
x = f1 (ϕ , λ )
(63)
y = f 2 (ϕ , λ )
fonksiyonları tanımlıdır. Bu düz dönüşüm (forward transformation) olarak da adlandırılır. Ancak bazı
projeksiyonlar için bu fonksiyonların tersleri,
ϕ = g1 ( x, y )
λ = g 2 ( x, y )
(64)
analitik olarak bulunamaz. Bu ters dönüşüm (inverse transformation) olark adlandırılır.
Burada da Newton-Rapson iterasyonu jakobien matrisler yardımıyla uygulanabilir.
x = f1 (u, v)
y = f 2 (u, v)
(65)
olsun. Buradan sıfıra eşit bir fonksiyon vektörü ,
 f (u, v) − x 
F= 1
=0
 f 2 (u , v) − y 
(66)
şeklinde tanımlanabilir. Buna bağlı olarak jacobien matris,
14.03.2004
20/39
Taslak V.0
ANALİTİK KARTOGRAFYA
 ∂f1

J =  ∂u
∂f
 2
 ∂u
İ.Öztuğ BİLDİRİCİ
∂f1 
∂v 
∂f 2 

∂v 
(67)
şeklinde tanımlıdır. Aranan büyüklükleri tanımlayan vektör ;
u 
−1
x =   olmak üzere iterasyon, x i +1 = x i − J F
v 
(61)
şeklinde tanımlanabilir. Daha açık yazılması gerekirse,
 ∂f1
ui +1  ui   ( ∂u )u i
 v  =  v  −  ∂f
 i +1   i  ( 2 ) v
 ∂u i
∂f1 
)v
∂v i   f1 (ui , vi ) − x 

∂f  
( 2 )v i   f 2 (ui , vi ) − y 
∂v 
(
(68)
Burada ui ve vi için yaklaşık olarak bir başlangıç değeri seçmek gerekir. Seçilen değer aranan değere
ne kadar yaklaşık ise iterasyon o kadar kısa sürer.
ε 1 
−1
∆F = J F olmak üzere ∆F ≤ ε =  
ε 2 
İterasyona ε1 ≤ 10−8 ε 2 ≤ 10 −8 oluncaya kadar devam edilebilir. Buradaki 10-8 değeri aranan
hassasiyete göre sıfıra yakın bir değer olarak seçilir.
ÖRNEK PROBLEM: WINKEL TRIPEL PROJEKSİYONU
Projeksiyon eşitlikleri
1 2D
λ
cos ϕ sin + λ cos ϕ 0 )
x= (
2 C
2
(69)
1 D
sin ϕ + ϕ )
y= (
2 C
(70)
λ
D = arccos(cos ϕ cos )
2
C = 1 − cos 2 ϕ cos 2
(71)
λ
(72)
2
ϕ 0 = 50o 28'
Ters projeksiyon eşitlikleri
Analitik ters projeksiyon eşitlikleri mevcut değildir. Projeksiyon eşitlikleri çok karmaşık olduğundan
ters projeksiyon Newton-Rapson iterasyonu ile mümkündür.
1 2D
λ
cos ϕ sin + λ cos ϕ 0 ) − x = 0
f1 (ϕ , λ ) = (
2 C
2
1 2D
λ
cos ϕ sin + λ cos ϕ 0 ) − y = 0
f 2 (ϕ , λ ) = (
2 C
2
(73)
olmak üzere,
14.03.2004
21/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
∂f1 sin λ sin 2ϕ
λ
D
=
− 3 / 2 sin ϕ sin
4C
2
∂ϕ
C
∂f 1 1
= (
∂λ 2
∂f 2 1
= (
∂λ 8
λ
cos 2 ϕ sin 2
∂f 2 1
= (
∂ϕ 2
2 + D cos ϕ cos λ sin 2 ϕ + cos ϕ )
0
2
C 3/ 2
C
2 + D (1 − cos 2 λ ) cos ϕ + 1
2
C 3/ 2
C
C
(75)
λ
sin 2 ϕ cos
sin 2ϕ sin
(74)
(76)
λ
2 − D sin ϕ cos 2 ϕ sin λ )
C 3/ 2
(77)
İterasyon
∂f1
∂f
− f1 2
∂ϕ
∂ϕ
λi +1 = λi −
∂f1 ∂f 2 ∂f 2 ∂f1
−
∂ϕ ∂λ ∂ϕ ∂λ
∂f 2
∂f
− f2 1
∂λ
∂λ
= ϕi −
∂f1 ∂f 2 ∂f 2 ∂f1
−
∂ϕ ∂λ ∂ϕ ∂λ
f2
f1
ϕ i +1
(78)
-14
Kutup noktalarına ve ekvatora yaklaştıkça iterasyon adımı çok artmakta 10 incelikte iterasyon 200
adımı geçmektedir. Bu nedenle ϕ = 0 veya ϕ = 90o olması durumunda bu tür noktaların hesabı farklı
yapılmalıdır.
Ekvator üzerinde, y = 0 olur. y = 0 ise ϕ = 0 olur, λ ise ,
λ
λ
D = arccos(cos ϕ cos ) =
2
2
C = 1 − cos 2 ϕ cos 2
x=
λ
2
= sin 2
λ
2
1 2D
1 λ
1
λ
λ
(
cos ϕ sin + λ cos ϕ 0 ) = (
sin + λ cos ϕ 0 ) = λ (1 + cos ϕ 0 )
2 C
2
2 sin λ
2
2
2
2 x = λ (1 + cosϕ 0 )
λ=
2x
1 + cos ϕ 0
(79)
olarak analitik olarak bulunur.
Kutuplarda,
ϕ = 90o ise
14.03.2004
22/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
λ
π
D = arccos(cosϕ cos ) =
2
2
C = 1 − cos 2 ϕ cos 2
λ
2
=1
λ
1 2D
x= (
cosϕ sin + λ cosϕ 0 )
2 C
2
x=
1
λ cos ϕ 0
2
λ=
2x
cos ϕ 0
1 D
y= (
sin ϕ + ϕ )
2 C
y=
(80)
1 π π
π
( + )=
2 2 2
2
Kutuplarda, y=π/2 ise,
ϕ = 90o
λ=
2x
cos ϕ 0
(81)
şeklinde analitik olarak hesaplanabilir.
Orta meridyen üzerindeki noktaların irdelenmesi
λ = 0 ise, x = 0 olur,
bu durumda ,
1 D
y= (
sin ϕ + ϕ )
2 C
λ
D = arccos(cosϕ cos ) = ϕ
2
C = 1 − cos 2 ϕ cos 2
y=
λ
2
= sin 2 ϕ
1 ϕ
(
. sin ϕ + ϕ )
2 sin ϕ
y =ϕ
(82)
Özetle x = 0 ise,
λ = 0 ϕ = y şeklinde hesap yapılır.
Sonuç olarak,
1.
y = 0 x ≠ 0 ise, ϕ = 0 λ =
14.03.2004
2x
1 + cos ϕ 0
23/39
Taslak V.0
ANALİTİK KARTOGRAFYA
π
x ≠ 0 ise, ϕ = π / 2 λ =
2.
y=
3.
y ≠ 0 x = 0 ise, ϕ = y λ = 0
2
İ.Öztuğ BİLDİRİCİ
2x
cos ϕ 0
4. Yukarıdaki özel durumların dışında iterasyon yapılır.
Şeklinde problem çözülmelidir.
CBS VERİ YAPILARI
TEMEL KARTOGRAFİK MODEL ÇEŞİTLERİ
Genel Bilgi
Mekansal veriler analiz için harita olarak bilinen iki boyutlu modeller yardımıyla temsil edilirler
(sunulurlar). Harita ayrıca daha sonra yapılacak görsel yorumlama, manuel güncelleme, ölçme ve
diğer işlemler için klasik anlamda bir mekansal veri depolama aracıdır.
Mekansal veriyi sayısal olarak depolamak için iki veri modeli vardır. Vektör ve mozaik (tesellation)
modeller. Vektör veri modelinde temel mantıksal birim mekansal bir objeyi temsil eden çizgidir. Çizgi
boyunca x,y nokta konumlarından oluşan bir dizi, tek bir veri kaydını oluşturur. Vektör yapı da
noktalar uzunluğu sıfır olan çizgiler olarak temsil edilir. Ek öznitelikler, tanımlayıcı bilgiler objeyi
tanımlayan veri kaydı ile birlikte saklanabilir (Tabaka, renk, çizgi tipi gibi bilgiler). Öte yandan
alansal (poligonal) ağ yapısında (mozaik) temel mantıksal birim, bir hücre ya da ağdaki birim
yüzeydir. Verilen bir konum ile ilgili ek öznitelikler bu konuma ait veri kaydı ile birlikte saklanabilir.
Genel olarak mozaik modelin kullanımı raster veya grid model şeklindedir. Bu bölüm hakkında arıntılı
bilgiler için Pequet [1991] den yararlanılabilir.
14.03.2004
24/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
VEKTÖR VERİ MODELLERİ
Spagetti Modeli
Coğrafi veriler için en basit vektör veri modeli, kağıt haritanın çizgi çizgi direkt dönüşümüdür. Şekilde
görüldüğü gibi harita üzerindeki her varlık sayısal dosyada bir kayıt haline dönüşür. Bu kayıtlar x,y
koordinat dizileri şeklindedir. Bu yapı çok basit ve kolay anlaşılabilir. Çünkü temel olarak harita
kavramsal bir model olarak kalmaktadır ve xy koordinat dosyası bir veri yapısı biçimindedir. İki
boyutlu harita modeli bir listeye dönüşmektedir. Başka bir deyişle bir boyutlu bir modele
dönüşmektedir. Harita üzerindeki tüm objeler mekansal olarak tanımlı olmasına rağmen hiçbir
mekansal ilişki mevcut değildir. Bu nedenle bu şekilde oluşturulmuş bir dosya genel olarak “spagetti”
dosya olarak nitelendirilir. Bu şekilde kaydedilmiş bir poligon, poligonun kenarını tanımlayan (kapalı)
bir x,y koordinat dizisidir. Birbiri ile komşu olan poligonlarda ortak sınırın noktaları iki kez kaydedilir.
(Bir kez birinci poligonda bir kez ikinci poligonda olmak üzere)
Spagetti model mekansal veri analizi çeşitlerinin pek çoğu için yetersizdir. Çünkü orijinal analog
dokümanda belirsiz (gizli) olarak mevcut pek çok mekansal ilişki ancak hesaplama ile belirlenebilir.
Buna rağmen kaydedilmiş mekansal ilişkilerin eksikliği çizim açısından önemsizdir. Amaç orijinal
analog verinin çoğaltılması ise, ya da başka bir deyişle amaç mekansal analizden çok çizim ise
(çizimin otomatize edilmesi) spagetti model yeterlidir.
Spagetti yapı genel amaçlı CAD yazılımlarında bu nedenle çok yaygın olarak kullanılır. Çünkü burada
amaç CAD’in anlamından da anlaşılacağı üzere çizimdir. (Computer Aided Design)
Spagetti modelde düzeltmelerde ya da güncelleştirmelerde, grafik çıkış üzerinde ya da ekranda görsel
olarak kontrol yapılması zorunludur.
Sakıncalarına rağmen spagetti model kaydedilen ek öznitelikler sayesinde yaygın olarak kullanılmaya
devam edilmektedir. Örneğin MAPINFO temelde spagetti modele dayanır. Ancak her obje veri
tabanında bir kayda karşılık gelir ve veri tabanına kolonlar eklenerek istenildiği kadar öznitelik
eklenebilir. Poligon objelerin ortak sınırlarının iki kez sayısallaştırma zorluğuna karşı çeşitli
kolaylıklar sağlanmıştır (Sayısallaştırma kolaylığı). Bunun yanında ortak sınırlarda sayısallaştırma
14.03.2004
25/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
hatalarının tolerans dahilinde otomatik olarak düzeltilme imkanı da vardır.
AutoCAD MAP de ise spagetti ve topolojik model birlikte kullanılmaktadır. Temel yapı spagetti olup,
istenirse topolojik yapıya (istenen objeler için) geçilebilmektedir.
Topolojik Model
Objeler arasındaki mekansal ilişkileri koruyan en tanınmış model, komşuluk bilgilerinin açık olarak
saklandığı topolojik modeldir. Basitleştirilmiş bir topolojik model örneği şekilde görülmektedir.
Burada temel mantıksal birim doğru parçasıdır. Bir doğru parçası, bir diğer çizgi ile kesişim
noktasında ya da çizginin kendi içerisindeki bir noktada (uç nokta) biter, ya da başlar. Her bir doğru
parçası iki uç noktasının koordinatı ile kaydedilir. Ek olarak doğru iki tarafında bulunan poligonun
tanımlayıcı bilgisi (ID si) ya da adı da kaydedilir. Bu şekilde, temel mekansal ilişkiler korunmuş olur
ve mekansal analiz için kullanılabilir. Ayrıca bu topolojik bilgi, nokta, çizgi ve poligon tipli objelerin
bilgi tekrarı olmaksızın tanımlanmasını sağlar. Bu özellikle komşu poligonların tanımlanması
açısından yararlıdır. Şekilden de görüldüğü gibi, her bir doğru parçası bir kez kaydedilir. Poligonlar
doğru parçalarındaki sağ/sol bilgilerinden kolayca elde edilebilir.
GBF/DIME modeli (Geographic Base File /Dual İndependent map Encoding) bu topolojik düşünceye
dayalı en çok tanınan modeldir. Bu model US Census Bureau (Amerikan Nüfus İdaresi bizdeki DİE
gibi) tarafından nüfus sayımlarının otomatize edilmesine yönelik olarak 1969 da geliştirilmiştir.
Adres kodlama rehberi olarak geliştirilen ilk GBF/DIME dosyaları 1970 sayımı için geliştirilmiş, 1980
sayımında tekrar kullanılmıştır.
14.03.2004
26/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
Amerikan Nüfus İdaresinin bu çalışması dünyada GIS konusunda ilk çalışmalardan biri olup, hatta
GIS’ın başlangıcı olarak da düşünülebilir.
Bu dosya yapısında nokta koordinatı tekrarını da önlemek için node=düğüm dosyası da tutulur.
Koordinatlar burada kayıtlıdır. Doğru parçalarının ise başlangıç ve bitiş düğüm noktaları ile sağ/sol
poligonları kaydedilir.
Spagetti ve topolojik modelin genel olarak bilinen bir sorunu; kaydedilmiş objelerin herhangi bir
sıralaması olmamasıdır. Topolojik modelde belli bir doğru parçasını aramak için, tüm dosyanın
taranması gerekir. Aynı şekilde bir poligonu oluşturan doğru parçalarının da bulunması için tüm dosya
taranmalıdır.
Hiyerarşik Vektör Modeli
Bu model topolojik modelde arama güçlüklerini aşmak üzere tasarlanmıştır. Burada noktalar ve
çizgiler mantıksal bir hiyerarşi içinde kaydedilir. Poligonlar çizgisel objelerden, çizgisel objeler ise
nokta konumlarını tanımlayan x,y koordinat dizilerinden oluştuğundan dolayı bir obje tipini diğeriyle
ilişkilendirecek şekilde açık olarak tanımlı bağlantılar bu modelde kaydedilir.
Bu bağlantılar (linkler) aynı zamanda direkt arama-bulma mekanizması sağlar. Hiyerarşik vektör
modellerinin topolojik bilgileri de kapsayabildiğinin burada altını çizmek gerekir. Hiyerarşik vektör
modelinin ilk örneklerinden biri POLYVRT dir. (POLYgon conVeRTer) POLYVRT Peveler ve
Chrisman tarafından 1970’lerin sonlarında Harvard Labaratory For Computer Graphics de
uygulanmıştır.
POLYVRT de zincir terimi temel çizgisel objeyi tanımlamak için kullanılır. Bir zincir, bir düğüm
noktasında (node) başlayan ve bir başka düğüm noktasında biten, doğru parçaları dizisi olarak
tanımlanır.
Bu tanıma bağlı olarak, bir düğüm noktası iki zincirin kesişim noktasıdır. Her bir zinciri tanımlayan
nokta koordinatları zincir kaydının bir parçası olarak kaydedilmez. Bunun yerine koordinatların ayrı
bir noktalar dosyasındaki başladığı yeri gösteren bir pointer (gösterge) kaydedilir. Benzer şekilde
poligon dosyasında poligonları oluşturan zincirleri gösteren pointerlar kayıtlıdır. Zincirlerin
GBF/DIME da olduğu gibi yönü vardır, sağ ve sol poligonları da kayıtlıdır. Eğer bir zincirin bir
tarafında çalışma alanı bitiyorsa, ya da o tarafında bir poligon yoksa burası “sıfır poligonu”olarak
tanımlanır.
Hiyerarşik model arama-bulma ve değişiklik yapma açısından diğer modellere göre avantajlar sağlar.
Temel obje tiplerinin kolayca ayırt edilmesi mümkündür (poligonlar, çizgiler, noktalar ve düğüm
noktaları).
Örneğin birbirine komşu poligonları belirlemek için sadece verilerin poligon ve zincir kısımlarında
işlem yapmak gerekir, alan ve uzunluk hesaplanmayacaksa koordinat bilgisine ulaşmaya gerek yoktur.
Bu modeldeki en önemli sakınca, çok sayıda pointer bilgisinin verilere eklenmesidir. Bu daha fazla
veri anlamına gelir. Ancak veri artışından çok pointerların güncel tutulması sorun oluşturur.
Pointerlardaki hatalar yapının tamamen bozulmasına yol açacak sorunlara neden olabilir. Ayrıca bu
yapının ilk kez kurulması çok fazla hesaplama yükü getirir.
TIGER dosya yapısı (Topologically Integrated Geographic Encoding and Referencing) hiyerarşik
vektör modelin bir diğer örneğidir.
Bu dosya yapısı GBF/DIME deki arama-bulma eksikliğini aşacak şekilde 1990 nüfus sayımı için yine
Amerikan Nüfus İdaresi tarafından oluşturulmuştur.
HANOVER ÜNİVERSİTESİ KARTOGRAFYA ve JEOINFORMATİK ENSTİTÜSÜ DBB
VERİ MODELİ
Hanover Üniversitesi Kartografya ve Jeoinformatik Enstitüsü tarafından geliştirilen ve burada
geliştirilen çeşitli yazılımlarda kullanılan veri tabanı yapısı hiyerarşik veri tabanı olarak nitelendirilir
ve temel olarak üç tablodan oluşur.
14.03.2004
27/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
1. Obje dosyası
2. Çizgi dosyası
3. Grid dosyası
Obje dosyasında bulunan kolonlar (alanlar)
0. Kayıt no: Sıra ile artan obje kayıt numarası
1. Geçerlilik bilgisi: 1 ise geçerli –1 ise iptal edilmiş.
2. Öznitelik
3. Öznitelik
4. Öznitelik
5. Öznitelik
6. Öznitelik
7. Öznitelik
8. Öznitelik
9. Objenin başladığı çizgi dosyasındaki nokta
10. Objenin bittiği çizgi dosyasındaki nokta
11. –
12. –
13. –
14. –
15. –
16. Objenin kapalı (alansal) ya da açık (çizgisel) olma bilgisi (1 kapalı 0 açık)
Çizgi dosyası yapısı
0. Kayıt no
1. Grid içinde bir önceki nokta
2. Nokta tanıtıcı bilgisi
3. Nokta numarası
4. x
5. y
6. z
7. Ait olduğu obje numarası (Kayıt No)
Grid listesi (çizgi dosyasının ilk 100 100 satırı içinde yer alır)
1. Grid bölge no
2. Nokta no (grid bölgesi içindeki en son eklenen nokta no)
14.03.2004
28/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
...
1024
...
33
34
....
64
1
2
...
32
Objelerin içinde olduğu bölge 1024 (32x32) parçaya (grid bölgesi) bölünür. Burada amaç objelerin
yerlerini onları oluşturan noktalara göre belirlemektir. Örneğin 33 nolu grid bölgesindeki değer sıfır
ise orada hiç nokta yok demektir. İçinde bir tamsayı değer var ise bu o grid içinde en son yer alan
nokta numarasını ifade eder. O noktanın kaydında (çizgi listesinde) bir önceki nokta kolonundaki (1
nolu kolon) değer sıfır ise o grid bölgesinde başka değer yok demektir. Yok burada bir değer var ise
bu grid içindeki bir önceki noktayı gösterir. Bu şekilde her defasında bir önceki noktaya bakılarak bir
önceki nokta numarası sıfır oluncaya kadar araştırma yapılırsa ilgili grid bölgesindeki tüm noktaların
listesi elde edilir.
Bu veri tabanı yapısı ilk bakışta ilişkisel bir veri tabanı gibi görülmektedir. Ancak grid dosyası ile
eklenen özellikler nedeniyle hiyerarşik veri tabanı olarak tanıtılmıştır.
GENEL TOPOLOJİK YAPI VE ACAD MAP YAZILIMINDA TOPOLOJİ
Üç tür topoloji vardır.
1. Düğüm Topolojisi: Noktasal objeler için
2. Ağ topolojisi(Network) :Çizgisel objeler için tanımlanır.
3. Poligon topolojisi : Alansal objeler için
Topolojinin Temel Elemanları
•
Node (Düğüm noktaları)
•
Link (Çizgiler – bağlantı elemanları)
•
Centroid(poligonların merkezleri)
Ağ Topolojisi
Yol ağı olabilir, kanalizasyon ağı olabilir.
Yapılabilecek analizler
•
Shortest Path(En kısa yol)
•
Trace (yayılma)
•
Buffer
Poligon Topolojisi
Kapalı objeler için kullanılır. Overlay analizleri yapılır.
Node Topolojisi
Node topolojisi sadece noktalardan oluşur. Buffer zone oluşturulabilir. Poligon topolojisi ile birlikte
analiz edilebilir. Üç topoloji birbiriyle analiz edilebilir.
14.03.2004
29/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
düğüm (node)
düğüm (node)
bağlantı (link)
merkez (centroid)
bağlantı (link)
ağ topolojisi
poligon topolojisi
Topoloji Amaçlı Açılan Tablolar
Node Topolojisi için
Tablo adı:
TPMNOD_TOPADI
Kolon
ID
Tanıtıcı kod numarası
Network Topolojisi
Tablo adı:
TPMLINK_TOPADI
Kolonlar :
ID
Kod Numarası
START_NODE
Başlangıç Düğüm
END_NODE
Bitiş Düğüm
DIRECTION
Yönü
DIRECT_RESISTANCE
Uzunluk/başlangıçtan bitişe zorluk derecesi
REVERSE_RESISTANCE
Uzunluk/bitişten başlangıca zorluk derecesi
Tablo adı:
TPMNODE_TOPADI
Kolonlar :
ID
RESISTANCE
Zorluk derecesi
Poligon Topolojisi
Tablo adı:
TPMCNTR_TOPADI
Kolonlar
ID
AREA
PERMETER
14.03.2004
30/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
LINKS_QTY
Tablo adı:
TPMLINK_TOPADI
ID
START_NODE
END_NODE
DIRECTION O BIDIRECT 1 FROM TO –1 TO FROM
DIRECT_RESISTANCE
REVERSE_RESISTANCE
LEFT_POLYGON
RIGHT_POLYGON
Tablo adı:
TPMNODE_TOPADI
Kolonlar:
ID
RESISTANCE
Node ve Vertex kavramları:
Linkleri oluşturan polylineları oluşturan noktalar vertexlerdir. Bir polyline’nın ilk ve son noktası node
olabilir.
Topolojik anlamı gereği bir nodedan en az üç ışın çıkmalıdır. (üç polyline çıkmalı) Eğer üç ışın
çıkmıyorsa bu node pseudo node olarak adlandırılır. Pseudo node’lar çizgi temizleme (Line Cleaning)
işleminde ortadan kaldırılabilir.
ÇİZGİ TEMZİLEME (LINE CLEANING) İŞLEMLERİ
Sağlıklı bir topoloji oluşturulması için topoloji öncesi çeşitli sayısallaştırma hatalarının otomatik
olarak temizlenmesi için çizgi temizle işlemi gereklidir. Sayısallaştırma hataları dışında, topolojiyi
bozabilecek tarzdaki sayısallaştırmalar da düzeltilebilir. (örneğin parçalara ayrılması gereken ama
ayrılmamış polylinelar)
Çizgi Temizleme İşlemleri (ACAD)
1. Üst üste sayısallaştırılmış objelerin ayıklanması
2. Çok kısa parçaların atılması
3. Kesişen objelerin ayrılması/parçalanması
4. Undershootların düzeltilmesi
5. Node Cluster düğüm noktalarının bir araya toplanması
6. Pseude Node ların kaldırılması
7. Overshootların düzeltilmesi
8. Çizgi genelleştirmesi
14.03.2004
31/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İşlem
İ.Öztuğ BİLDİRİCİ
Temizleme öncesi
Temizleme sonrası
Çift (çakışık) objelerin silinmesi
Kısa parçaların kaldırılması
Kesişen objelerin kopartılması,
bu şekilde düğüm noktası
oluşturulması
Eksiklerin (Undershoot)
tamamlanması suretiyle düğüm
noktası oluşturulması
Düğüm noktalarının düzeltilmesi
Pseudo (yalancı-sözde) düğüm
noktalarının kaldırılması
Fazlalıkların (overshoot)
kaldırılması
MEKANSAL ANALİZLER VE “POINT IN POLYGON”
TESTİ1
Coğrafi Bilgi Sistemlerinde mekansal veri analizinde point in polygon testi oldukça önemli bir yere
sahiptir. Söz konusu test ile bir noktasal objenin bir alansal objenin (poligonun) içinde olup olmadığı
belirlenir. Point in polygon testi, poligonu (alansal objeyi) oluşturan kenarlar ile, test edilen nokta ve
poligonun dışındaki bir noktanın oluşturduğu doğru parçasının (test doğru parçası) kesişimine dayanır.
Test doğru parçası ile poligonun kesişim sayısı tek ise, nokta poligonun içinde, değilse nokta
poligonun dışındadır. Poligonun şekli ne kadar karmaşık olursa olsun, bu basit test yöntemi doğru
1
Bu bölüm Bildirici [2002] den alınmıştır.
14.03.2004
32/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
sonuç verir. Poligonun şekline bağlı olarak testte iki doğru parçasının kesişim problemi önem kazanır.
Kesişim problemi, programlama açısından ilginç bir problemdir. Test işleminde aranan sadece iki
doğru parçasının kesişip kesişmediğidir. Kesişim noktasının koordinatları ise test açısından gerekli
değildir. Kesişme hesaplamaları box testi olarak adlandırılan bir programlama tekniği ile
hızlandırılabilir.
Bu çalışmada, box kavramı ve box testi, iki doğrunun kesişim problemi ve point in polygon testi teorik
ve programlama tekniği açısından incelenecektir. Önerilen yaklaşımların uygulandığı FORTRAN
dilinde yazılmış program parçacıkları (subroutine) da ek olarak verilmiştir.
İKİ DOĞRU PARÇASININ KESİŞİM PROBLEMİ
Geometrik olarak iki doğru birbirine paralel değilse kesişir. Ancak CBS, bilgisayar destekli çizim ve
genel olarak grafik programlamada iki doğrunun değil iki doğru parçasının kesişimi önemlidir. İki
doğrunun kesişiminin genel ifadesi,
Birinci doğru Ax + By + C = 0
İkinci doğru Ex + Fy + G = 0 olmak üzere,
 xs  (GB − FG ) (FA − EB )
 y  = (CE − AG ) (FA − EB )

 s 
(83)
İki doğru paralel ise, FA-EB=0 olur. Bu durumda kesişim mevcut değildir.
Yukarıdaki gibi lineer denklem formu ile çözüm yapılırsa önce kesişim noktası hesaplanır, sonra
kesişim noktasının iki doğrunu üzerinde olup olmadığı araştırılır. Çeşitli özel durumların dikkate
alınmasını gerektiren bu yaklaşım yerine, programlama açısından daha kullanışlı olan ve nokta
koordinatlarına dayanan aşağıdaki yöntem izlenebilir. Birinci doğru parçasının başlangıç ve bitim
noktaları i(xi,yi) ve j(xj,yj), ikinci doğru parçasının başlangıç ve bitim noktaları k(xk,yk) ve l(xl,yl) olsun
(Şekil 4).
i
l
s
j
k
Şekil 4: İki doğru parçasının kesişimi
Doğru parçalarının paralel olup olmadığını belirlemek için d parametresi hesaplanır.
d = (x j − xi )( yk − yl ) − ( xk − xl )( y j − yi )
(84)
d=0 ise doğru parçaları paralel olup kesişim hesaplanamaz. d≠0 ise p1 ve p2 parametreleri hesaplanır.
p1 =
p2 =
(xk − xl )( yi − yk ) − (xi − xk )( yk − yl )
d
(xi − xk )( y j − yi ) − (x j − xi )( yi − yk )
(85)
d
0 ≤ p1 ≤ 1 ve 0 ≤ p2 ≤ 1 ise kesişim noktası doğru parçalarının üzerindedir. Kesişim noktasının
koordinatları,
14.03.2004
33/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
xs = xi + p1 (x j − xi )
ys = yi + p1 ( y j − yi )
(86)
Kesişim problemi programlama tekniği açısından düşünülürse reel sayılar olan nokta koordinatlarının
hangi değişken tipi ile tanımlandığı önemlidir. Double precision (8 byte) değişken tipi kullanıldığında
ondalık noktanın yerinden bağımsız olarak 14 rakam anlamlıdır. Sekiz değişik değerden hesaplanan d
parametresinin (2) doğruların paralel olması durumunda tam olarak sıfır olması beklenemez. Daha da
açık olarak d parametresinin nadiren sıfır çıkacağı, genellikle sıfıra çok yakın bir değer alacağı
söylenebilir.
Doğru parçalarının paralelliğini belirlemek için bir hesap hassasiyeti belirlemek gerekir. Örneğin d
parametresi altıncı basamağına kadar sıfır ise sıfır kabul edilebilir. Bu durumda yazılacak kod
aşağıdaki gibi olabilir:
if
abs(d)<1e-6 then …
Bazı hallerde sadece kesişimin var olup olmadığını belirlemek gerekir. Bu durumda önce paralellik
incelenir, sonra p1 ve p2 parametreleri hesaplanarak kesişimin doğru parçaları üzerinde olup olmadığı
belirlenir. Kesişim noktasının koordinatları hesaplanmaz. Örneğin point in polygon testinde sadece
kesişimin var olup olmadığını bilmek önemlidir.
p1 ve p2 parametrelerinin geometrik anlamı:
•
p1=0 ise, kesişim noktası i noktası ile çakışık
•
p1=1 ise, kesişim noktası j noktası ile çakışık
•
p2=0 ise, kesişim noktası k noktası ile çakışık
•
p2=1 ise, kesişim noktası l noktası ile çakışık
Yine programlama tekniği açısından p1 ve p2 parametrelerinin tam olarak sıfır ya da bir olması
beklenemez. Bunun yanında sayısallaştırma hataları vb gibi nedenlerle parametrelerin sıfırdan çok az
küçük ya da birden çok az büyük olmaları durumunda kesişim noktasının doğru parçalarının ilgili uç
noktaları ile çakışık olarak kabul edilmesi gerekebilir. Uygun seçilecek bir ε tolerans değerine göre
parametrelerin irdelenmesi,
− ε ≤ p1 ≤ 1 + ε ve − ε ≤ p2 ≤ 1 + ε
(87)
biçiminde yapılabilir. Ancak p1 ve p2 parametreleri birer orantı olup bir uzaklık ifade etmezler. Bu
bakımdan ε tolerans değerinin seçimi çok kolay değildir. Bu noktada şöyle bir yaklaşım önerilebilir.
Tolerans değeri kabul edilebilir bir yuvarlatma hatası olarak alınır, daha sonra koordinatları
hesaplanan kesişim noktasının uç noktalarına olan uzaklıklarına bakılıp bu noktalarla çakışık kabul
edilip edilemeyeceğine bakılır.
BOX TESTİ
Grafik programlama tekniğinde box testi olarak bilinen yöntemle, çizgisel ve alansal objelerin birbiri
ile olan yakınlığı irdelenir. Kutu olarak da Türkçeleştirilebilecek box kavramı çizgisel ya da alansal
objenin dışına çizilen, objeyi kapsayan, koordinat eksenlerine paralel bir dikdörtgen objeyi ifade eder.
Box yardımıyla sadece mantıksal karşılaştırma yaparak iki çizgisel objenin kesişme olasılığı olup
olmadığı, iki alansal objenin ise birbirini örtme olasılığının olup olmadığı belirlenebilir.
Box CBS literatüründe MBR (Minimum Bounding Rectangle) olarak da isimlendirilmektedir.
Şekil 5'de de görüldüğü gibi, box koordinatları ilgili objenin maksimum ve minimum koordinat
değerlerinden elde edilebilir. i-j ve k-l doğru parçalarının kesişme olasılığını irdeleme durumunda box
testi (Şekil 6),
if max(yi,yj)< min(yk,yl) AND max(xi,xj)< min(xk,xl) then
>> Kesişme mümkün değil
else
14.03.2004
34/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
>> Kesişme mümkün
end if
şeklinde kodlanabilir. Yapılan bu karşılaştırmalar sonucu kesişme mümkün değilse kesişimle ilgili hiç
bir hesaplamaya gerek yoktur [Cromley, 1992; Bildirici, 2000]. Benzer şekilde alansal objelerin de
birbirini örtme olasılığının olup olmadığı test edilebilir.
Box
Şekil 5: Box kavramı
j
j
k
k
i
l
i
l
Box'lar kesişmiyor
Box'lar kesişiyor
Şekil 6: Box testinin geometrik anlamı
POINT IN POLYGON TESTİ
"Point in Polygon" testi, bir noktanın bir alansal objenin içinde olup olmadığının belirlenmesi
problemidir. Bir noktanın bir alansal objenin (kapalı şeklin) içinde olup olmadığını belirlemek için
kapalı şeklin kesinlikle dışında olan bir yardımcı noktadan yararlanılır. Araştırılan nokta m, yardımcı
nokta n olmak üzere m-n doğru parçasının, şekli kaç defa kestiği belirlenir (Şekil 7). Kesişim sayısı
tek ise nokta şeklin içinde, çift ise dışındadır [Cromley, 1992]. Point in polygon testi kendi içinde son
derece basittir. Ancak arkasında programlama açısından çok da basit olmayan kesişim problemi vardır.
Burada kesişim noktasının koordinatları ile değil yalnızca kesişimin var olup olmadığı ile
ilgilenilmektedir.
Kesişim sayısının araştırılmasından önce, m noktasının P poligonu içinde olup olamayacağının
incelenmesi gerekir (Şekil 7). m noktası poligonu oluşturan box'ın içinde değilse poligonun da içinde
olamaz. Box'ın sol alt köşe koordinatları poligonu oluşturan nokta koordinatlarının en küçükleri, sağ
üst köşe koordinatları ise şekli oluşturan koordinatların en büyükleri olduğuna göre;
if min(xi)> xm > max(xi)AND min(yi)> ym > max(yi)
şartı sağlanmıyorsa, nokta poligonun içinde olamaz. Şart sağlanıyorsa kesişim hesaplarına geçilebilir
[Bildirici, 2000].
14.03.2004
35/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
m
Poligon
P
Box
n
Şekil 7: Poligon içinde olup olmadığı araştırılan nokta (p), yardımcı nokta (n) ve box
Yardımcı n noktasının koordinatları, poligonu oluşturan box’dan yararlanarak aşağıdaki gibi
hesaplanabilir:
xn = min( x ) − (max( x ) − min( x ))
(88)
y n = min( y ) − (max( y ) − min( y ))
(88) eşitliği ile n noktasının kesin olarak poligonun dışında olması sağlanabilir. Uzakta bir n noktası
seçme yerine eksenlerden birine paralel bir yardımcı doğru da seçilebilir [Cromley, 1992].
Poligonu oluşturan kenar sayısı kadar kesişim hesabı yapılarak, kesişme sayısı belirlenmek
zorundadır. Bu aşamada da bölüm 3 de değinildiği gibi kesişim öncesi box testi uygulanarak (Şekil 6),
m-n doğrusu ile ilgili kenarın kesişme olasılığı var ise d (84), parametresi ile paralellik araştırılır.
Paralel olma durumu yok ise p1 ve p2 (85) parametreleri hesaplanır. Eğer,
0 > p1 > 1
VE
0 > p2 > 1
(89)
şartı sağlanıyorsa, kesişim var, aksi halde yoktur. Kesişim noktasının koordinatlarına ihtiyaç
olmadığından hesaplama bu noktada kesilir, kesişim sayısı bir artırılır ve bir sonraki kenara geçilir.
Poligonu oluşturan tüm kenarlar için kesişim olup olmadığı araştırıldıktan sonra, toplam kesişim sayısı
tek ise nokta poligonun içinde, çift ise değildir. Bu noktada bir üçüncü olasılık noktanın poligonu
oluşturan kenarların birinin üzerinde olmasıdır. (89) bağıntısına göre nokta herhangi bir kenar
üzerinde ise ya da nokta poligonu oluşturan noktalardan biri ile çakışık ise noktanın poligon dışında
olduğu kararı verilmektedir. Çünkü nokta kenarlardan biri üzerinde ise p1 ya da p2 sıfıra ya da bire eşit
olur. Nokta poligonu oluşturan noktalardan biri ile çakışık ise hem p1 hem de p2 sıfıra ya da bire eşit
olur. Bu durumlarda nokta poligonun içinde kabul edilecekse (89) bağıntısı aşağıdaki gibi olmalıdır.
0 ≥ p1 ≥ 1
VE
0 ≥ p2 ≥ 1
(90)
p1, p2 ve d parametreleri reel sayılar olduğundan, değişken tipi olarak double precision kullanılması
gerekir. Ancak bu şekilde tanımlanan değişkenlerin tam olarak sıfıra ya da bire eşit olmaları
beklenemez. Sıfıra ya da bire eşit olma (67) bağıntısındaki mantık ile yapılmalıdır. Buradaki ε
parametresi dikkatli seçilmelidir. Buradaki parametreler uzunluk değil, orantıdır. Örneğin p1
parametresinin birden farkı, kesişim noktasının kenarlardan birine ne kadar yaklaştığı (uzaklık olarak)
hakkında bir fikir vermez.
p1 ve p2 parametreleri uygun şekilde test edilerek point in polygon testi sonucu, nokta içerde, nokta
poligon kenarı üzerinde ve nokta dışarıda olmak üzere üç değişik sonuç da elde edilebilir.
Box, kesişim ve point in polygon algoritmasının uygulanması konusunda Fortran dilinde kodlanmış üç
program parçacığı ek olarak verilmiştir.
14.03.2004
36/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
TARTIŞMA
Point in polygon testi, Coğrafi Bilgi Sistemlerinde mekansal sorgulama ve analizde önemlidir.
Algoritma kendi içinde programlama olarak basittir. Ancak algoritma, programlama açısından ilginç
özellikleri olan iki doğru parçasının kesişimine dayanmaktadır. Bu çalışmada önce kesişim problemi
irdelenmiş, daha sonra testin dayandığı algoritma programlama tekniği açısından tartışılmıştır. Ek
olarak her iki problemin çözümü için Fortran dilinde kodlanmış program parçacıkları verilmiştir.
PROGRAM KODLARI
c***************BOX BELIRLEME*******************************
subroutine cg_box(xmin,ymin,xmax,ymax,x,y,pkt_anz,rnull)
c******************Decalarations****************************
implicit
none
integer*4
i,pkt_anz
real*8
xmin,ymin,xmax,ymax,rnull
real*8
x(pkt_anz),y(pkt_anz)
c******************Program**********************************
xmin=1.d09
ymin=1.d09
xmax=0.d0
ymax=0.d0
c
do i=1,pkt_anz
if(x(i).gt.xmax) xmax=x(i)
if(x(i).lt.xmin) xmin=x(i)
if(y(i).gt.ymax) ymax=y(i)
if(y(i).lt.ymin) ymin=y(i)
end do
xmin=xmin-rnull
ymin=ymin-rnull
xmax=xmax+rnull
ymax=ymax+rnull
100
end
c******************KESISIM*********************************
logical function cg_int2(xi,yi,xj,yj,xk,yk,xl,yl,p1,p2)
c***********************************************************
c 1. dogru i,j
c 2. dogru k,l
c p1 0 ile 1 arasinda ise kesisim 1. dogru parcasi uzerinde
c p2 0 ile 1 arasinda ise kesisim 2. dogru parcasi uzerinde
c kesim varsa true yoksa false (kesim uzantida ise yine false)
c kesim noktası noktalardan biri ile çakışık ya da kenarlardan biri
c uzerinde olsa da true
c
c Oztug Bildirici 12/2002
c
c************************Declarations**********************
implicit none
real*8
xi,yi,xj,yj,xk,yk,xl,yl
real*8
a1, a2,b1, b2,c1, c2,d,p1, p2
real*8
r_null
parameter (r_null=1.d-4)
c*****************************Program**********************
a1 = xj - xi
a2 = yj - yi
b1 = xk - xl
b2 = yk - yl
c1 = xi - xk
c2 = yi - yk
d = a1*b2 - a2*b1
c ... paralel mi?
if( dabs(d) .lt. r_null) then
cg_int2=.false.
goto 100
end if
c kesim noktasi varmi?
p1 = ( b1*c2 - b2*c1 ) / d
p2 = ( c1*a2 - c2*a1 ) / d
if(dabs(p2).le.1.d-8) p2=0.d0
cg_int2=p1.ge.0.d0.and.p1.le.1.d0
*
.and.p2.ge.0.d0.and.p2.le.1.d0
100
end
c******************POINT IN POLYGON************************
14.03.2004
37/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
logical function cg_pip(x,y,n,xp,yp)
c******************Declarations****************************
implicit none
integer*4
i,j,n,schnitte
real*8
x(n),y(n),xp,yp,xr,yr
real*8
xmin,ymin,xmax,ymax,rnull,p1,p2
parameter
(rnull=1.d-4)
c External fuct
logical
cg_int2
c******************Program*********************************
schnitte=0
c box hesapla..
call cg_box(xmin,ymin,xmax,ymax,x,y,n,rnull)
xr=2.d0*xmax-xmin
yr=2.d0*ymax-ymin
if(xp.ge.xmin.and.yp.ge.ymin.and.
*
xp.le.xmax.and.yp.le.ymax) then
do i=1,n
if(i.eq.n)then
j=1
else
j=i+1
end if
if(dabs(x(i)-xp).le.rnull.and.dabs(y(i)-yp).le.rnull.or.
*
dabs(x(j)-xp).le.rnull.and.dabs(y(j)-yp).le.rnull) then
cg_pip=.true.
goto 100
end if
if(cg_int2(x(i),y(i),x(j),y(j),xp,yp,xr,yr,p1,p2)) then
if(p1.ge.0.d0.and.p1.le.1.d0.and.p2.eq.0.d0) then
cg_pip=.true.
goto 100
end if
schnitte=schnitte+1
end if
end do
cg_pip=(schnitte.gt.0.and.mod(schnitte,2).ne.0)
else
cg_pip=.false.
end if
100
end
AREA IN AREA TESTİ
Area in Area (alan içinde alan) testi Point in Polygon testinin bir uygulamasıdır. Bu testte
poligonlardan birinin oluşturan noktalar sıra ile diğer poligonla Point in Polygon testine tabi tutulur.
En az bir nokta diğer poligonun içinde ise poligonlar kesişiyor, tüm noktalar içinde ise poligon
poligonun içinde demektir.
Bu testten önce box testi yapılarak araştırılacak poligonların kesişme ya da birbirinin içinde olma
durumları ortaya çıkacak kadar yakın olup olmadıkları irdelenmelidir. Eğer box’lar kesişmiyorsa test
yapılmasına gerek kalmaz.
KAYNAKLAR
Bildirici, İ.Ö., 2002, Mekansal Veri Analizinde Point in Polygon Testi, TUJK 2003 Yılı Bilimsel
Toplantısı: CBS ve Jeodezik Ağlar, 24-25-26 Eylül 2004, 209-214.
Bildirici, İ.Ö., 2003, Numerical Inverse Transformation for Map Projections, Computers &
Geosciences (29), 1003-1011.
Bildirici, İ.Ö., 2000, 1: 1000-1: 25 000 Ölçek Aralığında Bina ve Yol Objelerinin Sayısal Ortamda
Kartografik Genelleştirmesi, Doktora Tezi, İTÜ Fen Bilimleri Enstitüsü, İstanbul.
Cromley, R.G., 1992, Digital Cartography, Prentice Hall, New Jersey, 316p.
14.03.2004
38/39
Taslak V.0
ANALİTİK KARTOGRAFYA
İ.Öztuğ BİLDİRİCİ
Hardy R.L., 1990, Theory and Applications of the Multiquadric-biharmonic method, Computers &
Mathematics with Applications 19 (8/9), 163-208
İpbüker, C., Bildirici, İ.Ö., 2002, A General Algorithm for the Inverse Transformation of Map
Projections Using Jacobian Matrices, Proceedings of the Third International Conference on
Mathematical & Computational Applications, September 4-6, 2002, Konya, Turkey, 175-184.
İpbüker, C., Yanalak, M., Özşamlı, C., 2003, Winkel Tripel’e Alternatif Olarak Ginzburg IV
Projeksiyonu, HKM Jeodezi Jeoinformasyon ve Arazi Yönetimi Dergisi (89), 19-28
14.03.2004
39/39
Taslak V.0
Download