Python GIS Kütüphaneleri: Coğrafi Verilerle Çalışmak için 12 En İyi Kütüphane

Coğrafi bilgi sistemleri, coğrafi verileri analiz etmek için yazılım uygulamalarıdır. Kişisel konum bilgilerini ve harita tabanlı verileri kullanarak verileri toplar, yönetir, analiz eder ve görselleştirirler. Python GIS kütüphaneleri, coğrafi verileri ve harita tabanlı verileri analiz etmek için kullanılan Python programlama dili kitaplıklarıdır. Bu yazıda, harita tabanlı verilerle çalışmaya yönelik en iyi Python kütüphanelerini keşfedeceğiz.

1. Folium

Folium, harita tabanlı veriler üzerinde etkileşimli haritalar oluşturmak için kullanılan bir Python kütüphanesidir. OpenStreetMap gibi coğrafi verileri kullanarak haritalar oluşturmanıza olanak tanır. Ayrıca haritaları web tarayıcılarında görüntülemenize veya HTML dosyaları olarak kaydetmenize de olanak tanır.

Özellikleri:

  • OpenStreetMap gibi coğrafi verileri kullanarak haritalar oluşturma
  • Havadan görüntüler, su yolları ve diğer katmanları gösterme
  • Veri noktalarını ve coğrafi bilgileri bir harita üzerine yerleştirme
  • HTML/CSS/JavaScript özelliklerini kullanarak haritaları özelleştirme
  • Etkileşimli haritaları web tarayıcılarında görüntüleme veya HTML dosyaları olarak kaydetme

Kullanım Alanları:

  • Veri analizi ve modelleme
  • Coğrafi bilgi sistemleri (GIS) uygulamaları
  • Hava durumu ve iklim değişikliği izleme
  • Şehir planlama ve altyapı yönetimi
  • Doğal kaynakların izlenmesi ve yönetimi

Kurulum:

pip install folium

Kullanım Örneği:

import folium

# Yeni bir harita oluştur
harita = folium.Map(location=[45.5236, -122.6750], zoom_start=13)

# Harita üzerine veri noktası ekle
folium.Marker([45.5236, -122.6750], popup='Portland').add_to(harita)

# Haritayı görüntüle
harita

2. Geopandas

Geopandas, küresel coğrafi verileri işlemek için kullanılan bir Python kütüphanesidir. Pandas’ın üzerine inşa edilmiştir ve coğrafi verilerin Pandas veri çerçevelerinde saklanmasına olanak tanır.

Özellikleri:

  • İki ve üç boyutlu küresel coğrafi verilerin saklanması
  • Pandas veri çerçevelerinde coğrafi verilerin saklanması
  • Geometrik nesne modelleme
  • Coğrafi veri analizi
  • Shapefile veya GeoJSON gibi formatlardan coğrafi veri okuma ve yazma

Kullanım Alanları:

  • Küresel coğrafi veri analizi ve modelleme
  • Coğrafi bilgi sistemleri (GIS) uygulamaları
  • Etkileşimli haritalar oluşturma
  • Şehir planlama ve altyapı yönetimi
  • Sosyal bilimlerde mekansal analiz

Kurulum:

pip install geopandas

Kullanım Örneği:

import geopandas as gpd

# Dünya haritasını yükle
dunya_haritasi = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# Türkiye'nin koordinatlarını al
turkiye = dunya_haritasi[dunya_haritasi.name == 'Turkey']

# Türkiye'nin koordinatlarını yazdır
turkiye

3. GDAL

GDAL, raster coğrafi veri dosyalarını okumak ve yazmak için kullanılan bir Python kütüphanesidir. Farklı formatlardaki raster veri dosyalarıyla çalışmanıza olanak tanır.

Özellikleri:

  • Raster coğrafi veri dosyalarını okuma ve yazma
  • Piksel değerlerini görüntüleme
  • Piksel değerlerinin istatistiklerini alma
  • Raster dosyalarını koordine etme
  • Döşeme, projeksiyon ve format dönüşümü

Kullanım Alanları:

  • Küresel coğrafi veri analizi ve modelleme
  • Uzaktan algılama ve hava durumu izleme
  • İklim değişikliği izleme
  • Sosyal bilimlerde mekansal analiz

Kurulum:

pip install gdal

Kullanım Örneği:

from osgeo import gdal

# Raster dosyasını yükle
raster_dosya = gdal.Open('raster.dcm')
pikseller = raster_dosya.GetRasterBand(1)
pikseller_istatistikleri = pikseller.GetStatistics(0,1)
yazdir(pikseller_istatistikleri)

4. Rasterio

Rasterio, raster coğrafi veri dosyalarıyla çalışmaya yönelik bir Python kütüphanesidir. GDAL kütüphanesinin üzerine inşa edilmiştir ve kullanıcı dostu bir API sunar.

Özellikleri:

  • Piksel değerlerini görüntüleme
  • Piksel değerlerinin istatistiklerini alma
  • Döşeme, projeksiyon ve format dönüşümü
  • Piksel değerlerine maske uygulama
  • Piksel değerlerini filtreleme

Kullanım Alanları:

  • Küresel coğrafi veri analizi ve modelleme
  • Uzaktan algılama ve hava durumu izleme
  • Sosyal bilimlerde mekansal analiz

