ee.Image.reduceRegions

Áp dụng một bộ giảm dữ liệu trên khu vực của từng tính năng trong tập hợp đã cho.

Bộ giảm dữ liệu phải có cùng số lượng đầu vào như số lượng dải của hình ảnh đầu vào.

Trả về các tính năng đầu vào, mỗi tính năng được tăng cường bằng các đầu ra tương ứng của bộ giảm dữ liệu.

Cách sử dụngGiá trị trả về
Image.reduceRegions(collection, reducer, scale, crs, crsTransform, tileScale, maxPixelsPerRegion)FeatureCollection
Đối sốLoạiThông tin chi tiết
this: imageHình ảnhHình ảnh cần giảm.
collectionFeatureCollectionCác tính năng cần giảm.
reducerBộ giảm dữ liệuBộ giảm dữ liệu cần áp dụng.
scaleSố thực, mặc định: nullTỷ lệ danh nghĩa (tính bằng mét) của phép chiếu để hoạt động.
crsPhép chiếu, mặc định: nullPhép chiếu để hoạt động. Nếu không chỉ định, phép chiếu của dải đầu tiên trong hình ảnh sẽ được sử dụng. Nếu được chỉ định ngoài tỷ lệ, thì sẽ được điều chỉnh tỷ lệ theo tỷ lệ đã chỉ định.
crsTransformDanh sách, mặc định: nullDanh sách các giá trị biến đổi CRS. Đây là thứ tự chính theo hàng của ma trận biến đổi 3x2. Tuỳ chọn này loại trừ lẫn nhau với "scale" (tỷ lệ) và sẽ thay thế mọi phép biến đổi đã được đặt trên phép chiếu.
tileScaleSố thực, mặc định: 1Hệ số tỷ lệ dùng để giảm kích thước ô tổng hợp; việc sử dụng tileScale (tỷ lệ ô) lớn hơn (ví dụ: 2 hoặc 4) có thể cho phép các phép tính hết bộ nhớ với giá trị mặc định.
maxPixelsPerRegionSố nguyên dài, mặc định: nullSố lượng pixel tối đa cần giảm cho mỗi khu vực.

Ví dụ

Trình soạn thảo mã (JavaScript)

// A Landsat 8 SR image with SWIR1, NIR, and green bands.
var img = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508')
              .select(['SR_B6', 'SR_B5', 'SR_B3']);

// Santa Cruz Mountains ecoregions feature collection.
var regionCol = ee.FeatureCollection('EPA/Ecoregions/2013/L4')
                    .filter('us_l4name == "Santa Cruz Mountains" || ' +
                            'us_l4name == "San Mateo Coastal Hills" || ' +
                            'us_l4name == "Leeward Hills"');

// Display layers on the map.
Map.setCenter(-122.08, 37.22, 9);
Map.addLayer(img, {min: 10000, max: 20000}, 'Landsat image');
Map.addLayer(regionCol, {color: 'white'}, 'Santa Cruz Mountains ecoregions');

// Calculate median band values within Santa Cruz Mountains ecoregions. It is
// good practice to explicitly define "scale" (or "crsTransform") and "crs"
// parameters of the analysis to avoid unexpected results from undesired
// defaults when e.g. reducing a composite image.
var stats = img.reduceRegions({
  collection: regionCol,
  reducer: ee.Reducer.median(),
  scale: 30,  // meters
  crs: 'EPSG:3310',  // California Albers projection
});

// The input feature collection is returned with new properties appended.
// The new properties are the outcome of the region reduction per image band,
// for each feature in the collection. Region reduction property names
// are the same as the input image band names.
print('Median band values, Santa Cruz Mountains ecoregions', stats);

// You can combine reducers to calculate e.g. mean and standard deviation
// simultaneously. The resulting property names are the concatenation of the
// band names and statistic names, separated by an underscore.
var reducer = ee.Reducer.mean().combine({
  reducer2: ee.Reducer.stdDev(),
  sharedInputs: true
});
var multiStats = img.reduceRegions({
  collection: regionCol,
  reducer: reducer,
  scale: 30,
  crs: 'EPSG:3310',
});
print('Mean & SD band values, Santa Cruz Mountains ecoregions', multiStats);

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về Python API và cách sử dụng geemap cho quá trình phát triển có tính tương tác.

import ee
import geemap.core as geemap

Colab (Python)

# A Landsat 8 SR image with SWIR1, NIR, and green bands.
img = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508').select(
    ['SR_B6', 'SR_B5', 'SR_B3']
)

# Santa Cruz Mountains ecoregions feature collection.
region_col = ee.FeatureCollection('EPA/Ecoregions/2013/L4').filter(
    'us_l4name == "Santa Cruz Mountains" || '
    + 'us_l4name == "San Mateo Coastal Hills" || '
    + 'us_l4name == "Leeward Hills"'
)

# Display layers on the map.
m = geemap.Map()
m.set_center(-122.08, 37.22, 9)
m.add_layer(img, {'min': 10000, 'max': 20000}, 'Landsat image')
m.add_layer(
    region_col, {'color': 'white'}, 'Santa Cruz Mountains ecoregions'
)
display(m)

# Calculate median band values within Santa Cruz Mountains ecoregions. It is
# good practice to explicitly define "scale" (or "crsTransform") and "crs"
# parameters of the analysis to avoid unexpected results from undesired
# defaults when e.g. reducing a composite image.
stats = img.reduceRegions(
    collection=region_col,
    reducer=ee.Reducer.median(),
    scale=30,  # meters
    crs='EPSG:3310',  # California Albers projection
)

# The input feature collection is returned with new properties appended.
# The new properties are the outcome of the region reduction per image band,
# for each feature in the collection. Region reduction property names
# are the same as the input image band names.
display('Median band values, Santa Cruz Mountains ecoregions', stats)

# You can combine reducers to calculate e.g. mean and standard deviation
# simultaneously. The resulting property names are the concatenation of the
# band names and statistic names, separated by an underscore.
reducer = ee.Reducer.mean().combine(
    reducer2=ee.Reducer.stdDev(), sharedInputs=True
)
multi_stats = img.reduceRegions(
    collection=region_col,
    reducer=reducer,
    scale=30,
    crs='EPSG:3310',
)
display('Mean & SD band values, Santa Cruz Mountains ecoregions', multi_stats)