GEE基本概念(二)——2.Image&ImageCollection

2.GEE重要概念——Image ImageCollection

2.1 image

ee.Iamge()

GEE的影像信息主要有三部分:1.影像的ID;2.影像的版本号;3.波段列表和属性信息。

1.ID是查找影像的唯一标识;

2.波段列表记录了影像的所有波段信息,(包括类型,投影,影像的宽高等);

3.属性记录了影像的基本信息,拍摄日期、轨道号、对应存储的ID、云量等。

example1:加载一张landsat图像并显示

var image = ee.Image("LANDSAT/LC08/C01/T1_TOA/LC08_123037_20180611");
Map.centerObject(image, 7);
print(image);
Map.addLayer(image)//默认加载第一个波段

var visParams= {bands: ['B5', 'B4', 'B3'], min: 5000, max: 15000, gamma: 1.3};
Map.centerObject(image, 7);
Map.addLayer(image.select('B1'),{min:0,max:0.3},"B1")
Map.addLayer(image.select('B2'),{min:0,max:0.3},"B2")
Map.addLayer(image,visParams,"RGB")
//Map.addLayer(image,{min:0,max:0.3,bands:["B4","B3","B2"]},"RGB")等效

example2:筛选出某地区某时段内云量最少的Landsat 8影像并显示出来

var point = ee.Geometry.Point(117.089, 36.744); 
var start= ee.Date('2020-08-01');
var finish = ee.Date('2020-09-01');
// 云量筛选
var  img = ee.ImageCollection('LANDSAT/LC08/C01/T1')
  .filterBounds(point)
  .filterDate(start, finish)
  .sort('CLOUD_COVER', true)
  .first()

var vizParams = {bands: ['B5', 'B4', 'B3'], min: 5000, max: 15000, gamma: 1.3};
Map.centerObject(img, 7);
Map.addLayer(img, vizParams, 'Landsat 8 false color'); 

example3:图像运算,以计算NDVI为例,给出三种方法:

波段之间的加法运算,以及创建像素的经纬度变量(不知道我为什么放在这块)

var Image_1 = ee.Image(10);
var Image_2 = ee.Image(20);
var Image_3 = Image_1.add(Image_2);

print(Image_1, Image_2, Image_3);

var Image_Lon_Lat = ee.Image.pixelLonLat();     //创建具有两个名为“经度”和“纬度”波段的图像,其中包含每个像素处的经度和纬度(以度数表示)。
print(Image_Lon_Lat);

Map.addLayer(Image_Lon_Lat,{bands:['longitude'],min:-180,max:180},'Longitude');
Map.addLayer(Image_Lon_Lat,{bands:['latitude'],min:-60,max:60},'latitude');
Map.setCenter(0,0,3);
var image = ee.Image("LANDSAT/LC08/C01/T1_TOA/LC08_123037_20180611");
//第一种,不推荐
var ndvi_1 = image.select('B5').subtract(image.select('B4')).divide(image.select('B5').add(image.select('B4')));
//第二种,仅适合归一化
var ndvi_2 = image.normalizedDifference(['B5','B4'])
//第三种,合适
var ndvi_3 = image.expression('(NIR-RED)/(NIR+RED)',
            {'NIR':image.select('B5'),
            'RED':image.select('B4')
            });
var visParam = {min:-1, max:1, palette:['0000FF','FF0000']};
Map.centerObject(image,7)
Map.addLayer(ndvi_1,visParam,'ndvi_1');
Map.addLayer(ndvi_2,visParam,'ndvi_2');
Map.addLayer(ndvi_3,visParam,'ndvi_3');

Image常用命令查询:

命令含义
Image.mask()创建一个数组图像,其中每个数组值像素被另一个数组值像素遮盖,只保留遮盖非零的元素。如果掩模图像有一个波段,它将被应用到“输入”的所有波段,否则它们必须有相同数量的波段。
Image.clip()用几何图形或矢量裁剪图像。
Image.select()从图像中选择波段。返回带有选定波段的图像。
Image.slice()按位置从图像中选择一组相邻的频带。
Image.rgbToHsv()将图像从RGB颜色空间转换到HSV颜色空间。期望在[0,1]范围内的3波段图像,并产生三个波段:色调、饱和度和值,值在[0,1]范围内。
Image.hsvToRgb()将图像从HSV颜色空间转换为RGB颜色空间。期望在[0,1]范围内的3波段图像,并产生三个波段:红、绿、蓝,其值在[0,1]范围内。

展示为Image.rgbToHsv()和 Image.hsvToRgb()的应用,没啥大作用。

var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_RT');
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(108.9354, 34.3398))
          .first()).slice(2,5).unitScale(0,32468);          

var L8_HSV = L8_One.rgbToHsv()
var L8_RGB = L8_One.hsvToRgb()

print(L8_One,L8_HSV,L8_RGB)
Map.setCenter(108.9354, 34.3398)
Map.addLayer(L8_One,{},'Origin');
Map.addLayer(L8_HSV,{},'HSV');
Map.addLayer(L8_RGB,{},'RGB');

2.2 imageCollection

ee.IamgeCollection()

下面是一个输出影像集合的例子:

var imgCol = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA').limit(10);
print(imgCol);
//这块的.limit(10)是因为gee只能打印不超过5000张影像,而一个集合往往超出,使用要加以限制。

2.3综合应用

example1:显示山西省Landsat影像(以中心点形式)的可获得情况


var shanxi = province.filter(ee.Filter.eq('PINYIN_NAM','Shanxi'));
Map.addLayer(shanxi);

// This function returns the image centroid as a new Feature.
var getGeom = function(image) {
  return ee.Feature(image.geometry().centroid(), {foo: 1});
};          //在该区域的遥感影像的中心点


// Load a Landsat 8 collection.
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
  // .filterBounds(ee.Geometry.Point(-122.262, 37.8719))
  .filterDate('2020-07-01', '2020-08-01')
  .filterBounds(shanxi)

// Map the function over the ImageCollection.
var featureCollection = ee.FeatureCollection(collection.map(getGeom));

// Print the collection.
print(featureCollection);
Map.addLayer(featureCollection)

example2:综合例子,

代码链接:https://code.earthengine.google.com/ce4aebb5b8ffc68ba717a27a3e3fcdc5

var roi = ee.Geometry.Point([116.29780273437495, 39.64351217797058]); 
Map.centerObject(roi, 7);  
var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA");  
//1.filter的使用
var scol = l8.filterBounds(roi)  
             .filterDate("2017-4-1", "2017-6-1")  
             .filter(ee.Filter.lt("CLOUD_COVER", 5))  
             .map(function(image) {  
                var ndvi = image.normalizedDifference(["B5", "B4"]);  //2.计算NDVI
                return image.addBands(ndvi.rename("NDVI"));  
             });  
print("scol", scol);  
//reducer计算最大值
var ndvi = scol.select("NDVI").reduce(ee.Reducer.max());  
var ndviVis = {  
  min: 0,   
  max: 0.8,  
  palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901,'+  
           '66A000, 529400, 3E8601, 207401, 056201, 004C00, 023B01,'+  
           '012E01, 011D01, 011301',  
};  
Map.addLayer(ndvi, ndviVis, "NDVI");  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值