การประมาณจากเวกเตอร์เป็นแรสเตอร์ใน Earth Engine จะสร้าง Image
จาก FeatureCollection
กล่าวโดยละเอียดคือ Earth Engine ใช้ข้อมูลตัวเลขที่จัดเก็บไว้ในพร็อพเพอร์ตี้ขององค์ประกอบเพื่อหาค่าที่แน่นอนในตำแหน่งใหม่นอกองค์ประกอบ การประมาณจะให้Image
ค่าที่ประมาณอย่างต่อเนื่องจนถึงระยะทางที่ระบุ
การประมาณแบบถ่วงน้ำหนักตามระยะทางผกผัน
ฟังก์ชันการถ่วงน้ำหนักตามระยะทางแบบผกผัน (IDW) ใน Earth Engine อิงตามวิธีการที่อธิบายโดย Basso et al. (1999) ระบบจะเพิ่มพารามิเตอร์การควบคุมเพิ่มเติมในรูปแบบของปัจจัยการลดลง (gamma
) ในระยะทางผกผัน พารามิเตอร์อื่นๆ ได้แก่ ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของพร็อพเพอร์ตี้ที่จะใช้หาค่าระหว่างและระยะทางสูงสุดที่จะใช้หาค่าระหว่าง ตัวอย่างต่อไปนี้สร้างพื้นผิวที่อัตราส่วนกันของ
ความเข้มข้นของมีเทนเพื่อเติมช่องว่างเชิงพื้นที่ในชุดข้อมูลแรสเตอร์ต้นฉบับ FeatureCollection
สร้างขึ้นโดยการสุ่มตัวอย่างคอมโพสิตมีเทน 2 สัปดาห์
// Import two weeks of S5P methane and composite by mean. var ch4 = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4') .select('CH4_column_volume_mixing_ratio_dry_air') .filterDate('2019-08-01', '2019-08-15') .mean() .rename('ch4'); // Define an area to perform interpolation over. var aoi = ee.Geometry.Polygon( [[[-95.68487605978851, 43.09844605027055], [-95.68487605978851, 37.39358590079781], [-87.96148738791351, 37.39358590079781], [-87.96148738791351, 43.09844605027055]]], null, false); // Sample the methane composite to generate a FeatureCollection. var samples = ch4.addBands(ee.Image.pixelLonLat()) .sample({region: aoi, numPixels: 1500, scale:1000, projection: 'EPSG:4326'}) .map(function(sample) { var lat = sample.get('latitude'); var lon = sample.get('longitude'); var ch4 = sample.get('ch4'); return ee.Feature(ee.Geometry.Point([lon, lat]), {ch4: ch4}); }); // Combine mean and standard deviation reducers for efficiency. var combinedReducer = ee.Reducer.mean().combine({ reducer2: ee.Reducer.stdDev(), sharedInputs: true}); // Estimate global mean and standard deviation from the points. var stats = samples.reduceColumns({ reducer: combinedReducer, selectors: ['ch4']}); // Do the interpolation, valid to 70 kilometers. var interpolated = samples.inverseDistance({ range: 7e4, propertyName: 'ch4', mean: stats.get('mean'), stdDev: stats.get('stdDev'), gamma: 0.3}); // Define visualization arguments. var band_viz = { min: 1800, max: 1900, palette: ['0D0887', '5B02A3', '9A179B', 'CB4678', 'EB7852', 'FBB32F', 'F0F921']}; // Display to map. Map.centerObject(aoi, 7); Map.addLayer(ch4, band_viz, 'CH4'); Map.addLayer(interpolated, band_viz, 'CH4 Interpolated');
โปรดทราบว่าการประมาณค่าจะอยู่ที่ไม่เกิน 70 กิโลเมตรจากสถานีวัดที่ใกล้ที่สุดตามที่ระบุโดยพารามิเตอร์ range
Kriging
การประมาณ Kriging เป็นวิธีการประมาณที่ใช้ค่าประมาณแบบโมเดลของค่าสัมประสิทธ์ของค่าเบี่ยงเบนมาตรฐานเพื่อสร้างรูปภาพของค่าที่ประมาณ ซึ่งเป็นการรวมค่าที่ดีที่สุดในตำแหน่งที่ทราบ เครื่องประมาณ Kriging ต้องใช้พารามิเตอร์ที่อธิบายรูปร่างของ Semi-variogram ที่พอดีกับจุดข้อมูลซึ่งทราบ พารามิเตอร์เหล่านี้แสดงอยู่ในรูปที่ 1

nugget
, sill
และ range
ที่แสดงในฟังก์ชัน Variogram สมมติ
ตัวอย่างต่อไปนี้แสดงการสุ่มตัวอย่างรูปภาพอุณหภูมิผิวน้ำทะเล (SST) ณ ตำแหน่งต่างๆ จากนั้นจะประมาณ SST จากตัวอย่างโดยใช้ Kriging
// Load an image of sea surface temperature (SST). var sst = ee.Image('NOAA/AVHRR_Pathfinder_V52_L3/20120802025048') .select('sea_surface_temperature') .rename('sst') .divide(100); // Define a geometry in which to sample points var geometry = ee.Geometry.Rectangle([-65.60, 31.75, -52.18, 43.12]); // Sample the SST image at 1000 random locations. var samples = sst.addBands(ee.Image.pixelLonLat()) .sample({region: geometry, numPixels: 1000}) .map(function(sample) { var lat = sample.get('latitude'); var lon = sample.get('longitude'); var sst = sample.get('sst'); return ee.Feature(ee.Geometry.Point([lon, lat]), {sst: sst}); }); // Interpolate SST from the sampled points. var interpolated = samples.kriging({ propertyName: 'sst', shape: 'exponential', range: 100 * 1000, sill: 1.0, nugget: 0.1, maxDistance: 100 * 1000, reducer: 'mean', }); var colors = ['00007F', '0000FF', '0074FF', '0DFFEA', '8CFF41', 'FFDD00', 'FF3700', 'C30000', '790000']; var vis = {min:-3, max:40, palette: colors}; Map.setCenter(-60.029, 36.457, 5); Map.addLayer(interpolated, vis, 'Interpolated'); Map.addLayer(sst, vis, 'Raw SST'); Map.addLayer(samples, {}, 'Samples', false);
ขนาดของพื้นที่ใกล้เคียงที่จะใช้ทำการอินเตอร์โพเลชันจะระบุโดยพารามิเตอร์ maxDistance
ความละเอียดที่สูงขึ้นจะทำให้เอาต์พุตลื่นไหลขึ้น แต่การประมวลผลจะช้าลง