Google Earth Engine数据类型Image

空间数据类型—Image

//数据类型:String、Number、Dictionary、List、Array
//几何数据类型:Geometry、Feature、Feature Collection、Image、Image Collection
//Feature是矢量数据
//image特指栅格数据

1.1 创建 ee.Image/ee.Image.Constant

//没有空间分辨率和边界的概念,好像是包含数据的有弹性的纸
var Image_1=ee.Image(10)
var Image_2 = ee.Image.constant(20)
var Image_3 = Image_1.add(Image_2)//add相加值
print(Image_1,Image_2,Image_3)

1.2 创建 ee.Image.pixelLonLat()

//没有分辨率没有边界概念的栅格图像,但该点由经纬度两个值构成

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)

在这里插入图片描述

2.1 掩膜Image.mask() 栅格对栅格

var Image_DEM = ee.Image('CGIAR/SRTM90_V4')//获得GEE自带高程
var Image_CropLand = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3").select('landcover').eq(11)
//时土地利用=11则为玉米地
var Image_Masked = Image_DEM.mask(Image_CropLand)//用cropLand掩膜DEM,不是裁减
print(Image_DEM,Image_CropLand,Image_Masked)

Map.setCenter(106.4,34.78,4)//设置中心经纬度,放大倍数
Map.addLayer(Image_DEM,{"opacity":1,"bands":["elevation"],"min":0,"max":1400,
"palette":["2dff07","ff0b0b"]},'Image_DEM')//Map.addLayer(var名,{'性质':opacity是透明度},'layer名')
Map.addLayer(Image_CropLand,{"opacity":1,"bands":["landcover"],
"palette":["ffffff","fbff2d"]},'Image_CropLand')
Map.addLayer(Image_Masked,{"opacity":1,"bands":["elevation"],"min":0,"max":1400,
"palette":["2dff07","ff0b0b"]},'Image_Masked')

在这里插入图片描述

2.2裁减 Image.clip() 矢量对栅格

var DEM = ee.Image("USGS/SRTMGL1_003")
var Beijing =ee.FeatureCollection("projects/ee-wn1206/assets/china")
.filterBounds(ee.Geometry.Point([116.5,39.9]))
//先创建出feature在通过点删选出所在区域
var Beijing_DEM = DEM.clip(Beijing)
Map.setCenter(116.5,39.9)
Map.addLayer(Beijing_DEM,{min:0, max:200})//DEM灰度拉伸区间,否则全灰色

在这里插入图片描述

2.3 选波段择 Image.select(‘波段名’)

var Glob_Cover = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3")
var Land_cover = Glob_Cover.select('landcover')// Glob_Cover存在两个波段土地利用信息及解译质量
var Land_cover_quality = Glob_Cover.select('qa')
var china_LC = Land_cover.clip(ee.FeatureCollection("projects/ee-wn1206/assets/china"))//裁减出中国
var china_LCQ = Land_cover_quality.clip(ee.FeatureCollection("projects/ee-wn1206/assets/china"))
Map.setCenter(116.5,39.9,4)
Map.addLayer(china_LCQ,{"bands":["Landcover"],"palette":["ffbbff","fbff2d"]},China_LCQ)
Map.addLayer(china_LC)
print(Glob_Cover)

在这里插入图片描述

2.4 波段切割 Image…slice()

var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first())
var L8_Slice = L8_One.slice(2,5) // 2不包含,5包含

print(L8_One,L8_Slice)

在这里插入图片描述

2.5 多段添加 Image.addBands()

var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_RT")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first())
var L8_B5 = L8_One.select('B5')
var L8_B4 = L8_One.select('B4')
var L8_B5_4 = L8_B5.addBands(L8_B4)
print(L8_B5,L8_B4,L8_B5_4)

在这里插入图片描述

2.6 重投影 Image.reproject()

