1、Javascript基本类型
基本类型
(1)Strings:'Google Earth Engine'
(2)Numbers:1,2,3,4,5,6,7,8,9
(3)Lists:[1,2,3,4,5,6,7,'x','hhh']
(4)Objects
var myobject = {
aby: 'try',
nota: 13,
item: ['country', 'zone', 'country']
}
print('Dictionary:', myobject);
print(myobject['aby']);
print(myobject.item);
(5)Function
var test = function(element){
return element;
}
2、图形展示
(1)解释说明GEE中.filter()
和 ee.Filter有什么不同
在GEE中,.filter()
和 ee.Filter
都用于对数据进行筛选和过滤,但它们是不同的概念。
.filter()
是ee.ImageCollection
和 ee.FeatureCollection
对象中的方法,用于根据某些条件对集合中的元素进行筛选和过滤,返回一个新的集合对象。.filter()
方法可以接受许多参数来指定过滤条件,例如时间范围、空间范围、属性条件等。.filter()
方法返回的是一个新的集合对象,不会影响原有的集合。
ee.Filter
是 GEE 中的一个对象,用于表示过滤条件。它可以通过逻辑运算符(例如等于、大于、小于、范围等)来创建各种过滤条件,并可以与 .filter()
方法一起使用。例如,可以使用 ee.Filter.eq()
方法来创建一个等于指定值的过滤器,然后将其传递给 .filter()
方法进行筛选。
因此,.filter()
是用于执行过滤操作的方法,而 ee.Filter
则是用于创建过滤条件的对象。在进行数据筛选时,通常需要将 ee.Filter
对象传递给 .filter()
方法。
(2)ee.FeatureCollection是矢量集合,ee.ImageCollection是影像集合
(3)visualization parameters的参数中,gamma是用来调整图像亮度的,范围[0.1,10],数值越大图像越暗,设置为1时为默认值,小于1时对比度增强。
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
var Egypt = countries.filter(ee.Filter.eq('country_na', 'Egypt'));
var image = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filterDate('2020-1-1','2021-1-1')
.filterBounds(Egypt)
.median();
var vizFalse = {
bands: ['B5','B4','B3'],
min: 0,
max: 0.5,
gamma: [0.95, 1.1, 1]
};
var vizTrue = {
bands: ['B4','B3','B2'],
min: 0,
max: 0.5,
gamma: [0.95, 1.1, 1]
};
Map.addLayer(image, vizFalse, 'False color');
Map.addLayer(image, vizTrue, 'True color');
var image1 = ee.Image(0).mask(0);
var image2 = image1.paint(Egypt, 'ff00ff', 2);
Map.addLayer(image2, {'palette': '000000', 'opacity':0.5}, 'Egypt');
Map.centerObject(Egypt,6)
3、获取遥感影像更多信息
(1)获取波段名称列表
var bandNames = image.bandNames();
print('Band names:', bandNames);
(2)获取波段投影信息
var b3proj = image.select('B3').projection();
print('Band 3 projection:', b3proj);
(3)获取波段分辨率信息
var b3scale = image.select('B3').projection().nominalScale();
print('Band3 scale:', b3scale);
(4)获取所有属性
var properties = image.propertyNames();
print('Metadata properties:', properties);
(5)获取特定属性
var cloudiness = image.get('CLOUD_COVER');
print('CLOUD_COVER:', cloudiness);
4、植被指数的计算
其他计算方法请查看上一篇文章
GEE自带计算方法:normalizedDifference
5、导入DEM数据
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
var Ethiopia = countries.filter(ee.Filter.eq('country_na', 'Ethiopia'));
var dem = ee.Image('USGS/SRTMGL1_003').clip(Ethiopia);
var dem = dem.updateMask(dem.gt(0));
var vis_parms = {
min: 0,
max: 4000,
palette: ['006633','EFFFCC','662A00','D8D8D8','F5F5F5'],
};
Map.addLayer(dem, vis_parms, "DEM");
6、图像获取及过滤
(1)获取feature collection
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
var Zambia = countries.filter(ee.Filter.eq('country_na', 'Zambia'));
(2)获取ImageCollection
var images = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA');
(3)时间过滤和范围过滤
(4)对云量从低到高排序
var sortImages = timeFilter.sort('CLOUD_COVER');
(5)获取云量最少的影像
var Images = ee.Image(sortImages.first());
(6)获取影像集数目
var count = collection.size();
print('Count:',count);
(7)获取影像集时间范围
var dates = ee.List(collection.get('date_range'));
var dateRange = ee.DateRange(dates.get(0), dates.get(1));
print('Date range:', dateRange);
(8)获取最新的10幅影像
var recent = collection.sort('system:time_start', false.limit(10));
print('Recent images',recent) //false表示倒序排列
7、减少影像的办法
(1)通过PATH和ROW加载单个遥感影像
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filter(ee.Filter.eq('WRS_PATH', 170))
.filter(ee.Filter.eq('WRS_ROW', 52))
.filterDate('2021-1-1', '2022-1-1');
print(collection);
(2)将多个影像通过max,min,median输出成单个影像
var median = collection.reduce(ee.Reducer.median());
8、创建随机点
var randomPoints = ee.FeatureCollection.randomPoints(geometry, 10);
Map.addLayer(randomPoints, {}, 'random points')
9、导入世界国家边界线
color是颜色参数:0为black,255为white,如果想设置其他颜色可以改一下palette为red
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
//Map.addLayer(countries, {}, 'Default');
//Map.addLayer(countries, {color: 'FF0000'}, 'Colored Fill');
var empty = ee.Image().byte();
var outline = empty.paint({
featureCollection: countries,
color: 200,
width: 1
})
Map.addLayer(outline, {}, 'Colored Outline')
//Map.addLayer(outline, {palette: 'red'}, 'Colored Outline')
10、缓冲区和中心点的寻找
var buffer = polygon.buffer(10000);
var centroid = polygon.centroid();
Map.addLayer(buffer, {}, 'buffer');
Map.addLayer(centroid, {}, 'centroid');