Thông báo: Tất cả dự án phi thương mại đã đăng ký sử dụng Earth Engine trước ngày 15 tháng 4 năm 2025 phải xác minh điều kiện sử dụng phi thương mại để duy trì quyền truy cập vào Earth Engine.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Quá trình nội suy từ vectơ sang đường quét trong Earth Engine sẽ tạo ra một Image từ FeatureCollection. Cụ thể, Earth Engine sử dụng dữ liệu dạng số được lưu trữ trong một thuộc tính của các đối tượng để nội suy giá trị tại các vị trí mới bên ngoài các đối tượng đó. Kết quả nội suy sẽ tạo ra một Image liên tục của các giá trị nội suy cho đến khoảng cách được chỉ định.
Nội suy có trọng số theo khoảng cách nghịch đảo
Hàm trọng số theo khoảng cách nghịch đảo (IDW) trong Earth Engine dựa trên phương thức do Basso et al. (1999) mô tả. Một tham số điều khiển bổ sung được thêm vào dưới dạng hệ số suy giảm (gamma) trên khoảng cách nghịch đảo. Các thông số khác bao gồm trung bình và độ lệch chuẩn của thuộc tính cần nội suy và khoảng cách phạm vi tối đa để nội suy. Ví dụ sau đây tạo một bề mặt nội suy của
nồng độ khí mê-tan để lấp đầy khoảng trống không gian trong tập dữ liệu đường quét ban đầu. FeatureCollection được tạo bằng cách lấy mẫu một tổ hợp khí mê-tan trong hai tuần.
Xin lưu ý rằng, như được chỉ định bởi tham số range, phép nội suy chỉ tồn tại trong phạm vi tối đa 70 km từ trạm đo lường gần nhất.
Kriging
Kriging là một phương pháp nội suy sử dụng giá trị ước tính được mô hình hoá của hệ số biến thiên bán phần để tạo hình ảnh của các giá trị nội suy, là tổ hợp tối ưu của các giá trị tại các vị trí đã biết.
Phương pháp ước tính Kriging yêu cầu các thông số mô tả hình dạng của variogram bán phù hợp với các điểm dữ liệu đã biết. Các tham số này được minh hoạ trong Hình 1.
Hình 1. Các tham số nugget, sill và range được minh hoạ trên một hàm variogram lý tưởng.
Ví dụ sau đây lấy mẫu hình ảnh nhiệt độ bề mặt đại dương (SST) ở các vị trí ngẫu nhiên, sau đó nội suy SST từ mẫu bằng cách sử dụng Kriging:
Kích thước của vùng lân cận để thực hiện nội suy được chỉ định bằng tham số maxDistance. Kích thước lớn hơn sẽ mang lại kết quả mượt mà hơn nhưng tính toán chậm hơn.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\u003cp\u003eEarth Engine interpolates numeric data from vector features to create continuous raster images.\u003c/p\u003e\n"],["\u003cp\u003eInverse Distance Weighting (IDW) interpolation estimates values based on the distance and decay factor from known data points.\u003c/p\u003e\n"],["\u003cp\u003eKriging utilizes a semi-variogram model to produce an optimal interpolation based on spatial relationships of known values.\u003c/p\u003e\n"],["\u003cp\u003eBoth methods offer customizable parameters to control the interpolation process, like range, maximum distance, and model-specific settings.\u003c/p\u003e\n"]]],["Earth Engine interpolates numeric data from a `FeatureCollection` to create a continuous `Image`. Inverse Distance Weighted (IDW) interpolation uses a decay factor (`gamma`) and distance parameters to estimate values, demonstrated by interpolating methane concentration data. Kriging interpolation, another method, uses semi-variance estimates (`nugget`, `sill`, `range`) to generate interpolated values, exemplified through sea surface temperature interpolation. Both methods sample raster data to create `FeatureCollections` for interpolation. The `maxDistance` parameter determines the interpolation neighborhood's size in Kriging.\n"],null,["# Vector to Raster Interpolation\n\nInterpolation from vector to raster in Earth Engine creates an `Image`\nfrom a `FeatureCollection`. Specifically, Earth Engine uses numeric data\nstored in a property of the features to interpolate values at new locations outside\nof the features. The interpolation results in a continuous `Image` of\ninterpolated values up to the distance specified.\n\nInverse Distance Weighted Interpolation\n---------------------------------------\n\nThe inverse distance weighting (IDW) function in Earth Engine is based on the method\ndescribed by\n[Basso\net al. (1999)](https://ieeexplore.ieee.org/abstract/document/805606). An additional control parameter is added in the form of a\ndecay factor (`gamma`) on the inverse distance. Other parameters include the\nmean and standard deviation of the property to interpolate and the maximum range\ndistance over which to interpolate. The following example creates an interpolated surface of\n[methane concentration](https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S5P_OFFL_L3_CH4) to fill spatial gaps in the original raster dataset. The\n`FeatureCollection` is generated by sampling a two-week methane composite. \n\n```gdscript\n// Import two weeks of S5P methane and composite by mean.\nvar ch4 = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4')\n .select('CH4_column_volume_mixing_ratio_dry_air')\n .filterDate('2019-08-01', '2019-08-15')\n .mean()\n .rename('ch4');\n\n// Define an area to perform interpolation over.\nvar aoi =\n ee.Geometry.Polygon(\n [[[-95.68487605978851, 43.09844605027055],\n [-95.68487605978851, 37.39358590079781],\n [-87.96148738791351, 37.39358590079781],\n [-87.96148738791351, 43.09844605027055]]], null, false);\n\n// Sample the methane composite to generate a FeatureCollection.\nvar samples = ch4.addBands(ee.Image.pixelLonLat())\n .sample({region: aoi, numPixels: 1500,\n scale:1000, projection: 'EPSG:4326'})\n .map(function(sample) {\n var lat = sample.get('latitude');\n var lon = sample.get('longitude');\n var ch4 = sample.get('ch4');\n return ee.Feature(ee.Geometry.Point([lon, lat]), {ch4: ch4});\n });\n\n// Combine mean and standard deviation reducers for efficiency.\nvar combinedReducer = ee.Reducer.mean().combine({\n reducer2: ee.Reducer.stdDev(),\n sharedInputs: true});\n\n// Estimate global mean and standard deviation from the points.\nvar stats = samples.reduceColumns({\n reducer: combinedReducer,\n selectors: ['ch4']});\n\n// Do the interpolation, valid to 70 kilometers.\nvar interpolated = samples.inverseDistance({\n range: 7e4,\n propertyName: 'ch4',\n mean: stats.get('mean'),\n stdDev: stats.get('stdDev'),\n gamma: 0.3});\n\n// Define visualization arguments.\nvar band_viz = {\n min: 1800,\n max: 1900,\n palette: ['0D0887', '5B02A3', '9A179B', 'CB4678',\n 'EB7852', 'FBB32F', 'F0F921']};\n\n// Display to map.\nMap.centerObject(aoi, 7);\nMap.addLayer(ch4, band_viz, 'CH4');\nMap.addLayer(interpolated, band_viz, 'CH4 Interpolated');\n```\n\nNote that, as specified by the `range` parameter, the interpolation only\nexists up to 70 kilometers from the nearest measurement station.\n\nKriging\n-------\n\n[Kriging](https://en.wikipedia.org/wiki/Kriging) is an interpolation method\nthat uses a modeled estimate of\n[semi-variance](https://en.wikipedia.org/wiki/Semivariance) to create an image\nof interpolated values that is an optimal combination of the values at known locations.\nThe Kriging estimator requires parameters that describe the shape of a\n[semi-variogram](https://en.wikipedia.org/wiki/Variogram) fit to the known data\npoints. These parameters are illustrated by Figure 1.\nFigure 1. The `nugget`, `sill` and `range` parameters illustrated on a idealized variogram function.\n\nThe following example samples a sea surface temperature (SST) image at random locations,\nthen interpolates SST from the sample using Kriging: \n\n```cplint\n// Load an image of sea surface temperature (SST).\nvar sst = ee.Image('NOAA/AVHRR_Pathfinder_V52_L3/20120802025048')\n .select('sea_surface_temperature')\n .rename('sst')\n .divide(100);\n\n// Define a geometry in which to sample points\nvar geometry = ee.Geometry.Rectangle([-65.60, 31.75, -52.18, 43.12]);\n\n// Sample the SST image at 1000 random locations.\nvar samples = sst.addBands(ee.Image.pixelLonLat())\n .sample({region: geometry, numPixels: 1000})\n .map(function(sample) {\n var lat = sample.get('latitude');\n var lon = sample.get('longitude');\n var sst = sample.get('sst');\n return ee.Feature(ee.Geometry.Point([lon, lat]), {sst: sst});\n });\n\n// Interpolate SST from the sampled points.\nvar interpolated = samples.kriging({\n propertyName: 'sst',\n shape: 'exponential',\n range: 100 * 1000,\n sill: 1.0,\n nugget: 0.1,\n maxDistance: 100 * 1000,\n reducer: 'mean',\n});\n\nvar colors = ['00007F', '0000FF', '0074FF',\n '0DFFEA', '8CFF41', 'FFDD00',\n 'FF3700', 'C30000', '790000'];\nvar vis = {min:-3, max:40, palette: colors};\n\nMap.setCenter(-60.029, 36.457, 5);\nMap.addLayer(interpolated, vis, 'Interpolated');\nMap.addLayer(sst, vis, 'Raw SST');\nMap.addLayer(samples, {}, 'Samples', false);\n```\n\nThe size of the neighborhood in which to perform the interpolation is specified by the\n`maxDistance` parameter. Larger sizes will result in smoother output but\nslower computations."]]