var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first())
var L8_Reproject = L8_One.reproject('EPSG:3857',null,100)//(重投影编号,默认null,100是分辨率)
print(L8_One)
print(L8_One.select('B1').projection(), L8_Reproject.projection())
Map.setCenter(106.58365,29.56972,15)
Map.addLayer(L8_One,{"bands":["B5","B4","B3"],"min":10586,"max":18154},"30m")//分辨率原来为30m
Map.addLayer(L8_Reproject,{"bands":["B5","B4","B3"],"min":10586,"max":18154},"100m")

在这里插入图片描述

2.7 RGB转HSV Image.rgbtohsv / hsvtorgb

var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first()).slice(2,5).unitScale(0,32468)
//删选出含有点的第一个栅格图层,再选出345波段并将其unitScale? EPSG:32648
var L8_HSV=L8_One.rgbToHsv()
var L8_RGB=L8_One.hsvToRgb()
print(L8_One,L8_HSV,L8_RGB)
Map.setCenter(106.5,29.5.9)
Map.addLayer(L8_One,{},'Origin')
Map.addLayer(L8_HSV,{},'HSV')
Map.addLayer(L8_RGB,{},'RGB')

在这里插入图片描述

2.8 修改多波段 Image.cast()

var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first())
.slice(2,5).unitScale(0,32468)
var L8_Cast = L8_One.cast({'B5':'double','B4':'double','B3':"double"},['B5','B4','B3'])
//将B345波段float改为double类型
print(L8_One, L8_Cast)

在这里插入图片描述

2.9 修改属性信息 Image.set() Image.setMulti()

var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
var L8_One = ee.Image(L8.filterBounds(ee.Geometry.Point(106.4958,29.5856)).first())
.slice(2,5).unitScale(0,32468)
var L8_HSV = L8_One.rgbToHsv().set('note',"This image was created by 'rgbToHsv()'")
.setMulti({'author':'szliu','Mood':'Not bad'})
print(L8_HSV)

在这里插入图片描述

2.10 重分类 Image.remap()

//点击?help→其他支持→DataCatalog →查看所有数据集→搜索CLOBCOVER 可复制加载代码
var dataset = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3');
var landcover = dataset.select('landcover');
//=var Land_Cover = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3').select('landcover');
//Map.setCenter(-88.6, 26.4, 3);美国中心
//Map.addLayer(landcover, {}, 'Landcover');
//以上官网复制
var China =ee.FeatureCollection("projects/ee-wn1206/assets/china");
var China_LC= landcover.clip(China);
Map.setCenter(116.5,39.9,3);
 var Land_Remap=China_LC.remap([11,14,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,17,0,180,190,200,210,220,230],[0,0,0,0,1,1,1,1,2,2,2,3,3,3,4,4,4,5,5,6,7,8],8,'landcovet')
Map.addLayer(China_LC, {"palette":["ffff63","009f00","8d9f00","ffebae","009578","c31300","0046c7","743411"]}, 'Landcover_Remap');
print(China_LC);

在这里插入图片描述

在这里插入图片描述

2.11 Image.Where()栅格计算器

var elevation = ee.Image('CGIAR/SRTM90_V4').select('elevation');
var Land_Cover = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3').select('landcover');
var High_Land= Land_Cover.where(elevation.lt(4000),0)
//把高程小于4000的赋值为-0为黑色
Map.setCenter(116.5,39.9,3)
Map.addLayer(High_Land)
Map.addLayer(elevation.gt(4000))//layer2白色部分是大于4000米

在这里插入图片描述

2.12 Image.clamp 截断值

var DEM = ee.Image('CGIAR/SRTM90_V4').select('elevation');
print (DEM)查看系统可见最小值或是官网数据信息
var DEM_Clamp=DEM.clamp(4000,8000)//原始数据在-400-8000
Map.setCenter(116.5,39.9,3);
Map.addLayer(DEM_Clamp)

在这里插入图片描述

2.13 归一化.unitScale()

var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1')
                  .filterDate('2017-01-01', '2017-12-31');
var trueColor432 = dataset.select(['B4', 'B3', 'B2']);
var trueColor432Vis = {
  min: 0.0,
  max: 30000.0,
};
Map.setCenter(6.746, 46.529, 6);
Map.addLayer(trueColor432, trueColor432Vis, 'True Color (432)');


