Artık bir görüntüyü nasıl yükleyeceğinizi ve görüntüleyeceğinizi bildiğinize göre, bu görüntüye bir hesaplama uygulayabilirsiniz.
Örneğin, SRTM yükseklik görüntüsünü ee.Terrain
paketinin slope
yöntemine ileterek arazi eğimini hesaplayabilirsiniz.
Kod Düzenleyici (JavaScript)
// Load the SRTM image. var srtm = ee.Image('CGIAR/SRTM90_V4'); // Apply an algorithm to an image. var slope = ee.Terrain.slope(srtm); // Display the result. Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon. Map.addLayer(slope, {min: 0, max :60}, 'slope');
ee.Terrain.slope(srtm)
kodunda srtm
resminin eğim algoritmasına bağımsız değişken olarak sağlandığını unutmayın. Sonuç, Şekil 3'e benzer şekilde görünmelidir.

Görüntü matematiği
ee.Image
sınıfında, bir resim nesnesinde çağrılabilecek yöntemler de vardır. Örneğin, görüntü bantlarını kullanarak matematiksel işlemler yapmak istediğinizi varsayalım (bazen bant matematiği veya harita cebiri olarak da adlandırılır). Örneğin, bir görünüm resminde trigonometrik işlemler yapmak isteyebilirsiniz. Bunu yapmak için önce bir en-boy oranı görüntüsünü radyana dönüştürün, ardından üzerinde sin()
işlevini çağırın. srtm
resmimizi yeniden kullanma,
Kod Düzenleyici (JavaScript)
// Get the aspect (in degrees). var aspect = ee.Terrain.aspect(srtm); // Convert to radians, compute the sin of the aspect. var sinImage = aspect.divide(180).multiply(Math.PI).sin(); // Display the result. Map.addLayer(sinImage, {min: -1, max: 1}, 'sin');
Sonuç, Şekil 4'e benzer şekilde görünmelidir. aspect.divide(180).multiply(Math.PI).sin()
kodunu daha yakından incelemenizi öneririz. Bu şekilde birden fazla yöntemi zincirleyerek kod, "en boy oranını 180'e böl, sonucu π ile çarp ve son olarak sinüsünü al" diyor. Bu şekilde yöntemleri birleştirerek resimler üzerinde karmaşık matematiksel işlemler yapabilirsiniz. Matematiksel işlemlerin (add()
, subtract()
, multiply()
vb.) tam listesi için Image
dokümanlarına bakın.

Resim istatistikleri
Resimler üzerinde yapılan bir diğer faydalı işlem sınıfı, resim bölgelerindeki piksel istatistiklerinin veya raster-vektör katmanlarının hesaplanmasını içerir. Earth Engine'de istatistikleri hesaplamak için ee.Reducer
paketindeki sınıflarla temsil edilen bir reducer kullanın. Örneğin, bir bölgedeki ortalama yükseklikle ilgilendiğinizi varsayalım. Geometri çizim araçlarını kullanarak bir poligon çizerek bölge tanımlayabilirsiniz.
Bir bölgeyi etkileşimli olarak çizmek için poligon çizme aracını alın
(), ardından ilgilendiğiniz alanın üzerinde bir poligon oluşturun ve işiniz bittiğinde Çıkış'ı tıklayın. Sonuçtaki
ee.Geometry
nesnesinin otomatik olarak geometry
olarak adlandırıldığını ve komut dosyanızın en üstüne içe aktarma olarak eklendiğini unutmayın. İçe aktarma işlemlerinde değişken adını tıklayıp yeni adı yazarak bu değişkeni "polygon" olarak yeniden adlandırın.
Ardından, aşağıdaki kodu kullanarak poligondaki ortalama piksel değerini alın:
Kod Düzenleyici (JavaScript)
// Compute the mean elevation in the polygon. var meanDict = srtm.reduceRegion({ reducer: ee.Reducer.mean(), geometry: polygon, scale: 90 }); // Get the mean from the dictionary and print it. var mean = meanDict.get('elevation'); print('Mean elevation', mean);
Bu konuda dikkat edilmesi gereken birkaç nokta vardır. İlk olarak, reduceRegion()
işlevinin Image
nesneleri için kullanılabilen bir yöntem olduğunu unutmayın (bölgeleri azaltma hakkında daha fazla bilgi edinin). İkinci olarak, yöntem bağımsız değişkenleri tek bir bağımsız değişken olarak iletilen bir JavaScript nesnesinde sağlanır. (Daha net bir ifadeyle, nesnenin anahtarları yöntem parametrelerinin adlarıdır. Değerler, yöntemin bağımsız değişkenleridir. Üçüncüsü, reducer
parametresi hesaplanacak istatistik türünü, geometry
parametresi ise istatistiğin hesaplanacağı bölgeyi belirtir. scale
parametresi, kullanılacak piksel boyutunu metre cinsinden ifade eder. Belirsizliği önlemek için, Earth Engine girişlerden uygun ölçeği otomatik olarak belirleyemeyebileceğinden, küçültme yaparken ölçeği her zaman belirtmeniz gerekir.
(Earth Engine'de ölçek hakkında daha fazla bilgi edinin).
Son olarak, reduceRegion()
işlevinin döndürdüğü değer, anahtarların bant adları, değerlerin ise bantların piksel istatistikleri olduğu bir sözlüktür. Sözlükteki get()
yöntemi, bağımsız değişken olarak sağlanan anahtara karşılık gelen değeri döndürür. Bu durumda, srtm
resminde "elevation" adlı bir bant vardır. Bu nedenle, örnek kod bu istatistiği sözlükten alır ve yazdırır.
Bu kodu çalıştırdığınızda aşağıdaki gibi bir hata alırsanız:
Endişelenmeyin. Hatayı düzeltmek için yapabileceğiniz birkaç şey vardır. reduceRegion()
yöntemi, hesaplamanıza gerçekten bu kadar çok piksel eklemek isteyip istemediğinizi değerlendirmenizi sağlayan bir kontrole sahiptir. Bu, yanlışlıkla saçma bir şey yapmanızı (ör. dünyadaki her bir metrelik pikselin ortalamasını hesaplamaya çalışmak) engellemek için tasarlanmıştır. Hatayı düzeltmek için bestEffort
parametresini true
olarak ayarlayın (parametre sözlüğüne bestEffort: true
ekleyerek) veya maxPixels
parametresini varsayılan değer olan 10 milyon pikselden daha yüksek bir değere ayarlayın ya da her ikisini de yapın. bestEffort
doğruysa Earth Engine, maxPixels
değerinin aşılmaması için ölçeği otomatik olarak yeniden hesaplar.
Konu dışı: Earth Engine'de ölçek
Önceki örnekte scale
, SRTM görüntüsünün yaklaşık olarak doğal çözünürlüğüne ayarlanmıştır. Bir resmin doğal çözünürlüğünü şu yöntemlerle öğrenebilirsiniz:
Kod Düzenleyici (JavaScript)
var scale = srtm.projection().nominalScale(); print('SRTM scale in meters', scale);
Yerel çözünürlükten daha küçük bir ölçek belirtirseniz Earth Engine, girişteki görüntüyü en yakın komşuyu kullanarak yeniden örnekler ve bu küçük piksellerin tümünü hesaplamaya dahil eder. Ölçeği daha büyük olarak ayarlarsanız Earth Engine, girişin toplu bir sürümünden giriş piksellerini kullanır (ör. görüntü piramidinin daha yüksek bir düzeyinden pikselleri alır). Earth Engine'in ölçeği nasıl işlediği hakkında daha fazla bilgiyi bu dokümanda bulabilirsiniz.
Şimdiye kadar tek bantlı tek bir resimle çalıştınız. Bir sonraki sayfada, çok bantlı görüntüler ve görüntü koleksiyonları hakkında bilgi edineceksiniz.