Kurulum:

pip install rasterio

Kullanım Örneği:

import rasterio
from rasterio.plot import show

# Raster dosyasını yükle
raster_dosya = rasterio.open('raster.tiff')
yazi(raster_dosya)
yazi(raster_dosya.count)
yazi(raster_dosya.width)
yazi(raster_dosya.height)
yazi(raster_dosya.transform)
yazi(raster_dosya.bounds)
yazi(raster_dosya.crs)
goster(raster_dosya)
dem = rasterio.open('raster.tiff')
yazi(dem.read(1))
yazi(dem.read(2))
dem.close()
raster_dosya.close()
dem.close()
dem = rasterio.open('raster.tiff')
dem_boyutlari = dem.shape
yazi(dem_boyutlari)
dem.close()
dem = rasterio.open('raster.tiff')
boyutlar = dem.shape
yazi(boyutlar)
boyutlar[0],boyutlar[1]
yazi(raster_dosya.read(1)[0][0])
raster_dosya.read(1).mean()
yazi(raster_dosya.read(1).max())
yazi(raster_dosya.read(1).min())
yazi(raster_dosya.read(1).std())
raster_dosya.read(1)[0:100][0:100] # İlk 100 Satır ve İlk 100 Sütun
dem.close()
dem = rasterio.open('raster.tiff')
viz = dem.read(1)
yazi(viz[0][0])
yazi(viz.mean())
yazi(viz.max())
yazi(viz.min())
yazi(viz.std())
dem.close()
dem = rasterio.open('raster.tiff')
viz = dem.read(1)
dem_maskeleme = np.ma.masked_where(viz == dem.read(1).mean(),viz) # Maskeleme işlemi ile ortalamanın üstündeki değerler sıfırlanır.
dem_maskeleme[dem_maskeleme == dem_maskeleme.mean()] = dem_maskeleme.mean() # Ortalama değerler ile değiştir.
yazi(dem_maskeleme.mean()) # Ortalama değeri yazdır.
dem.close()
dem_maskeleme[dem_maskeleme == dem_maskeleme.mean()] = dem_maskeleme.mean() # Ortalama değerler ile değiştir.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
raster_dosya.close()
raster_dosya.close()
raster_dosya.close()
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close()
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close()
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
raster_dosya.close() # Kapatılmadı ise hataya sebep olur.
dem.close()
dem_maskeleme[dem_maskeleme == dem_maskeleme.mean()] = dem_maskeleme.mean()
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] # Ortalama değeri yazdır.
viz[dem_maskeleme.mean()] // Ortalama değeri yazdır.

5. Fiona

Fiona, vektör coğrafi veri dosyalarıyla çalışmaya yönelik bir Python kütüphanesidir. GDAL kütüphanesinin üzerine inşa edilmiştir ve vektör verileriyle kolay bir şekilde çalışmanıza olanak tanır.

Özellikleri:

  • Vektör coğrafi veri dosyalarını okuma ve yazma
  • Küresel vektör verilerinin koordinat sistemlerini değiştirme
  • Küresel vektör verilerini filtreleme
  • Küresel vektör verilerinin istatistiklerini alma
  • Piksel değerlerini filtreleme

Kullanım Alanları:

  • Küresel coğrafi veri analizi ve modelleme
  • Siyasal bilimlerde mekansal analiz

Kurulum:

pip install fiona

Kullanım Örneği:

import fiona
from fiona.crs import from_epsg
from fiona.transform import transform_geom

with fiona.open('shapefile.shp', 'r') as shapefile:
satir_sayisi = sum(1 for _ in shapefile)  
yazdir(satir_sayisi)  
haritadaki_bilgi = shapefile.meta   
yazdir(haritadaki_bilgi)
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)   
sayac=0
for i in shapefile:
sayac+=1
if sayac%100==0:
yazdir(sayac)
sayac=0
fiona.open('shapefile.shp', 'w', driver='ESRI Shapefile', crs=from_epsg(4326), geometry_type='Polygon') as shapefile:
shapefile.write({
'geometry': {
'type': 'Polygon',
'coordinates': [[[-104.05, 48.45], [-102.05, 48.45], [-102.05, 50.45], [-104.05, 50.45], [-104.05, 48.45]]]
},
'properties': {
'name': 'Test Poligon'
}
})

with fiona.open('shapefile.shp', 'r') as shapefile:
satir_sayisi = sum(1 for _ in shapefile)
print(satir_sayisi)

with fiona.open('shapefile.shp', 'r') as shapefile:
bilgi = shapefile.meta


yazdir(bilgi)



with fiona.open('shapefile.shp', 'r') as shapefile:




coords_liste = []




for i in shapefile:
        coords_liste.append(i['geometry'] ['coordinates'] )        # coords_liste.append(i['geometry']['coordinates'])

bilgi['geometry'] = shapefile.meta['geometry'] + coords_liste['geometry'] +(shapefile.meta['geometry'] +coords_liste['geometry'] )
bilgi['geometry'] += (7,8)
bilgi['geometry'] += (7,8)
bilgi['geometry'] += (7,8)

 

 

 

Scroll to Top