var L8_One = ee.ImageCollection('LANDSAT/LC08/C02/T1').filterBounds(ee.Geometry.Point([116.5,39.9])).first();
 Map.setCenter(116.5,39.9,6);
var L8_Unitscale=L8_One.unitScale(0,32767)//符号整型int16 变为float
print(L8_One,L8_Unitscale)
Map.addLayer(L8_One,{"bands":['B4', 'B3', 'B2'],"min":0,"max":30000} , ' Color (432)');//设置为真彩色
Map.addLayer(L8_Unitscale,{"bands":['B4', 'B3', 'B2'],"min":0,"max":0.92} , 'True Color (432)');//30000对应0.92

在这里插入图片描述

2.14 Image.interpolate()分段线性拉伸

var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
function Add_Center(feature)
{ 
return ee.Geometry(feature.centroid())//获得矢量省的中心点函数
}
var provinces_centers=china.map(Add_Center))//对每个矢量这样操作
var center_distance=province_centers(200000)//等同于buffer
var distance_Interpolate=center_distance.interpolate([0,50000,100000,150000,200000],[0,25,100,75,50],'extrapolate');
//使得不同的距离的拉伸程度不同,会发现100000对应100处最亮
Map.centerObject(province,4)
Map.addLayer(center_distance,{min:0,"max":200000},'origin');//有无"max"引号无影响
Map.sddLayer(distance_Interpolate,{min:0,max:100},'interpolated')
Map.addLayer(provinces_centers,{color:'0000ff'},'centers')//color蓝色区别于palette黑色

在这里插入图片描述

2.15 Image.eq/neq/gt/gte/lt/lte()比较

var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
var night_Lights= ee.ImageCollection('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS').first().select('stable_lights').clip(china);
//var night_Lights= ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013').select('stable_lights').clip(china);
//注意Image需要在多数数据集中first或是filter筛选出一个image栅格图
var urban=night_Lights.gte(20)//符合像元像素变为1,不符合变为0
Map.setCenter(116.5,39.9,6);
Map.addLayer(urban,{"opacity":0.50,"bands":["stable_lights"],"palette":["171801","fbff0f"]},'NighttimeLights')
//opacity透明度0-1
```![在这里插入图片描述](https://img-blog.csdnimg.cn/13417b023fbd49f5ac5aef3c5bcb1435.png#pic_center)


## 2.16 Image.and/or 逻辑运算

```javascript
var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
var night_Lights= ee.ImageCollection('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS').first().select('stable_lights').clip(china);
var urban =night_Lights.gte(20)
var Low_Area=ee.Image("USGS/SRTMGL1_003").lt(200).clip(China)//提取小于200的区域为1即亮的区域
var Low_Urban=urban.and(Low_Area)//地海拔区域和城市夜光>=20的取交集
print(Low_Area,urban)
Map.setCenter(116.5,39.9,6);
Map.addLayer(night_Lights)
Map.addLayer(Low_Area)
Map.addLayer(Low_Urban)

在这里插入图片描述

2.17 Image.add/subtract/multiply/divide() 加减乘除

//波段计算指数等
var L8 = ee.ImageCollection('LANDSAT/LC08/C02/T1').filterBounds(ee.Geometry.Point([116.5,39.9])).first();
 Map.setCenter(116.5,39.9,6);
var B5=ee.Image(L8.select('B5'))
var B4=ee.Image(L8.select('B4'))
var NDVI=B5.subtract(B4).divide(B5.add(B4))
 Map.centerObject(NDVI)
Map.addLayer(NDVI,{min:-1,max:1,"palette":["0f01e2","ff9d93","fff707","11ff2e","04ce14"]})

在这里插入图片描述

2.18 Image.expression() 表达式计算

var L8 = ee.ImageCollection('LANDSAT/LC08/C02/T1').filterBounds(ee.Geometry.Point([116.5,39.9])).first();
var evi=L8.expression('2.5*((NIR-RED)/(NIR+6*RED-7.5*BLUE+1))',
{'NIR':L8.select('B5'),'RED':L8.select('B4'),'BLUE':L8.select('B2')});//expression('公式',{'参数':表达})
 Map.centerObject(evi)
