Skip to content

bersinada/green-stitch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GreenStitch

Biyoçeşitlilik Koridoru Analiz Platformu - OpenStreetMap verilerini kullanarak Belek bölgesindeki kopuk yeşil alanları birbirine bağlayan optimal biyoçeşitlilik koridorlarını tespit eden CBS tabanlı analiz platformu.

Ekran Görüntüleri ve Demo

Demo Video

▶ Google Drive'da İzle

Ekran Görüntüleri

Ana Harita Görünümü Koridor Analizi Sonucu
Ana Harita Koridor Analizi
Koridor Örneği GeoJSON Verisi
Koridor Örneği GeoJSON

Proje Hedefi

Antalya/Belek bölgesindeki parklar, ormanlar ve çayır alanları arasında potansiyel biyoçeşitlilik koridorlarının tespiti ve en uygun bağlantı rotalarının öncelik skorlarıyla birlikte önerilmesi. Proje, kopuk habitatları birleştirerek doğal yaşam alanlarının sürdürülebilirliğini desteklemeyi amaçlar.

Çalışma Alanı

  • Bölge: Antalya / Belek
  • Koordinatlar: 36.8597°N, 31.0553°E
  • Bounding Box: [30.98, 36.82, 31.10, 36.92] (west, south, east, north)
  • Veri Kaynağı: OpenStreetMap (OSM)
  • Analiz Kapsamı: Orman, park, çayır ve rekreasyon alanları

Teknoloji Yığını

Katman Teknoloji
Backend Python, FastAPI, SQLAlchemy, GeoAlchemy2
Veritabanı PostgreSQL + PostGIS
Frontend HTML5, CSS3, JavaScript, Leaflet.js
Veri Kaynağı OpenStreetMap (OSM)

Veritabanı Yapısı

Tablo Açıklama
grass_leisure Çim ve çayır alanları (OSM landuse/leisure)
leisure_park Park alanları
natural_wood Orman ve ağaçlık alanlar
proposed_corridors Analiz sonucu önerilen biyoçeşitlilik koridorları

Kurulum

Ön Koşullar

  • Python 3.10+
  • PostgreSQL 14+ ve PostGIS extension
  • Conda environment (kamp_env)

1. Projeyi İndirin

git clone [repository-url]
cd greenstitch

2. Environment Hazırlama

conda activate kamp_env
pip install -r requirements.txt

3. Environment Değişkenlerini Ayarlayın

.env dosyasını oluşturun ve gerekli değişkenleri tanımlayın:

cp .env.example .env
# .env dosyasını düzenleyin

4. Veritabanı Kurulumu

CREATE DATABASE "green-stitch";
\c green-stitch
CREATE EXTENSION postgis;

5. Backend Çalıştırma

cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

API dokümantasyonu: http://localhost:8000/docs

6. Frontend

frontend/index.html dosyasını bir web sunucusu ile açın veya doğrudan tarayıcıda çalıştırın.

Proje Yapısı

greenstitch/
├── backend/
│   ├── main.py               # FastAPI uygulaması ve endpoint tanımları
│   ├── database.py            # PostgreSQL/PostGIS bağlantı yapılandırması
│   ├── models.py              # SQLAlchemy + GeoAlchemy2 tablo modelleri
│   ├── schemas.py             # Pydantic request/response şemaları
│   ├── etl.py                 # PostGIS'ten veri çekme ve birleştirme
│   └── corridor_analysis.py   # Koridor analiz algoritmaları (Haversine, öncelik skoru)
├── frontend/
│   ├── index.html             # Ana sayfa (sidebar + harita layout)
│   ├── style.css              # Responsive tasarım ve stiller
│   └── script.js              # Leaflet harita ve kullanıcı etkileşimi
├── data/
│   ├── grassleisure.csv       # Çim ve çayır alanları (OSM)
│   ├── leisurepark.csv        # Park alanları (OSM)
│   └── naturalwood.csv        # Orman ve ağaçlık alanlar (OSM)
├── .env                       # Environment değişkenleri (git'e eklenmez)
├── .env.example               # Environment değişkenleri örneği
├── requirements.txt           # Python bağımlılıkları
└── README.md

API Endpoints

Method Endpoint Açıklama
GET / API bilgi ve versiyon
GET /health Veritabanı bağlantı kontrolü
GET /green-areas Yeşil alanları GeoJSON olarak döndürür
GET /roads Yol verileri (henüz aktif değil)
GET /corridors Önerilen koridorları listeler
POST /analyze Koridor analizi başlatır ve sonuçları kaydeder
GET /stats Veritabanı istatistikleri

Sorgu Parametreleri

  • /green-areas?bbox=30.98,36.82,31.10,36.92 - Bounding box ile filtreleme
  • /green-areas?area_type=park - Alan tipine göre filtreleme (grass, park, wood)
  • /corridors?min_priority=50 - Minimum öncelik skoruna göre filtreleme
  • /analyze?max_distance=3000&max_corridors=10 - Analiz parametreleri

Analiz Algoritması

Koridor Öncelik Skoru (0-100):

Faktör Ağırlık Açıklama
Mesafe %40 İki alan arası uzaklık (Haversine, kenar-kenar)
Bariyer %30 Aradaki yol/engel sayısı
Alan Büyüklüğü %30 Bağlanacak alanların ortalama boyutu

Analiz Süreci:

  1. PostGIS'ten yeşil alanlar çekilir (OSM verileri)
  2. Alan çiftleri arasında en yakın kenar noktaları bulunur (ST_ClosestPoint)
  3. Mesafe, bariyer ve alan büyüklüğüne göre ağırlıklandırılmış öncelik skoru hesaplanır
  4. Sonuçlar proposed_corridors tablosuna GeoJSON formatında kaydedilir
  5. Web arayüzü üzerinden görselleştirme yapılır

Konfigürasyon

Proje .env dosyası ile konfigüre edilir. Örnek değişkenler:

DATABASE_URL=postgresql://username:password@localhost:5432/green-stitch
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=green-stitch
API_HOST=0.0.0.0
API_PORT=8000

Performans ve Sınırlamalar

  • Maksimum Alan Sayısı: 1000 yeşil alan
  • Analiz Süresi: ~5-15 saniye (alan sayısına göre)
  • Desteklenen Formatlar: GeoJSON, WKT
  • Minimum Alan Büyüklüğü: 100 m²
  • Maksimum Koridor Mesafesi: 5000 m
  • Koordinat Sistemi: WGS84 (EPSG:4326)

Lisans

Bu proje GNU General Public License v3.0 or later altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.

About

OpenStreetMap verilerini kullanarak kopuk yeşil alanları birbirine bağlayan optimal biyoçeşitlilik koridorlarını tespit eden CBS tabanlı analiz platformu.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors