Dizi ve liste grafikleri

ui.Chart.array.values işlevi, ee.Array ve ee.List nesnelerinden grafik oluşturma yöntemi sağlar.

Aşağıdaki örneklerde, ee.Reducer.toList() azaltıcısı kullanılarak görüntü bantlarının ve görüntü meta verilerinin azaltılmasıyla oluşturulan dizi ve liste verileri kullanılmaktadır. Belirli bir eksen boyunca aynı uzunlukta olan tüm liste ve/veya dizi gruplarının ui.Chart.array.values ile noktayla gösterilebileceğini unutmayın.

ee.Array bölge dağılım grafiği

ee.Reducer.toList() tarafından görüntü bölgesinin azaltılması, belirli bir görüntüdeki her bant için bir tane olmak üzere piksel değer listeleri içeren bir sözlük oluşturur. Burada, ormanlık bir eko bölgeyle kesişen pikseller için bir MODIS görüntüsünden kırmızı, NIR ve SWIR yansıma değeri listeleri ayıklamak amacıyla kullanılır. Kırmızı yansıtma değerleri x eksenine, NIR ve SWIR değerleri ise y eksenine çizilir.

Bu örnekte ormanlık bir eko bölgenin sınırlarını belirlemek için kullanılan projects/google/charts_feature_example öğesi, açıklama amacıyla geliştirilmiştir. İklim normallerini açıklayan özelliklere sahip üç eko bölge poligonundan oluşan bir koleksiyondur.

Kod Düzenleyici (JavaScript)

// Import the example feature collection and subset the forest feature.
var forest = ee.FeatureCollection('projects/google/charts_feature_example')
                 .filter(ee.Filter.eq('label', 'Forest'));

// Define a MODIS surface reflectance composite.
var modisSr = ee.ImageCollection('MODIS/006/MOD09A1')
                  .filter(ee.Filter.date('2018-06-01', '2018-09-01'))
                  .select('sur_refl_b0[0-7]')
                  .mean();

// Reduce MODIS reflectance bands by forest region; get a dictionary with
// band names as keys, pixel values as lists.
var pixelVals = modisSr.reduceRegion(
    {reducer: ee.Reducer.toList(), geometry: forest.geometry(), scale: 2000});

// Convert NIR and SWIR value lists to an array to be plotted along the y-axis.
var yValues = pixelVals.toArray(['sur_refl_b02', 'sur_refl_b06']);

// Get the red band value list; to be plotted along the x-axis.
var xValues = ee.List(pixelVals.get('sur_refl_b01'));

// Define the chart and print it to the console.
var chart = ui.Chart.array.values({array: yValues, axis: 1, xLabels: xValues})
                .setSeriesNames(['NIR', 'SWIR'])
                .setOptions({
                  title: 'Relationship Among Spectral Bands for Forest Pixels',
                  colors: ['1d6b99', 'cf513e'],
                  pointSize: 4,
                  dataOpacity: 0.4,
                  hAxis: {
                    'title': 'Red reflectance (x1e4)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    'title': 'Reflectance (x1e4)',
                    titleTextStyle: {italic: false, bold: true}
                  }
                });
print(chart);

ee.List bölge dağılım grafiği

ui.Chart.array.values işlevi kullanılarak iki liste nesnesi noktayla gösterilebilir. Önceki örnekten yararlanarak kırmızı ve SWIR yansımasını temsil eden x ve y ekseni değer listeleri, dağılım grafiği olarak oluşturulur.

Kod Düzenleyici (JavaScript)

// Get Red and SWIR value lists; to be plotted along x and y axes, respectively.
// Note that the pixelVals object is defined in the previous code block.
var x = ee.List(pixelVals.get('sur_refl_b01'));
var y = ee.List(pixelVals.get('sur_refl_b06'));

// Define the chart and print it to the console.
var chart = ui.Chart.array.values({array: y, axis: 0, xLabels: x}).setOptions({
  title: 'Relationship Among Spectral Bands for Forest Pixels',
  colors: ['cf513e'],
  hAxis: {
    title: 'Red reflectance (x1e4)',
    titleTextStyle: {italic: false, bold: true}
  },
  vAxis: {
    title: 'SWIR reflectance (x1e4)',
    titleTextStyle: {italic: false, bold: true}
  },
  pointSize: 4,
  dataOpacity: 0.4,
  legend: {position: 'none'},
});
print(chart);

ee.List kesit çizgi grafiği

ee.Reducer.toList() değerine göre görüntü bölgesinin azaltılması, her görüntü bandı için bir tane olmak üzere piksel değeri listeleri içeren bir sözlük oluşturur. Bölge bir çizgiyse (bu örnekte olduğu gibi) enlem ve boylam bantları ilgili görüntüye bant olarak dahil edildiğinde coğrafi bir kesit oluşturulabilir. Burada, transek çizgisi boyunca alınan boylam ve yükseklik piksel değeri listeleri ayrı değişkenler olarak ayıklanır ve sırasıyla x ve y eksenlerine çizilir.

