Diagram Array dan Daftar

Fungsi ui.Chart.array.values menyediakan metode untuk merender diagram dari objek ee.Array dan ee.List.

Contoh berikut mengandalkan data array dan daftar yang dihasilkan oleh pengurangan band gambar dan metadata gambar menggunakan pengurangan ee.Reducer.toList(). Perhatikan bahwa kumpulan daftar dan/atau array yang memiliki panjang yang sama di sepanjang sumbu tertentu dapat dipetakan oleh ui.Chart.array.values.

Diagram sebar wilayah ee.Array

Pengurangan wilayah gambar oleh ee.Reducer.toList() menghasilkan kamus daftar nilai piksel, satu untuk setiap band dalam gambar tertentu. Di sini, fungsi ini digunakan untuk mengekstrak daftar nilai pantulan merah, NIR, dan SWIR dari gambar MODIS untuk piksel yang berpotongan dengan ekorigion berhutan. Nilai refleksi merah dipetakan ke sumbu x, nilai NIR dan SWIR dipetakan ke sumbu y.

Aset projects/google/charts_feature_example, yang digunakan dalam contoh ini untuk menandai wilayah ekologi berhutan, dikembangkan untuk tujuan demonstrasi. Ini adalah kumpulan tiga poligon ekorigion dengan properti yang menjelaskan normal iklim.

Editor Kode (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);

Diagram sebar wilayah ee.List

Dua objek daftar dapat dipetakan menggunakan fungsi ui.Chart.array.values. Berdasarkan contoh sebelumnya, daftar nilai sumbu x dan y yang mewakili pantulan merah dan SWIR dirender sebagai plot titik.

Editor Kode (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 plot garis transek

Pengurangan wilayah gambar oleh ee.Reducer.toList() menghasilkan kamus daftar nilai piksel, satu untuk setiap band gambar. Jika wilayahnya berupa garis, seperti dalam hal ini, transek geografis dapat dibuat saat band lintang dan bujur disertakan sebagai band dalam gambar yang diinginkan. Di sini, daftar nilai pixel lintang dan elevasi dari sepanjang garis transek diekstrak sebagai variabel terpisah dan diplot ke sumbu x dan y.

Editor Kode (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);

Terapkan .setChartType('AreaChart') untuk menambahkan bayangan di bawah baris:

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

Diagram sebar metadata ee.List

Pengurangan properti koleksi oleh ee.Reducer.toList() menghasilkan kamus daftar nilai properti, satu untuk setiap properti yang dipilih. Di sini, daftar properti RMSE geometris dan cakupan awan dihasilkan dari kumpulan gambar Landsat 8 sebagai variabel terpisah. Variabel tutupan awan diplot di sepanjang sumbu x dan RMSE geometris di sepanjang sumbu y.

Editor Kode (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 diagram garis & sebar fungsi yang dipetakan

Petakan fungsi ke daftar nilai x untuk menghitung daftar nilai y yang sesuai. Di sini, fungsi sin() dipetakan ke daftar nilai sumbu x untuk menghasilkan daftar nilai sumbu y yang sesuai. Contoh gelombang sinus ditampilkan saat daftar x dan y diplot.

Editor Kode (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);