文章目录
- **1.Geometry.transform坐标系转换**
- **2.Feature.transform()坐标系转换**
- **3.Feature.select() 更多意义是复制**
- **4.Feature.set() 对属性信息进行重写**
- **5.Feature.setMulti() 对多个变量进行重写**
- **6.Feature.geometry()剥离属性信息**
- **7.FeatuerCollection.filterMetadata() 通过元数据/基础数据筛选**
- **8.FeatuerCollection.limit() 限制**
- **9.FeatuerCollection.distinct() 去除重复字段**
- **10.FeatuerCollection.union() 结合成为一个,以前属性信息全部丧失,全都融合到新的中**
- **11.FeatuerCollection.merge()**
- **12.FeatuerCollection.remap() 对每一条属性进行相应操作**
- **13.FeatuerCollection.makeArray() 将多个属性字段形成一个新的属性字段,并以array形式存在**
- **14.FeatuerCollection.reduceToImage() 矢量转栅格**
- **14.FeatuerCollection.aggregate_first() aggregate对属性表的某一列进行操作**
- **15.FeatuerCollection.map() 对一个数据集的每一个元素同时进行操作**
- 16.Image.mask() 掩膜操作,不会对原始数据进行删除,主要是使用栅格图像作为样本裁
- **17.Image.clip() 裁剪,会删除掉裁剪了的部分**
- **18.Image.select() 挑选波段**
- **19.Image.slice() 切割 通过序号对波段进行挑选**
- **20.Image.reproject() 重投影**
- **21.Image.remap() 重分类(属性层面)**
- 22.Image.where() 对image图像在空间层面重分类
- **23.Image.uintScale() 标准化或1值化**
- 24.Image.interpolate() 分段线性拉伸
- **25.Image.eq/neq /gt /gte/lt/lte () 比较分析**
- **26.Image.and/or() 逻辑分析操作**
- **27.Image.abs/round取整/floor向下取整/ceil向上取整/sqrt开方/exp幂数/log/log10 ()**
- **28.Image. add/subtract/multiply/divide()**
- **29.Image.expression() 公式求解**
- **30.Image.reduceToVectors() 栅格转矢量**
- **31.Image.reduceRegion() 对某一区域进行数学统计分析**
- **32.Export.image.toDrive() 导出栅格图像**
注意:
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)