Coğrafi verilerin işlenmesi, veri analizinde pratik bir yöntemdir Coğrafi Verileri Python İle İşleme: Özel Fonksiyonlar kitabı, bu yönteme odaklanarak, okuyuculara özel fonksiyonların nasıl kullanılabileceğini anlatıyor Yeni başlayanlar için bile anlaşılır bir dille açıklanan kitap, coğrafi verilerin analizini kolaylaştıran özel fonksiyonların özelliklerini adım adım inceliyor Bu kitap sayesinde, coğrafi verileri işlemek için gerekli olan Python programlama diline de hakim olacaksınız

Coğrafi veriler, günümüzde birçok sektörde önemli bir yer tutmaktadır. Bu verilerin işlenmesi ve analizi, doğru ve hızlı karar verme süreçlerinde büyük katkı sağlamaktadır. Bu sebeple, Python programlama dili ile coğrafi verilerin işlenmesi oldukça önemlidir. Bu makalede, Python programlama dilinde coğrafi verilerin işlenmesinde kullanılan özel fonksiyonlar ele alınacaktır.
Shapely kütüphanesi, geometrik nesnelerin oluşturulması, manipülasyonu ve analizi için kullanılan bir kütüphanedir. Bu kütüphane ile nokta, çizgi ve poligon gibi geometrik şekiller oluşturmak mümkündür. Bunun yanı sıra, Shapely kütüphanesi ile geometrik operasyonlar gerçekleştirmek de mümkündür. Örneğin, iki geometrik öğe arasındaki kesişim noktaları hesaplanabilir.
Diğer bir kütüphane olan Folium, interaktif ve web tabanlı haritaların oluşturulması için kullanılır. Bu kütüphane ile haritalar üzerine katmanlar ekleyebilir ve haritaları görselleştirebilirsiniz. Marker ve Circle fonksiyonları ile harita üzerine noktalar ve daireler konumlandırabilirsiniz.
Son olarak, GeoPandas kütüphanesi coğrafi verilerin işlenmesi için kullanılır. Bu kütüphanede coğrafi veriler okunabilir ve görselleştirilebilir. Veri okuma işlemi için read_file() fonksiyonu kullanılırken, görselleştirme işlemi için plot() fonksiyonu kullanılır.
Shapely Kütüphanesi
Shapely, Python için özel bir kütüphanedir ve coğrafi verileri işlemek için kullanılır. Bu kütüphane, geometrik nesneleri oluşturmak, manipüle etmek ve analiz etmek için kullanılır. Bu nedenle, coğrafi verilerin işlenmesi için özellikle önemlidir.
Shapely kütüphanesi ile nokta, çizgi ve poligon gibi geometrik şekiller oluşturmak mümkündür. Örneğin, noktalar için Point () fonksiyonu, çizgiler için LineString () fonksiyonu ve poligonlar için Polygon () fonksiyonu kullanılır. Bu fonksiyonlar sayesinde, coğrafi verilerdeki farklı geometrik şekiller kolayca tanımlanabilir.
Shapely kütüphanesi ayrıca farklı geometrik operasyonlar gerçekleştirmek için fonksiyonlar sunar. Örneğin, birden fazla geometrik öğe dışlanabilir veya bir geometrik öğe diğerinin tamamen kapsayacak şekilde örtülebilir. Ayrıca, Shapely kütüphanesi ile geometrik öğeler arasındaki kesişim noktaları hesaplanabilir. Bu işlemler, coğrafi verilerin analiz edilmesi için oldukça önemlidir.
Nokta, Çizgi ve Poligon Oluşturma
Shapely kütüphanesi, coğrafi geometrik şekillerin oluşturulması, manipülasyonu ve analizi için kullanılabilir. Bu kütüphane ile çeşitli geometrik şekiller, özellikle de nokta, çizgi ve poligonlar oluşturulabilir.
Nokta oluşturmak için Shapely kütüphanesinde Point() fonksiyonu kullanılır. Bu fonksiyon x ve y koordinatlarını alır ve bir nokta nesnesi oluşturur. Benzer şekilde, LineString() fonksiyonu kullanılarak bir çizgi oluşturulabilir ve Polygon() fonksiyonu kullanılarak bir poligon oluşturulabilir.
Nokta, çizgi ve poligonların özellikleri değiştirilebilir ve diğer geometrik şekillerle etkileşim kurabilir. Örneğin, iki veya daha fazla geometrik şekil çizimini birleştirmek ve kesişimlerini almak için union() ve intersection() fonksiyonları kullanılabilir.
Ayrıca, Shapely kütüphanesi ile oluşturulan geometrik şekiller, diğer kütüphaneler ve araçlarla birlikte kullanılabilir. Örneğin, GeoPandas kütüphanesi ile coğrafi verilerin analizi, işlenmesi ve görselleştirilmesi için Shapely geometrik şekilleri kullanılabilir.
Nokta Oluşturma
Shapely kütüphanesi ile nokta oluşturmak için Point() fonksiyonu kullanılır. Bu fonksiyon, koordinatlar belirterek nokta oluşturmanızı sağlar. Örneğin, (x, y) formatında iki koordinatı olan bir nokta oluşturmak için aşağıdaki kod kullanılabilir:
Kod | Açıklama |
---|---|
from shapely.geometry import Point | Point() fonksiyonunu kullanmak için Shapely kütüphanesini içe aktarın |
nokta = Point(0, 0) | (0, 0) koordinatlarına sahip yeni bir nokta oluşturun |
Bu kod, (0, 0) koordinatlarına sahip bir nokta oluşturur. Bu noktanın oluşturulduğundan emin olmak için aşağıdaki kodu kullanarak noktanın x ve y koordinatlarını yazdırabilirsiniz:
Kod | Açıklama |
---|---|
print(nokta.x, nokta.y) | Noktanın x ve y koordinatlarını yazdırın |
Bu kod, ekrana "0.0 0.0" yazdırır, çünkü oluşturulan noktanın x ve y koordinatları 0'dır.
Çizgi Oluşturma
Shapely kütüphanesi, geometrik şekillerin oluşturulması işleminde kullanılan çeşitli fonksiyonlar sunar. Bu fonksiyonlar sayesinde, verilen koordinatlar ile koordinat sistemine göre çizgi, nokta ya da poligon şekilleri oluşturulabilir.
Çizgi oluşturma işlemi için, LineString() fonksiyonu kullanılır. Bu fonksiyon, en az iki noktadan oluşan bir listenin parametre olarak verildiği bir geometrik nesne oluşturur. Örneğin, aşağıdaki örnekte, (0,0) ve (1,1) koordinatlarında bulunan iki noktayı kullanarak bir çizgi oluşturulur:
Kod: | from shapely.geometry import LineString line = LineString([(0,0), (1,1)]) |
---|
Bu şekilde, LineString() fonksiyonu kullanılarak çizgi oluşturulması işlemi gerçekleştirilmiş olur. Oluşturulan bu çizgi daha sonra, farklı geometrik operasyonlar için kullanılabilir.
Poligon Oluşturma
Shapely kütüphanesi içerisinde Polygon() fonksiyonu kullanılarak poligon oluşturulabilir. Poligon, birden fazla nokta kullanılarak birleştirilerek oluşturulan kapalı bir geometrik şekildir. Polygon() fonksiyonu için en az üç adet nokta belirtilmelidir, ancak daha fazla nokta da kullanılabilir. Ayrıca, poligonun içinde delikler oluşturulabilir, bunun için de bir iç poligon oluşturmak gerekmektedir. Oluşturulan poligon, bir değişkene atanarak daha sonra kullanılabilir. Aşağıdaki örnekte Poligon oluşturmak için Polygon() fonksiyonunun nasıl kullanıldığı gösterilmiştir:
Kod Satırı | Poligon Açıklaması |
---|---|
polygon = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]) | Dört noktadan oluşan bir poligon oluşturuldu. |
polygon2 = Polygon([(0, 0), (0, 3), (3, 3), (3, 0)], [[(1, 1), (2, 1), (2, 2), (1, 2)]] ) | İçinde delik olan bir poligon oluşturuldu. |
Yukarıdaki örneklerde, birinci örnekte dört adet nokta kullanılarak basit bir poligon oluşturuldu. İkinci örnekte ise dış poligonun yanı sıra iç poligon da oluşturuldu. Bu poligonun içindeki delik, Polygon() fonksiyonuna eklenen ikinci parametrede belirtildi. Bu şekilde oluşturulan poligonlar, diğer fonksiyonlarla birlikte kullanılarak geometrik operasyonlar gerçekleştirilebilir.
Geometrik Operasyonlar
Shapely kütüphanesi, geometrik nesneleri oluşturmak, manipüle etmek ve analiz etmek için kullanılır. Bu kütüphane içinde farklı geometrik operasyonlar gerçekleştirmek mümkündür.
Bu operasyonlardan biri olan dışlama işlemi ile bir geometrik öğe diğerinden dışlanabilir. Örneğin, bir poligon içinde bulunmayan noktalar ya da bir çizginin dışarıda kalan bölümü gibi. Kapsama işlemi ise tam tersidir. Bir noktanın hangi poligon ya da çizginin içinde olduğu ya da bir poligonun hangi başka poligonların içinde bulunduğu gibi işlemler bu kapsama işlemi ile yapılabilmektedir. Kesişim işlemi ile geometrik öğeler arasındaki kesişim noktaları hesaplanarak bunlar üzerinde analizler yapılabilir. Ayrıca, kesişim işlemi ile farklı geometrik öğeler oluşturularak yeni şekiller oluşabilir.
Yukarıdaki operasyonların yanı sıra Shapely kütüphanesi içinde farklı bazı operasyonlar daha mevcuttur ve ihtiyaçlar doğrultusunda bu fonksiyonlar kullanılarak coğrafi veriler üzerinde analizler yapılabilir.
Dışlama İşlemi
Shapely kütüphanesi, bir geometrik öğeden diğerini dışlamak için kullanılan farklı fonksiyonlar sağlar. Bu işlem, bir geometrik nesnenin diğer geometrik nesnelerin tamamını veya bir kısmını dışlamasına izin verir.
Dışlama işlemi gerçekleştirmek için, Shapely kütüphanesindeki difference() fonksiyonu kullanılır. Bu fonksiyon, iki geometrik nesne arasındaki farkı hesaplar ve çıktı olarak kalan bölgeleri içeren yeni bir geometrik nesne döndürür.
Aşağıdaki tablo, difference() fonksiyonu ile yapılan dışlama işlemini açıklamaktadır.
Orjinal Geometrik Nesne | Çıktı Geometrik Nesne |
---|---|
![]() | ![]() |
Yukarıdaki örnekte, mavi renkle gösterilen geometrik nesne, sarı renkli geometrik nesneden dışlanmıştır ve difference() fonksiyonu tarafından oluşturulan çıktı geometrik nesne yalnızca kalan yeşil alanı içerir.
Kapsama İşlemi
Shapely kütüphanesi, bir geometrik öğenin tamamen diğer bir geometrik öğeyi kapsamasını sağlayan kapsama işlemi fonksiyonu sunmaktadır. Bu işlem, bir poligonun tamamen diğer poligon içinde kalmasını sağlar.
Bu fonksiyon iki geometrik öğe arasında yapılan işlemlerden biridir. Kapsama işlemini gerçekleştirmek için Shapely kütüphanesi ile Polyogon() fonksiyonu kullanılır. İşlem yapılacak iki geometrik öğe oluşturulduktan sonra contains() fonksiyonu kullanılarak kapsama işlemi gerçekleştirilebilir. Bu işlem sonucunda, bir öğenin diğer öğeyi tamamen kapsaması durumunda True, kapsamaması durumunda ise False şeklinde bir boolean değeri döndürülür.
Bu fonksiyon, coğrafi verilerin analizinde oldukça önemlidir. Özellikle şehir planlaması gibi alanlarda, binaların ya da park alanlarının tamamen bir başka alanda veya öğede yer alması gerektiği durumlarda kullanılabilir.
Kesişim İşlemi
Shapely kütüphanesi ile geometrik şekiller arasındaki kesişim noktaları hesaplanabilir. İki geometrik şeklin kesişim noktalarını bulmak için intersect() fonksiyonu kullanılır. Bu fonksiyon, iki geometrik şekil parametresi alır ve bu şekillerin kesişim noktalarını döndürür.
Bir örnek olarak, bir çizgi ve bir poligon şekillerinin kesişim noktalarını bulmak istediğimizi varsayalım. İlk olarak, çizgi ve poligon şekillerini Shapely kütüphanesi ile oluştururuz. Daha sonra, intersect() fonksiyonunu kullanarak bu iki geometrik şeklin kesişim noktalarını hesaplarız. Son olarak, bu kesişim noktalarını görselleştirmek için Folium kütüphanesi kullanılabilir.
Örnek Kod: |
---|
from shapely.geometry import LineString, Polygon # Çizgi ve poligon şekilleri oluşturma line = LineString([(0, 0), (1, 1)]) poly = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]) # Kesişim noktalarını hesaplama intersection = line.intersect(poly) # Kesişim noktalarını görselleştirme import folium m = folium.Map(location=[45, -122], zoom_start=13) folium.GeoJson(intersection).add_to(m) m |
Bu örnek kodda, çizgi şekli (0, 0) ile (1, 1) noktaları arasında tanımlanırken, poligon şekli (0, 0), (0, 1), (1, 1) ve (1, 0) noktalarında tanımlanır. Ardından, intersect() fonksiyonu kullanılarak kesişim noktaları hesaplanır ve görselleştirilir.
Folium Kütüphanesi
Folium kütüphanesi, coğrafi verileri interaktif ve web tabanlı haritalar şeklinde görselleştirmek için oldukça kullanışlıdır. Bu kütüphane, Python dilinde haritalar oluşturmak için en popüler kütüphanelerden biridir. Folium kütüphanesi, Open Street Map (OSM) verilerine dayanarak haritalar oluşturur.
Folium kütüphanesi ile oluşturulan haritalar, etkileşimli olup, yüzeyler, markerlar ve çizgiler gibi geometrik şekiller ile kullanıcının yaptığı etkileşime yanıt verebilir. Bu kütüphane, kullanıcının verilerinden yararlanarak, coğrafi verilerin daha interaktif bir şekilde görselleştirilebilmesine olanak sağlar.
Folium kütüphanesi içerisinde birçok farklı fonksiyon mevcuttur ve bu fonksiyonlar yardımıyla haritaların üzerine markerlar, çizgiler ve şekiller eklemek mümkündür. Marker katmanı oluşturmak için Marker() fonksiyonu, daireler çizmek için Circle() fonksiyonu kullanılır.
Haritaların üzerine eklenen katmanlar, herhangi bir obje gibi hareket ettirilebilir ve özelleştirilebilir. Ayrıca, herhangi bir renk paleti veya işaretleyici kullanılarak kaydedilip, paylaşılabilirler. Folium kütüphanesi, coğrafi verilerin detaylı bir şekilde sergilenmesine karşın işlemler oldukça hızlı ve verimlidir.
Harita Oluşturma
Folium kütüphanesi, web tabanlı haritalar oluşturmak için oldukça popülerdir. Harita oluşturmak için Map() fonksiyonu kullanılır. Bu fonksiyonun en temel kullanımı şu şekildedir:
import | folium | ||
harita | = | folium.Map(location=[enlem,boylam], zoom_start=zoom_seviyesi) | |
harita.save | ( | "dosya_adi.html" | ) |
Burada "enlem" ve "boylam" değerleri harita açıldığında gösterilecek olan konumu belirtirken, "zoom_seviyesi" değeri ise haritanın başlangıç büyüklüğünü belirtir.
Map() fonksiyonu ayrıca, "control_scale" parametresi kullanılarak ölçek çubuğu ve "tiles" parametresi kullanılarak haritanın stil değişimi gibi özelliklerin eklenmesine de izin verir.
Ek olarak, Folium kütüphanesi ile harita üzerinde gösterilecek veriler de eklenilebilir. Bu verilerin katmanlar halinde eklenmesi mümkündür. Marker() fonksiyonu kullanılarak nokta konumlandırma, Circle() fonksiyonu kullanılarak daire çizme işlemleri yapılabilir.
Katmanlar
Folium kütüphanesi ile oluşturulan haritaların üzerine, farklı veri setlerini katman olarak eklemek mümkündür. Bu sayede, haritalar daha fazla bilgi içerebilir ve kapsamlı bir görüntü sunabilir. Katmanlar, Marker, Circle, HeatMap gibi farklı fonksiyonlar kullanılarak eklenir.
Marker katmanı, nokta konumlandırmak için kullanılır. Bu katman sayesinde, harita üzerinde belirli bir konuma işaretlenerek, çeşitli bilgiler görselleştirilebilir. Circle katmanı ise, harita üzerinde belirli bir noktanın çevresine daire çizmek için kullanılır. Bu fonksiyon sayesinde, belirli bir konum hakkında daha geniş bir alanın verileri paylaşılabilir. HeatMap fonksiyonu ise, sıcaklık haritası oluşturmak için kullanılır. Bu sayede, belirli bir bölgenin yoğunluğu veya sıcaklığı gibi bilgiler harita üzerinde görselleştirilebilir.
Katmanlar, haritaların kapsamını genişletirken, aynı zamanda daha ayrıntılı bilgiler sağlayarak, verilerin daha kolay anlaşılmasını sağlar. Folium kütüphanesi sayesinde, interaktif ve dinamik haritalar oluşturmak daha kolay hale gelirken, kullanıcılar tarafından daha çok tercih edilebilir hale gelir. Toplu şekilde görüntülenmesi gereken veriler, bu katmanlar ile birlikte daha sade bir şekilde sunulabilir.
Marker Katmanı
Folium kütüphanesi ile haritaların üzerine çeşitli katmanlar eklemek mümkündür. Bunlar arasında nokta konumlandırmak için Marker() fonksiyonu kullanılır. Marker() fonksiyonu ile seçilen noktanın koordinatları belirlenir ve isteğe bağlı olarak farklı renklerde veya simgelerde bir nokta eklenir. Marker() fonksiyonu kullanırken, konumları ve konum adlarını sağlamak önemlidir. Bu sayede belirli bir konumun haritada nerede olduğu hakkında bilgi sahibi olunabilir.
Marker() fonksiyonu ayrıca isteğe bağlı olarak bir pop-up penceresi ekleme özelliğine sahiptir. Bu seçenek, noktanın üzerine tıklandığında açılacak olan bir pencere içinde ek bilgi sağlar. Bu pop-up penceresi için, HTML kodu yazarak daha özelleştirilmiş bir içerik de oluşturulabilir.
Parametre | Açıklama |
---|---|
location | (enlem, boylam) koordinat çifti |
popup | Noktanın üzerine tıklandığında açılacak olan pop-up penceresi içeriği |
icon | Nokta simgesi (örn. "cloud", "info-sign", "map-marker") |
Circle Katmanı
Folium kütüphanesi, interaktif, web tabanlı haritalar oluşturmak için kullanılan bir kütüphanedir. Bu kütüphane ile haritaların üzerine çok çeşitli şekiller ve katmanlar eklenebilir. Circle() fonksiyonu ise haritaların üzerine daireler çizmek için kullanılır. Bu fonksiyon, merkez koordinatları belirlenen bir dairenin çapını ve rengini belirleyerek, dairenin haritada konumlandırılmasını sağlar.
Bu fonksiyon, birkaç farklı argüman alabilir. Bunlar arasında; location, radius, color, fill gibi özellikler yer alır. Location argümanı ise dairenin konumunu belirler. Bu argüman, bir liste içinde verilir ve listenin ilk elemanı dünya koordinatının enlemini, ikinci elemanı ise boylamını verir.
Circle() fonksiyonu, haritalardaki nokta ya da dairelerin renklerini değiştirmek için color argümanını kullanır. Bu argüman, bir renk kodu vererek noktaların ya da dairelerin rengini belirlemeye yarar. Fill argümanı ise dairelerin içini boyama işlemi yapar. Bu argüman, bir boolean tipinde verilir ve True ya da False değeri alır. True değeri seçildiğinde içi boş bir daire oluşurken, False değeri seçildiğinde dairenin içi boyanır.
Argüman | Açıklama |
---|---|
location | Dairenin merkez koordinatları |
radius | Dairenin yarıçapı |
color | Dairenin rengi |
fill | Daire içinin boyanıp boyanmaması |
GeoPandas Kütüphanesi
GeoPandas kütüphanesi, coğrafi verilerin manipülasyonu ve analizi için yapılmış bir araçtır. Bu kütüphane pandas kütüphanesi temel alınarak geliştirilmiştir. Birçok projede coğrafi veriler işlenirken, verinin geometrik verileri ile ilgili kodlar yazmamız gerekmektedir. Ancak GeoPandas kullanarak, pandas veri tipi gibi haritalama yapabiliriz. Bunun için coğrafi verilerin okunması ve görselleştirilmesi için kullanabileceğimiz hazır bir arayüz sağlanır.
GeoPandas ile coğrafi veri okuma işlemi read_file() fonksiyonu kullanılarak gerçekleştirilir. Okunan verilerin görselleştirme işlemi ise plot() fonksiyonu ile kolaylıkla yapılabilir. Bu kütüphane sayesinde topojson, shapefile, GeoJSON, CSV gibi birçok veri tipinde okuma işlemi gerçekleştirilerek, coğrafi veriler hızlı ve kolay bir şekilde işlenebilir.
Veri Okuma ve Görselleştirme
GeoPandas kütüphanesi, coğrafi verilerin okunması ve görselleştirilmesi için oldukça kullanışlı bir araçtır. Bu kütüphane ile, coğrafi veriler üzerinde farklı işlemler yapabilir, şekillendirebilir ve görselleştirebilirsiniz.
Coğrafi verileri okurken GeoPandas kütüphanesi ile kolayca okuyabilirsiniz. read_file() fonksiyonu coğrafi verileri bir veri çerçevesine yükler. Okunan veriler daha sonra işlenebilir ve çeşitli işlemlere tabi tutulabilir. Okunan veri, tablo
Dosya Formatı | Açıklama |
---|---|
Shapefile | GIS yazılımları tarafından kullanılan bir dosya formatıdır. |
GeoJSON | JSON formatında coğrafi verileri içeren bir dosya formatıdır. |
read_file() fonksiyonu, dosya yolunu parametre olarak almaktadır. Dosya yolu belirtilirken doğru dizin yolunun kullanılması önemlidir. Dosya okunduktan sonra dataframe yapısı içinde saklanır ve farklı işlemler yapılabilir. Okunan veriler üzerindeki analizler için farklı kütüphaneler kullanılabilir.
Görselleştirme
GeoPandas kütüphanesi coğrafi verileri görselleştirmek için oldukça kullanışlıdır. Bu kütüphane, coğrafi verileri okuyarak farklı tiplerde haritalar oluşturabilir. Görselleştirme işlemi için ise plot() fonksiyonu kullanılır. Bu fonksiyon ile farklı renkler, şekiller ve stil özellikleri kullanılarak coğrafi veriler daha anlaşılır hale getirilir.
Görselleştirme işleminde bazı parametreler de belirlenebilir. Örneğin, renkler için cmap parametresi kullanılırken, figure_size parametresi ile de haritanın boyutları belirlenebilir. Ayrıca, legend parametresi ile de haritadaki katmanlar için açıklama eklenebilir.
Bu özellikler sayesinde coğrafi verilerin analizi ve görselleştirilmesi daha kolay hale gelir. GeoPandas kütüphanesi ile oluşturulan haritalar, farklı sektörlerde kullanılarak veri analizine büyük katkı sağlar.