GEE代码笔记(详细版)

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、近邻采样

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GeeWeb是一款基于PHP MySQL开发的以完全免费、快速建站、维护简易、安全性高、负载力强、SEO友好等为特点,面向各中小企业、社会团体、学校及个人用户等的建站系统。   如果您有下面所列举的烦恼之一或更多,那么请您试用一下GeeWeb 1.我们公司规模不是很大,请人开发及以后维护网站的成本对我们来说是一笔不小的开支,怎么办? 2.市面上的各种CMS太繁杂了,学习周期对我来说很长,我只想要一种快速简单有效的网站维护平台,怎么办? 3.我已经厌烦了那些超长的URL,那些对我的用户还有搜索引擎都不太友好,怎么办? 4.我的空间是租用的,不支持memcached,但是网站流量挺大的,我的MySQL数据库负担很重啊,怎么办? 5.我担心网站不够安全会导致我的机密数据泄露,怎么办?   选择GeeWeb的理由 1.完全免费、快速搭建和简单维护 2.后台各种权限分配严谨、清晰明了,让不同的管理员各司其职 3.友好、优化的URL设计,让您的用户和搜索引擎当然还有您都喜欢 4.充分的SQL、XSS等过滤,最大限度的保证网站的安全 5.采用高效的缓存机制,接近于零的数据库访问,从而大大提高了网站负载能力 6.正在设计中的各种模板主题,让您对网站风格的选择切换得心应手   开发者选择GeeWeb的理由 1.以面向对象为主辅以各种功能函数开发,代码维护成本低 2.采用模块化思路,各模块之间的耦合最小化,扩展性高 3.主题包的开发简单方便   GeeWeb v2.0 更新日志 1.去除了旧本的"文章管理"后台模块 2.新增了"信息管理"后台模块 3.在"栏目管理"后台模块中新增了"信息模型"功能项 4.添加了切换服务器是否支持URL重写功能 5.发布3个主题并使用[蓝调信息]作为默认的安装主题

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值