GEE学习笔记一

7 篇文章 7 订阅
5 篇文章 1 订阅

文章目录


注意:

Geometry矢量图形
Feature加着属性的矢量图形
Feature collection加着属性的矢量图形集
Image 栅格图像
Image Collection 栅格图像集
geometry和feature类型可以zip上传,但是image类型不行,可以转化为tif等格式上传

1.Geometry.transform坐标系转换

var China_Geo   = ee.Geometry.Rectangle(65.9, 19.8,134.5, 50.9);
var China_Planr = ee.Geometry(China_Geo, null, false)//必须先设为false,因为默认是地理坐标系true
var China_Plnar_2 = China_Geo.transform('EPSG:4326', ee.ErrorMargin(100))

https://epsg.io

2.Feature.transform()坐标系转换

var China_Geo   = ee.Feature(ee.Geometry.Rectangle(65.9, 19.8,134.5, 50.9));
var China_Plnar = China_Geo.transform('EPSG:3857',ee.ErrorMargin(100));

print(ee.Geometry(China_Geo.geometry()).projection(),
      ee.Geometry(China_Plnar.geometry()).projection())

3.Feature.select() 更多意义是复制

4.Feature.set() 对属性信息进行重写

5.Feature.setMulti() 对多个变量进行重写

6.Feature.geometry()剥离属性信息

var TGR = ee.Feature(ee.FeatureCollection("users/wangjinzhulala/TGR").first());
var TGR_geometry = TGR.geometry();//将属性信息剥离,只剩下空间信息
var TGR_get = TGR.get(‘BOUNT_ID‘)//获得属性下的信息

7.FeatuerCollection.filterMetadata() 通过元数据/基础数据筛选

8.FeatuerCollection.limit() 限制

var China_Provinces = ee.FeatureCollection("users/wangjinzhulala/China_Provinces");

Map.addLayer(China_Provinces)
Map.addLayer(China_Provinces.limit(5,‘Shape_Area’,false))//筛选数量、字段、排序方式false从大到小

9.FeatuerCollection.distinct() 去除重复字段

10.FeatuerCollection.union() 结合成为一个,以前属性信息全部丧失,全都融合到新的中

11.FeatuerCollection.merge()

12.FeatuerCollection.remap() 对每一条属性进行相应操作

var China_Provinces = ee.FeatureCollection("users/wangjinzhulala/China_Provinces");
var Old_Provinces_ID = ee.List([1,2,3,4,5,6,7,8,9,12,13,14,15,16,18,19,20,21,
                                22,23,24,27,28,29,30,31,32,33,34,35,36,37,38,39,1089])
var New_Provinces_ID = ee.List([1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,
                              5,5,5,5,5,6,6,6,6,6,7,7,7,7,7])
var China_Remap = China_Provinces.remap(Old_Provinces_ID,New_Provinces_ID,‘OBJECTID’)//原来、现在、发生在哪个字段
var China_Provinces_Map = China_Provinces.reduceToImage([‘OBJECTID’], ee.Reducer.first( ) )//**相当于arcgis中的显色方式,以OBJEXTID字段进行显色,重分类**
var China_Remap_Map = China_Provinces.reduceToImage(['OBJECTID'], ee.Reducer.first( ) )

Map.centerObject(China_Provinces,4)
Map.addLayer(China_Provinces_Map,{min:1, max:40, palette:'16ff07,2901ff'},'China_Provinces_Map')
Map.addLayer(China_Remap_Map,{min:1, max:7, palette:'ff7248,fbff21,09ffe8'},'China_Remap_Map')

13.FeatuerCollection.makeArray() 将多个属性字段形成一个新的属性字段,并以array形式存在

14.FeatuerCollection.reduceToImage() 矢量转栅格

var China_Provinces = ee.FeatureCollection("users/wangjinzhulala/China_Provinces")
var China_to_Image = China_Provinces.reduceToImage([‘OBJECTID’],ee.Reducer.first()) //缩写器

Map.centerObject(China_Provinces,4)
Map.addLayer(China_to_Image,{"min":1,"max":40,"palette":["ff9c07","f0ff1b","1aff0b"]})

14.FeatuerCollection.aggregate_first() aggregate对属性表的某一列进行操作