Kod Düzenleyici (JavaScript)

// Define a line across the Olympic Peninsula, USA.
var transect = ee.Geometry.LineString([[-122.8, 47.8], [-124.5, 47.8]]);

// Define a pixel coordinate image.
var latLonImg = ee.Image.pixelLonLat();

// Import a digital surface model and add latitude and longitude bands.
var elevImg =
    ee.Image('NASA/NASADEM_HGT/001').select('elevation').addBands(latLonImg);

// Reduce elevation and coordinate bands by transect line; get a dictionary with
// band names as keys, pixel values as lists.
var elevTransect = elevImg.reduceRegion({
  reducer: ee.Reducer.toList(),
  geometry: transect,
  scale: 1000,
});

// Get longitude and elevation value lists from the reduction dictionary.
var lon = ee.List(elevTransect.get('longitude'));
var elev = ee.List(elevTransect.get('elevation'));

// Sort the longitude and elevation values by ascending longitude.
var lonSort = lon.sort(lon);
var elevSort = elev.sort(lon);

// Define the chart and print it to the console.
var chart = ui.Chart.array.values({array: elevSort, axis: 0, xLabels: lonSort})
                .setOptions({
                  title: 'Elevation Profile Across Longitude',
                  hAxis: {
                    title: 'Longitude',
                    viewWindow: {min: -124.50, max: -122.8},
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    title: 'Elevation (m)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  colors: ['1d6b99'],
                  lineSize: 5,
                  pointSize: 0,
                  legend: {position: 'none'}
                });
print(chart);

Satırın altına gölgelendirme eklemek için .setChartType('AreaChart') simgesini uygulayın:

print(chart.setChartType('AreaChart'));

ee.List meta veri dağılım grafiği

ee.Reducer.toList() tarafından koleksiyon mülkünün azaltılması, her seçili mülk için bir tane olmak üzere mülk değeri listeleri dizini oluşturur. Burada bulut örtüsü ve geometrik RMSE mülk listeleri, bir grup Landsat 8 görüntüsünden ayrı değişkenler olarak oluşturulur. Bulut örtüsü değişkeni x ekseni boyunca, geometrik RMSE ise y ekseni boyunca çizilir.

Kod Düzenleyici (JavaScript)

// Import a Landsat 8 collection and filter to a single path/row.
var col = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
              .filter(ee.Filter.expression('WRS_PATH ==  45 && WRS_ROW == 30'));

// Reduce image properties to a series of lists; one for each selected property.
var propVals = col.reduceColumns({
                    reducer: ee.Reducer.toList().repeat(2),
                    selectors: ['CLOUD_COVER', 'GEOMETRIC_RMSE_MODEL']
                  })
                   .get('list');

// Get selected image property value lists; to be plotted along x and y axes.
var x = ee.List(ee.List(propVals).get(0));
var y = ee.List(ee.List(propVals).get(1));

// Define the chart and print it to the console.
var chart = ui.Chart.array.values({array: y, axis: 0, xLabels: x})
                .setChartType('ScatterChart')
                .setOptions({
                  title: 'Landsat 8 Image Collection Metadata (045030)',
                  colors: ['96356f'],
                  hAxis: {
                    title: 'Cloud cover (%)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    title: 'Geometric RMSE (m)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  pointSize: 5,
                  dataOpacity: 0.6,
                  legend: {position: 'none'},
                });
print(chart);

ee.List eşlenen işlev dağılım ve çizgi grafiği

İlgili bir y değeri listesi hesaplamak için bir işlevi x değeri listesiyle eşleyin. Burada sin() işlevi, karşılık gelen bir y ekseni değerleri listesi oluşturmak için bir x ekseni değerleri listesi üzerinden eşlenir. X ve y listeleri noktayla gösterildiğinde sinüs dalganın bir örneği gösterilir.

Kod Düzenleyici (JavaScript)

// Define a sequence from -2pi to +2pi in 50 increments.
var start = -2 * Math.PI;
var end = 2 * Math.PI;
var points = ee.List.sequence(start, end, null, 50);

// Evaluate the sin() function for each value in the points sequence.
var values = points.map(function(val) {
  return ee.Number(val).sin();
});

// Define the chart and print it to the console.
var chart = ui.Chart.array.values({array: values, axis: 0, xLabels: points})
                .setOptions({
                  title: 'Sine Function',
                  hAxis: {
                    title: 'radians',
                    viewWindowMode: 'maximized',
                    ticks: [
                      {v: start, f: '-2π'},
                      {v: -Math.PI, f: '-π'},
                      {v: 0, f: '0'},
                      {v: Math.PI, f: 'π'},
                      {v: end, f: '2π'}
                    ],
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    title: 'sin(x)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  colors: ['39a8a7'],
                  lineWidth: 3,
                  pointSize: 7,
                  viewWindow: {min: start, max: end},
                  legend: {position: 'none'}
                });
print(chart);