SNAP Yazılımı ile Sentinel-2 Verisi İşleme
Bu repoda ESA SNAP yazılımı ile temel Sentinel-2 görüntü işleme süreci özetlenecektir. Bu repo Eskişehir Teknik Üniversitesi, Yer ve Uzay Bilimleri Enstitüsü, Uzaktan Algılama ve Coğrafi Bilgi Sistemleri Doktora Programı UCS635 Uydu Görüntü İşleme dersi kapsamında ve diğer eğitimlerimde ortam kullanmak için hazırlanmıştır. Rahatlıkla kullanabilirsiniz. İyi görüntü işlemeler :)
- Copernicus portaline ücretsiz üyelik yapıyoruz. https://scihub.copernicus.eu/
- Open Hub adresi üzerinden görüntü indirme aracına ulaşıyoruz. https://scihub.copernicus.eu/dhus/#/home
- Altlık harita bölümünden Sentinel-2 Cloudless'ı seçebiliriz daha net alan seçebilmek için.
- Scroll Butonu ile Ceylanpınar'da aşağıdaki gibi bir alan çiziyoruz.
- Sol tarafdaki filtreleme bölümünde
- Sentinel-2
- Sensing Period: 02.07.2022-01.09.2022 seçip arama yapıyoruz.
- Arama sonucu ilk çıkan veriyi indirme butonu ile indiriyoruz.
- S2A_MSIL1C_20220827T075621_N0400_R035_T37SEB_20220827T085529
Bu aşamada veriyi indirdikten sonra Copernicus portali ile işimiz kalmadı. Şimdi SNAP yazılımını indireceğiz.
- SNAP yazılımını https://step.esa.int/main/download/snap-download/ adresinden indirip kuruyoruz.
- Programı kurduğunuzda ilk olarak Tools > Options menüsünden programın kullandığı cache boyutunu bilgisayar kapasitinize göre arttırmanızı kesinlikle öneriririm.
- İndirdiğimiz zip dosyasını sürükle bırak yöntemi ile SNAP yazılımında açabiliriz.
- Veri açıldıktan sonra metadata bölümünden metaverileri, bands listesinden de Sentinel-2'nin sahip olduğu bantları görebilir ve tek tek çift tıklayarak açabilirsiniz.
- Sentinel-2 Bantları
Bant Numarası | Bant Adı | Dalga boyu | Çözünürlük (m) |
---|---|---|---|
Band 1 | Coastal aerosol | 0.443 | 60 |
Band 2 | Blue | 0.490 | 10 |
Band 3 | Green | 0.560 | 10 |
Band 4 | Red | 0.665 | 10 |
Band 5 | Vegetation Red-edge | 0.705 | 20 |
Band 6 | Vegetation Red-edge | 0.740 | 20 |
Band 7 | Vegetation Red-edge | 0.783 | 20 |
Band 8 | NIR | 0.842 | 10 |
Band 9 | Water vapour | 0.945 | 60 |
Band 10 | SWIR | 1.375 | 60 |
Band 11 | SWIR | 1.610 | 20 |
Band 12 | SWIR | 2.190 | 20 |
- Görüntü dosyamıza sağ tıkladıktan sonra "Open RGB Image Window" seçeneği ile ilgili bantları Red-Green-Blue sıralaması ile görselleştiriyoruz. Burada Natural Colour ifadesi bunu ifade etmiş oluyor.
- Görüntümüz açıldı. Sol alttaki Navigation penceresinden veya ana pencereden scroll ile zoom in-out yaparak görüntüyü inceleyebiliriz.
- Bir sonraki aşamada görüntüyü aşağıdaki görseldeki şekilde zoomlayalım pivot tarlalar, alt ve üst tarafta tarım alanları olacak şekilde.
- Sırada görüntü kesme var. Görüntüye sağ tıklayarak "Spatial Subset fron View" seçeneği ile kesim işlemini başlatıyoruz.
Band Subset alanında sadece B3-B4-B8 seçerek veri boyutunu azaltmayı amaçlıyoruz.
Kesilen veri sol tarafa yeni bir veri olarak eklendi.
- Şimdi kestiğimiz veriyi sağ tıklayarak kaydedelim.
Sağ tıklayarak "Save Product" diyoruz. İsim değiştirmeden .dim formatında kaydediyoruz.
- Şimdi subset ile kestiğimiz veriyi Load RGB Image Window seçeneği ile tekrar gösterelim. Aşağıdaki gibi güzel bir görüntü gelmiş olmalı.
- Bu iki veri açıkken ekranı Window > Tile Horizontally seçeneği ile ikiye bölebiliriz. Sonrasında View > Syncronize Image Views ile iki ekranı senkronize etmeyi unutmayın ve veriyi inceleyin.
- Şimdi bu görüntüdeki bitki örtüsü alanlarını bulmak için bir indeks hesabı yapacağız. Bunun için "Band Math" özelliği kullanılıyor. SNAP içinde birçok tanımlı indeks olmasına rağmen biz bu uygulamada bunu elle yapacağız. Simple Ratio NIR/RED ile hesaplanan basit bir bitki örtüsü indeksidir. Sentinel-2 için B8/B4 ile hesaplanabilir.
-
Sentinel-2 ile hesaplanabilecek indekslerin listesi için: https://custom-scripts.sentinel-hub.com/custom-scripts/sentinel-2/indexdb/
-
Bizim hesaplayacağımız Simple Ratio ile ilgili bilgi için. http://gsp.humboldt.edu/olm/Courses/GSP_216/lessons/Spectral-Enhancements/NDVI.html#:~:text=Simple%20Ratio%20Index%20(SR)%3A,indicate%20soil%2C%20water%20or%20ice.
-
Öncelikle Raster > Bant Math seçiyoruz. Bir isim yazabilirsiniz. "Edit Expression" seçeneği ile formülü yazacağız.
- B8/B4 yazdıktan sonra OK dediğimizde hesaplama yapılıyor.
Burada bitki örtüsü alanların daha yüksek değer aldığını görebilirsiniz.
- Bu hesabın arkasında yatan piksel değerlerini incelemek için "Optical > Spectrum View" seçeneği ile piksel değerlerini inceleyelim. Ekin olan pivotların daha yüksek NIR değerine sahip olduğunu görebilirsiniz.
- Eğitimsiz/Kontrolsüz sınıflandırma için bu örnek kapsamında, K-means Clustering ile bu görüntüyü 2 ayrı sınıfa ayıracağız.
- Raster > Classification > Unsupervised Classification > K-Means Cluster Analysis ile başlıyoruz.
- Processing Parameters alanında 2 cluster seçerek ve sadece hesapladığımız indeksi işleme alarak işlemi yaptıralım.
- Sınıflandırma sonucu olan class_indices bandını çift tıklayarak gösteriyoruz.
- Şimdi bu görüntü üzerinden kenar belirleme yapalım. Bunun için Raster > Filtered Band seçeneğinden Compass Edge Detector filtresini çalıştıralım ve tarım alanları belirleniyor mu inceleyelim.
- Son olarak Kontrollü/Eğitimli sınıflandırma yapacağız. Bunun için eğitim alanları seçmemiz gerekir. Bu amaçla 2 farklı vektör katman üreterek birinde bitki örtülü alanları diğerinde bitki örtülü olmayan alanları çizerek bir sınıflandırma gerçekleştireceğiz.
- Öncelikle "Vector > New Vector Data Container" alanından yeni vektör veri katmanı oluşturalım ve adını bitki yapalim.
- Kare çizme aracı ile bazı tarım alanlarından örnekler toplayalım. 5 yeterli
- İkinci vektörü bitkiolmayan olarak adlandıp bitki olmayana alanlardan örnekler toplayalım.
- Son aşamada bu vektör alanları kullanarak Raster > Classification > Supervised Classificaton > Minimum Distance Classifier menüsünden sınıflandırma işlemimizi başlatacağız. Doğruluk analizi kısmı bu tutorial'da yok ama yapılması gerektiğini unutmayalım.
- Subset edip kaydettiğimiz veriyi ekleyerek, sonrasında "run" komutu ile işlemi tamamlayabiliriz.
- Son işlem olarak sınıflandırma sonucunu geotiff olarak export ederek QGIS'te görüntüleyelim.