15.FeatuerCollection.map() 对一个数据集的每一个元素同时进行操作

var China_Provinces = ee.FeatureCollection("users/wangjinzhulala/China_Provinces")

function Add_Center (feature){
  return feature.centroid()
}

var China_Center = China_Provinces.map(Add_Center)//在add_center列填入中心点
print(China_Center)

Map.centerObject(China_Provinces,4)
Map.addLayer(China_Provinces)
Map.addLayer(China_Center,{color:'ff0000'})

16.Image.mask() 掩膜操作,不会对原始数据进行删除,主要是使用栅格图像作为样本裁

var Image_DEM  = ee.Image( 'CGIAR/SRTM90_V4' );
var Image_Cropland = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3")
    .select('landcover').eq(11);
var Image_Masked  = Image_DEM.mask( Image_Cropland );//对Image_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( 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 '   );

17.Image.clip() 裁剪,会删除掉裁剪了的部分

18.Image.select() 挑选波段

19.Image.slice() 切割 通过序号对波段进行挑选

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_Slice = L8_One.slice(2,5);//3,4,5起始位置不包括,但是终止位置包括

print(L8_One,L8_Slice)

20.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)//投影类型,投影变换,空间分辨率

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')
Map.addLayer(L8_Reproject,{"bands":["B5","B4","B3"],"min":10586,"max":18154}, '100m')

21.Image.remap() 重分类(属性层面)

var Land_Cover = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3").select('landcover');
var Land_Remap = Land_Cover.remap([11,14,20,30,40,50,60,70,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230],  [0, 0, 0, 0, 1, 1, 1, 1, 1,  2,  2,  2,  3,  3,  3,  4,  4,  4,  5,  5,  6,  7,  8],  8,‘landcover‘)
  //原来栅格值,对应位置重新赋值,如果上面没出现复制为,发生在哪个波段
                                 
Map.setCenter(102.919, 30.199,6)
Map.addLayer(Land_Cover)
Map.addLayer(Land_Remap,  {"palette":["f1ff27","35ce48","07fff3","f017ff","e78845","250bff","ffffff","ffffff"]}, 'remaped')

22.Image.where() 对image图像在空间层面重分类

var DEM = ee.Image("USGS/SRTMGL1_003");
var Land_Cover = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3").select('landcover');

var High_Land = Land_Cover.where(DEM.lt(4000),0)
//将高程<4000米的地方复制为0
Map.setCenter(88.96, 33.77,4)
Map.addLayer(DEM.lt(4000))
Map.addLayer(High_Land)

23.Image.uintScale() 标准化或1值化

var L8_One = ee.Image(ee.ImageCollection("LANDSAT/LC08/C01/T1")
               .filterBounds(ee.Geometry.Point(106.5776, 29.5577)).first());
var L8_Unitscale = L8_One.unitScale(0,32767)//将此范围都变成0-1

print(L8_One,L8_Unitscale)

Map.addLayer(L8_One,{"bands":["B5","B4","B3"],"max":30000})
Map.addLayer(L8_Unitscale,{"bands":["B5","B4","B3"],"max":0.92})

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

var China_Provinces = ee.FeatureCollection("users/wangjinzhulala/China_Provinces");

function Add_Center (feature){
  return ee.Geometry(feature.centroid())
}

var Provinces_Centers = China_Provinces.map(Add_Center)
var Center_Distance = Provinces_Centers.distance(200000)//类似于buffer操作
var Distance_Interpolate = Center_Distance.interpolate( [ 0, 50000, 100000, 150000, 200000 ],
                                                        [ 0,    25,     50,    100,    75  ], 'extrapolate' );

Map.centerObject(Provinces_Centers,4)
Map.addLayer(Center_Distance,{min:0,max:200000},'origin')
Map.addLayer(Distance_Interpolate,{min:0,max:100},'interpolated')
Map.addLayer(Provinces_Centers, {color:'0000ff'},'centers')

25.Image.eq/neq /gt /gte/lt/lte () 比较分析

var China = ee.FeatureCollection("users/wangjinzhulala/China_Provinces");
var night_Lights = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013')
                      .select('stable_lights').clip(China);