Map.addLayer(evi,{min:-1,max:1,"palette":["0f01e2","ff9d93","fff707","11ff2e","04ce14"]})

在这里插入图片描述

2.19 Image.ImageCollection()

var L8_1=ee.Image('LANDSAT/LC08/C01/T1_RT/LC08_127040_20130422')
var L8_2=ee.Image('LANDSAT/LC08/C01/T1_RT/LC08_127039_20130422')
var Collection=ee.ImageCollection([L8_1,L8_2])
Map.setCenter(107.4, 29.7,6);
Map.addLayer(L8_1,{"bands":["B5","B4","B3"],"max":35000},'L8_1')
Map.addLayer(L8_2,{"bands":["B5","B4","B3"],"max":35000},'L8_2')
Map.addLayer(Collection,{"bands":["B5","B4","B3"],"max":35000},'Collection')

在这里插入图片描述

3. Export.Image.toDrive() 导出云盘

var DEM = ee.Image('CGIAR/SRTM90_V4').select('elevation');
var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
varDEM_Clip=DEM.clip(china);//注意裁减clip用的矢量
Export.image.toDrive(DEM.Clip)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是可以用来提取2010年、2015年和2019年山西省县区绿化面积的Google Earth Engine代码: ```javascript // Load the boundary of Shanxi province var shanxi = ee.FeatureCollection("users/yourusername/shanxi_boundary"); // Load the county boundaries of Shanxi province var counties = ee.FeatureCollection("users/yourusername/shanxi_counties"); // Load the MODIS Land Cover dataset var modis_lc = ee.ImageCollection('MODIS/006/MCD12Q1'); // Filter MODIS Land Cover to years 2010, 2015, and 2019 var lc_2010 = modis_lc.filter(ee.Filter.calendarRange(2010,2010,'year')).select('LC_Type1'); var lc_2015 = modis_lc.filter(ee.Filter.calendarRange(2015,2015,'year')).select('LC_Type1'); var lc_2019 = modis_lc.filter(ee.Filter.calendarRange(2019,2019,'year')).select('LC_Type1'); // Define a function to calculate the area of each land cover type within each county var calculate_area = function(image){ // Calculate the area of each land cover type within each county var area_by_county = image.addBands(ee.Image.pixelArea()) .reduceRegions({ collection: counties, reducer: ee.Reducer.sum().group(1), scale: 500, }); // Flatten the output and add the year as a property return area_by_county.flatten().set('year', image.date().format('yyyy')); }; // Apply the calculate_area function to each MODIS Land Cover image var area_2010 = calculate_area(lc_2010); var area_2015 = calculate_area(lc_2015); var area_2019 = calculate_area(lc_2019); // Merge the area calculations for all years into a single FeatureCollection var area_all_years = ee.FeatureCollection([area_2010, area_2015, area_2019]); // Filter the FeatureCollection to only include rows with valid area values var area_valid = area_all_years.filter(ee.Filter.notNull(['sum'])); // Join the area calculations with the county boundaries var joined = counties.filterBounds(shanxi).map(function(f){ return f.setMulti(area_valid.filterBounds(f.geometry()).first().toDictionary()); }); // Display the results Map.addLayer(joined, {}, 'County Boundaries'); Map.addLayer(joined.select(['sum', 'year']), {min: 0, max: 1000000}, 'Green Area'); ``` 在这段代码中,我们首先加载了山西省的边界和县区边界的FeatureCollection。然后,我们加载了MODIS Land Cover数据集,并将其筛选为2010年、2015年和2019年的图像。接下来,我们定义了一个calculate_area函数,用于计算每个县区内每种土地覆盖类型的面积。我们将该函数应用于每个MODIS Land Cover图像,并将结果合并为一个FeatureCollection。最后,我们将结果与县区边界进行联接,并将其在地图上可视化。 请注意,您需要将代码中的“yourusername”替换为您的Google Earth Engine用户名。此外,您还需要确保已经在Earth Engine中具有访问MODIS Land Cover、县区边界和山西省边界的权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值