GEE代码笔记(详细版)

文章介绍了JavaScript的基本数据类型,包括Strings、Numbers、Lists和Objects。在GoogleEarthEngine(GEE)上下文中,详细阐述了.filter()方法和ee.Filter的区别,以及它们在数据筛选中的应用。此外,讨论了ee.FeatureCollection和ee.ImageCollection,以及可视化参数如gamma对图像显示的影响。文章还展示了如何获取遥感影像的波段信息、计算植被指数、导入DEM数据、减少影像数量、创建随机点、添加国家边界线、缓冲区和中心点的计算等操作。
摘要由CSDN通过智能技术生成

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.ImageCollectionee.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');

11、近邻采样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值