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.
| Ana Harita Görünümü | Koridor Analizi Sonucu |
|---|---|
![]() |
![]() |
| Koridor Örneği | GeoJSON Verisi |
|---|---|
![]() |
![]() |
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.
- 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ı
| Katman | Teknoloji |
|---|---|
| Backend | Python, FastAPI, SQLAlchemy, GeoAlchemy2 |
| Veritabanı | PostgreSQL + PostGIS |
| Frontend | HTML5, CSS3, JavaScript, Leaflet.js |
| Veri Kaynağı | OpenStreetMap (OSM) |
| 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ı |
- Python 3.10+
- PostgreSQL 14+ ve PostGIS extension
- Conda environment (
kamp_env)
git clone [repository-url]
cd greenstitchconda activate kamp_env
pip install -r requirements.txt.env dosyasını oluşturun ve gerekli değişkenleri tanımlayın:
cp .env.example .env
# .env dosyasını düzenleyinCREATE DATABASE "green-stitch";
\c green-stitch
CREATE EXTENSION postgis;cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000API dokümantasyonu: http://localhost:8000/docs
frontend/index.html dosyasını bir web sunucusu ile açın veya doğrudan tarayıcıda çalıştırın.
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
| 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 |
/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
| 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 |
- PostGIS'ten yeşil alanlar çekilir (OSM verileri)
- Alan çiftleri arasında en yakın kenar noktaları bulunur (ST_ClosestPoint)
- Mesafe, bariyer ve alan büyüklüğüne göre ağırlıklandırılmış öncelik skoru hesaplanır
- Sonuçlar
proposed_corridorstablosuna GeoJSON formatında kaydedilir - Web arayüzü üzerinden görselleştirme yapılır
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- 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)
Bu proje GNU General Public License v3.0 or later altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.