var urban = night_Lights.gte(20)//根据经验选择阈值,假定大于等于20的就是一个城市
Map.setCenter(115.218, 33.697, 8);
Map.addLayer(urban, {"opacity":0.33,"bands":["stable_lights"],"palette":["171801","fbff0f"]}, 'Nighttime Lights');

.eq/neq /gt /gte/lt/lte
= ≠ > ≥ < ≤

26.Image.and/or() 逻辑分析操作

var China = ee.FeatureCollection("users/wangjinzhulala/China_Provinces");
var night_Lights = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182013')
                      .select('stable_lights').clip(China);

var urban = night_Lights.gte(20)
var Low_Area = ee.Image("USGS/SRTMGL1_003").lt(200).clip(China)
var Low_Urban = urban.and(Low_Area)
print(Low_Area,urban)

Map.setCenter(115.218, 33.697, 4);
Map.addLayer(night_Lights)
Map.addLayer(Low_Area)
Map.addLayer(Low_Urban);

27.Image.abs/round取整/floor向下取整/ceil向上取整/sqrt开方/exp幂数/log/log10 ()

28.Image. add/subtract/multiply/divide()

29.Image.expression() 公式求解

var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT")
           .filterBounds(ee.Geometry.Point(106.5749, 29.5588))
           .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')
});


Map.centerObject(evi)
Map.addLayer(evi,
            {"min":-1,"max":1,"palette":["0f01e2","ff9d93","fff707","11ff2e","04ce14"]})

30.Image.reduceToVectors() 栅格转矢量

var Water = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3")
                  .select('landcover')
                  .clamp(209,211);
var geometry = ee.Geometry.Polygon(
        [[[106.32728668689242, 29.46329064748005],
          [106.76948639392367, 29.462692803378452],
          [106.77017303943148, 29.65740304071832],
          [106.31355377673617, 29.654419523039962]]]);
数理统计模式,范围图像,不管,形式,只考虑上下左右为false  考虑四面八方true
var Water_Vecter      = Water.reduceToVectors( null, geometry,  null, 'polygon',  false);
var Water_BoundBox    = Water.reduceToVectors( null, geometry,  null, 'bb',       false);
var Water_Center_4    = Water.reduceToVectors( null, geometry,  null, 'centroid', false);
var Water_Center_8    = Water.reduceToVectors( null, geometry,  null, 'centroid', true );

Map.setCenter(106.5587, 29.5631,10)
Map.addLayer(Water,{"palette":["ffffff","1707ff"]},'Water')
Map.addLayer( Water_Vecter,   {color:'dddddd'}, 'The Polygons' );
Map.addLayer( Water_BoundBox, {color:'888888'}, 'The Bounding Boxes' );
Map.addLayer( Water_Center_4, {color:'ff0000'}, '4-way Centroids' );
Map.addLayer( Water_Center_8, {color:'ffffff'}, '8-way Centroids' );

31.Image.reduceRegion() 对某一区域进行数学统计分析

var DEM = ee.Image("USGS/SRTMGL1_003");
var ROI = ee.Geometry.Polygon(
        [[[106.20650888671878, 29.570337903152346],
          [106.54159189453128, 29.56556010779314],
          [106.54159189453128, 29.725493070064537],
          [106.21612192382815, 29.71952998792036]]]);
var ROI_Mean = DEM.reduceRegion(ee.Reducer.mean(),ROI)
var ROI_Histo = DEM.reduceRegion(ee.Reducer.histogram(),ROI)

print(ROI_Mean,ROI_Histo)


Map.setCenter(106.4949, 29.458,10)
Map.addLayer(DEM,{min:0,max:2000},'DEM')
Map.addLayer(ROI)

32.Export.image.toDrive() 导出栅格图像

var DEM = ee.Image(“USGS/SRTMGL1_003”);
var ROI = ee.Geometry.Polygon(
[[[106.20650888671878, 29.570337903152346],
[106.54159189453128, 29.56556010779314],
[106.54159189453128, 29.725493070064537],
[106.21612192382815, 29.71952998792036]]]);
var DEM_Clip = DEM.clip(ROI)

Export.image.toDrive(DEM_Clip)

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值