GOES-17 MCMIPC 系列 ABI 2 级云层和水汽成像 CONUS
云层和水分成像产品的分辨率均为 2 公里。 1-6 波段为反射波段。 无量纲的 "反射系数 "以太阳天顶角为标准。 这些波段有助于确定云、植被、雪/冰和气溶胶的特征。 第 7-16 波段为发射波段。 大气顶部 (TOA) 的亮度温度以开尔文为单位测量。 这些波段支持根据发射特性对地表、云层、水蒸气、臭氧、火山灰和尘埃进行定性。 README 前称 "GOES West",卫星已被储存。 NOAA 卫星和产品运行办公室有一个一般卫星信息频道,提供最新状态信息。
GOES-17 MCMIPC 系列 ABI 2 级云层和水汽成像 CONUS 数据是由美国国家海洋和大气管理局(NOAA)的地球观测卫星-17号 GOES-East卫星获取的。这些数据提供了关于云层和水汽分布的高分辨率图像,覆盖了美国大陆范围(CONUS)。
这些数据是使用GOES-17卫星上的高级气象成像仪(ABI)获取的。ABI是一种先进的传感器,能够以非常高的空间分辨率(约2公里)和时间分辨率(每分钟一次)获取大气和地球表面的图像数据。
云层成像数据提供了关于云的位置、类型和云顶高度的信息。这对于天气预报和气候研究非常有用,可以帮助预测降雨、风暴和其他天气现象的发展趋势。
水汽成像数据提供了关于大气中水汽含量的信息。这对于监测大气湿度、气候模式分析和研究大气扩散等方面非常有用。
这些数据的高分辨率和实时更新频率使其成为天气预报和气候研究的重要工具。它们可以帮助气象学家和研究人员追踪天气变化、监测风暴系统的演变,并提供关于降雨、大气湿度和云的更准确的信息。
Dataset Availability
2018-12-04T16:30:38Z–2023-01-10T16:00:00Z
Dataset Provider
Earth Engine Snippet
ee.ImageCollection("NOAA/GOES/17/MCMIPC")
ee.ImageCollection("NOAA/GOES/17/MCMIPF")
ee.ImageCollection("NOAA/GOES/17/MCMIPM")
GOES -18
ee.ImageCollection("NOAA/GOES/18/MCMIPC")
ee.ImageCollection("NOAA/GOES/18/MCMIPF")
ee.ImageCollection("NOAA/GOES/18/MCMIPM")
Resolution 2000 meters
Bands
Name | Units | Min | Max | Wavelength | Description |
---|---|---|---|---|---|
CMI_C01 | Reflectance factor | 0 | 1.3 | 0.45-0.49µm | Visible - Blue Daytime aerosol over land, coastal water mapping. |
DQF_C01 | 0 | 4 | Data quality flags | ||
CMI_C02 | Reflectance factor | 0 | 1.3 | 0.59-0.69µm | Visible - Red Daytime clouds, fog, insolation, winds |
DQF_C02 | 0 | 4 | Data quality flags | ||
CMI_C03 | Reflectance factor | 0 | 1.3 | 0.846-0.885µm | Near-IR - Veggie Daytime vegetation, burn scar, aerosol over water, winds |
DQF_C03 | 0 | 4 | Data quality flags | ||
CMI_C04 | Reflectance factor | 0 | 1.3 | 1.371-1.386µm | Near-IR - Cirrus Daytime cirrus cloud |
DQF_C04 | 0 | 4 | Data quality flags | ||
CMI_C05 | Reflectance factor | 0 | 1.3 | 1.58-1.64µm | Near-IR - Snow/Ice Daytime cloud-top phase and particle size, snow |
DQF_C05 | 0 | 4 | Data quality flags | ||
CMI_C06 | Reflectance factor | 0 | 1.3 | 2.225-2.275µm | Near IR - Cloud Particle Size Daytime land, cloud properties, particle size, vegetation, snow |
DQF_C06 | 0 | 4 | Data quality flags | ||
CMI_C07 | K | 197.31 | 411.86 | 3.80-4.00µm | Infrared - Shortwave Window Brightness |
DQF_C07 | 0 | 4 | Data quality flags | ||
CMI_C08 | K | 138.05 | 311.06 | 5.77-6.6µm | Infrared - Upper-level water vapor High-level atmospheric water vapor, winds, rainfall Brightness |
DQF_C08 | 0 | 4 | Data quality flags | ||
CMI_C09 | K | 137.7 | 311.08 | 6.75-7.15µm | Infrared - Mid-level water vapor Mid-level atmospheric water vapor, winds, rainfall Brightness |
DQF_C09 | 0 | 4 | Data quality flags | ||
CMI_C10 | K | 126.91 | 331.2 | 7.24-7.44µm | Infrared - Lower-level water vapor Lower-level water vapor, winds, and sulfur dioxide Brightness |
DQF_C10 | 0 | 4 | Data quality flags | ||
CMI_C11 | K | 127.69 | 341.3 | 8.3-8.7µm | Infrared - Cloud-top phase Total water for stability, cloud phase, dust, sulfur dioxide, rainfall Brightness |
DQF_C11 | 0 | 4 | Data quality flags | ||
CMI_C12 | K | 117.49 | 311.06 | 9.42-9.8µm | Infrared - Ozone Total ozone, turbulence, winds |
DQF_C12 | 0 | 4 | Data quality flags | ||
CMI_C13 | K | 89.62 | 341.27 | 10.1-10.6µm | Infrared - "Clean" longwave window Surface and clouds Brightness |
DQF_C13 | 0 | 4 | Data quality flags | ||
CMI_C14 | K | 96.19 | 341.28 | 10.8-11.6µm | Infrared - Longwave window Imagery, sea surface temperature, clouds, rainfall Brightness |
DQF_C14 | 0 | 4 | Data quality flags | ||
CMI_C15 | K | 97.38 | 341.28 | 11.8-12.8µm | Infrared "Dirty" longwave Total water, volcanic ash, sea surface temperature Brightness |
DQF_C15 | 0 | 4 | Data quality flags | ||
CMI_C16 | K | 92.7 | 318.26 | 13.0-13.6µm | Infrared - CO_2 longwave Air temperature, cloud heights Brightness |
DQF_C16 | 0 | 4 | Data quality flags |
DQF_C01 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C02 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C03 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C04 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C05 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C06 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C07 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C08 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C09 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C10 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C11 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C12 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C13 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C14 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C15 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
DQF_C16 Class Table
Value | Color | Description |
---|---|---|
0 | #ffffff | Good pixels |
1 | #ff00ff | Conditionally usable pixels |
2 | #0000ff | Out of range pixels |
3 | #00ffff | No value pixels |
4 | #ffff00 | Focal plane temperature threshold exceeded |
Image Properties
Name | Type | Description |
---|---|---|
CMI_C01_offset | DOUBLE | Offset to add to scaled CMI_C01 values |
CMI_C01_scale | DOUBLE | Scale to multiply with raw CMI_C01 values |
CMI_C02_offset | DOUBLE | Offset to add to scaled CMI_C02 values |
CMI_C02_scale | DOUBLE | Scale to multiply with raw CMI_C02 values |
CMI_C03_offset | DOUBLE | Offset to add to scaled CMI_C03 values |
CMI_C03_scale | DOUBLE | Scale to multiply with raw CMI_C03 values |
CMI_C04_offset | DOUBLE | Offset to add to scaled CMI_C04 values |
CMI_C04_scale | DOUBLE | Scale to multiply with raw CMI_C04 values |
CMI_C05_offset | DOUBLE | Offset to add to scaled CMI_C05 values |
CMI_C05_scale | DOUBLE | Scale to multiply with raw CMI_C05 values |
CMI_C06_offset | DOUBLE | Offset to add to scaled CMI_C06 values |
CMI_C06_scale | DOUBLE | Scale to multiply with raw CMI_C06 values |
CMI_C07_offset | DOUBLE | Offset to add to scaled CMI_C07 values |
CMI_C07_scale | DOUBLE | Scale to multiply with raw CMI_C07 values |
CMI_C08_offset | DOUBLE | Offset to add to scaled CMI_C08 values |
CMI_C08_scale | DOUBLE | Scale to multiply with raw CMI_C08 values |
CMI_C09_offset | DOUBLE | Offset to add to scaled CMI_C09 values |
CMI_C09_scale | DOUBLE | Scale to multiply with raw CMI_C09 values |
CMI_C10_offset | DOUBLE | Offset to add to scaled CMI_C10 values |
CMI_C10_scale | DOUBLE | Scale to multiply with raw CMI_C10 values |
CMI_C11_offset | DOUBLE | Offset to add to scaled CMI_C11 values |
CMI_C11_scale | DOUBLE | Scale to multiply with raw CMI_C11 values |
CMI_C12_offset | DOUBLE | Offset to add to scaled CMI_C12 values |
CMI_C12_scale | DOUBLE | Scale to multiply with raw CMI_C12 values |
CMI_C13_offset | DOUBLE | Offset to add to scaled CMI_C13 values |
CMI_C13_scale | DOUBLE | Scale to multiply with raw CMI_C13 values |
CMI_C14_offset | DOUBLE | Offset to add to scaled CMI_C14 values |
CMI_C14_scale | DOUBLE | Scale to multiply with raw CMI_C14 values |
CMI_C15_offset | DOUBLE | Offset to add to scaled CMI_C15 values |
CMI_C15_scale | DOUBLE | Scale to multiply with raw CMI_C15 values |
CMI_C16_offset | DOUBLE | Offset to add to scaled CMI_C16 values |
CMI_C16_scale | DOUBLE | Scale to multiply with raw CMI_C16 values |
// Band aliases.
var BLUE = 'CMI_C01';
var RED = 'CMI_C02';
var VEGGIE = 'CMI_C03';
var GREEN = 'GREEN';
// 16 pairs of CMI and DQF followed by Bah 2018 synthetic green.
// Band numbers in the EE asset, 0-based.
var NUM_BANDS = 33;
// Skipping the interleaved DQF bands.
var BLUE_BAND_INDEX = (1 - 1) * 2;
var RED_BAND_INDEX = (2 - 1) * 2;
var VEGGIE_BAND_INDEX = (3 - 1) * 2;
var GREEN_BAND_INDEX = NUM_BANDS - 1;
// Visualization range for GOES RGB.
var GOES_MIN = 0.0;
var GOES_MAX = 0.7; // Alternatively 1.0 or 1.3.
var GAMMA = 1.3;
var goesRgbViz = {
bands: [RED, GREEN, BLUE],
min: GOES_MIN,
max: GOES_MAX,
gamma: GAMMA
};
var applyScaleAndOffset = function(image) {
image = ee.Image(image);
var bands = new Array(NUM_BANDS);
for (var i = 1; i < 17; i++) {
var bandName = 'CMI_C' + (100 + i + '').slice(-2);
var offset = ee.Number(image.get(bandName + '_offset'));
var scale = ee.Number(image.get(bandName + '_scale'));
bands[(i-1) * 2] = image.select(bandName).multiply(scale).add(offset);
var dqfName = 'DQF_C' + (100 + i + '').slice(-2);
bands[(i-1) * 2 + 1] = image.select(dqfName);
}
// Bah, Gunshor, Schmit, Generation of GOES-16 True Color Imagery without a
// Green Band, 2018. https://doi.org/10.1029/2018EA000379
// Green = 0.45 * Red + 0.10 * NIR + 0.45 * Blue
var green1 = bands[RED_BAND_INDEX].multiply(0.45);
var green2 = bands[VEGGIE_BAND_INDEX].multiply(0.10);
var green3 = bands[BLUE_BAND_INDEX].multiply(0.45);
var green = green1.add(green2).add(green3);
bands[GREEN_BAND_INDEX] = green.rename(GREEN);
return ee.Image(ee.Image(bands).copyProperties(image, image.propertyNames()));
};
var collection = 'NOAA/GOES/17/MCMIPC/';
var imageName = '2020211190617600000';
var assetId = collection + imageName;
var image = applyScaleAndOffset(assetId);
Map.setCenter(-120, 43, 5);
Map.addLayer(image, goesRgbViz);
// Band aliases.
var BLUE = 'CMI_C01';
var RED = 'CMI_C02';
var VEGGIE = 'CMI_C03';
var GREEN = 'GREEN';
// 16 pairs of CMI and DQF followed by Bah 2018 synthetic green.
// Band numbers in the EE asset, 0-based.
var NUM_BANDS = 33;
// Skipping the interleaved DQF bands.
var BLUE_BAND_INDEX = (1 - 1) * 2;
var RED_BAND_INDEX = (2 - 1) * 2;
var VEGGIE_BAND_INDEX = (3 - 1) * 2;
var GREEN_BAND_INDEX = NUM_BANDS - 1;
// Visualization range for GOES RGB.
var GOES_MIN = 0.0;
var GOES_MAX = 0.7; // Alternatively 1.0 or 1.3.
var GAMMA = 1.3;
var goesRgbViz = {
bands: [RED, GREEN, BLUE],
min: GOES_MIN,
max: GOES_MAX,
gamma: GAMMA
};
var applyScaleAndOffset = function(image) {
image = ee.Image(image);
var bands = new Array(NUM_BANDS);
for (var i = 1; i < 17; i++) {
var bandName = 'CMI_C' + (100 + i + '').slice(-2);
var offset = ee.Number(image.get(bandName + '_offset'));
var scale = ee.Number(image.get(bandName + '_scale'));
bands[(i-1) * 2] = image.select(bandName).multiply(scale).add(offset);
var dqfName = 'DQF_C' + (100 + i + '').slice(-2);
bands[(i-1) * 2 + 1] = image.select(dqfName);
}
// Bah, Gunshor, Schmit, Generation of GOES-16 True Color Imagery without a
// Green Band, 2018. https://doi.org/10.1029/2018EA000379
// Green = 0.45 * Red + 0.10 * NIR + 0.45 * Blue
var green1 = bands[RED_BAND_INDEX].multiply(0.45);
var green2 = bands[VEGGIE_BAND_INDEX].multiply(0.10);
var green3 = bands[BLUE_BAND_INDEX].multiply(0.45);
var green = green1.add(green2).add(green3);
bands[GREEN_BAND_INDEX] = green.rename(GREEN);
return ee.Image(ee.Image(bands).copyProperties(image, image.propertyNames()));
};
var collection = 'NOAA/GOES/17/MCMIPF/';
var imageName = '2020211200032100000';
var assetId = collection + imageName;
var image = applyScaleAndOffset(assetId);
Map.addLayer(image, goesRgbViz);
// Demonstrates displaying GOES-17 Mesoscale images.
// Band names.
var BLUE = 'CMI_C01';
var RED = 'CMI_C02';
var VEGGIE = 'CMI_C03';
var GREEN = 'GREEN';
/**
* Properly scales an MCMIPM image.
*
* @param {ee.Image} image An unaltered MCMIPM image.
* @return {ee.Image}
*/
var applyScaleAndOffset = function(image) {
var names = image.select('CMI_C..').bandNames();
// Scale the radiance bands using the image's metadata.
var scales = names.map(function(name) {
return image.getNumber(ee.String(name).cat('_scale'));
});
var offsets = names.map(function(name) {
return image.getNumber(ee.String(name).cat('_offset'));
});
var scaled = image.select('CMI_C..')
.multiply(ee.Image.constant(scales))
.add(ee.Image.constant(offsets));
return image.addBands({srcImg: scaled, overwrite: true});
};
/**
* Computes and adds a green radiance band to a MCMIPM image.
*
* The image must already have been properly scaled via applyScaleAndOffset.
*
* For more information on computing the green band, see:
* https://doi.org/10.1029/2018EA000379
*
* @param {ee.Image} image An image to add a green radiance band to. It
* must be the result of the applyScaleAndOffset function.
* @return {ee.Image}
*/
var addGreenBand = function(image) {
function toBandExpression(bandName) { return 'b(\'' + bandName + '\')'; }
var B_BLUE = toBandExpression(BLUE);
var B_RED = toBandExpression(RED);
var B_VEGGIE = toBandExpression(VEGGIE);
// Green = 0.45 * Red + 0.10 * NIR + 0.45 * Blue
var GREEN_EXPR = GREEN + ' = 0.45 * ' + B_RED + ' + 0.10 * ' + B_VEGGIE +
' + 0.45 * ' + B_BLUE;
var green = image.expression(GREEN_EXPR).select(GREEN);
return image.addBands(green);
};
var COLLECTION = 'NOAA/GOES/17/MCMIPM';
// Select a subset of the collection, correct the values, and add a green band.
var START = ee.Date('2020-09-09T21:03:00');
var END = START.advance(10, 'minutes');
var collection = ee.ImageCollection(COLLECTION)
.filterDate(START, END)
.map(applyScaleAndOffset)
.map(addGreenBand);
// Separates the two domains.
var domain1_col = collection.filter('domain == 1');
var domain2_col = collection.filter('domain == 2');
// Note that there are 20 assets, 10 in each domain.
var size = ee.String('sizes: collection = ').cat(collection.size());
var size1 = ee.String('domain1 = ').cat(domain1_col.size());
var size2 = ee.String('domain2 = ').cat(domain2_col.size());
print(size.cat(' → ').cat(size1).cat(' and ').cat(size2));
// Visualization parameters.
var goesRgbViz = { bands: [RED, GREEN, BLUE], min: 0.0, max: 0.38, gamma: 1.3 };
// Displays a sample image from domain 1 and 2.
Map.addLayer(domain1_col.first(), goesRgbViz, 'Domain 1');
Map.addLayer(domain2_col.first(), goesRgbViz, 'Domain 2');
Map.setCenter(-133, 50, 3);