Google Earth Engine(gee)中的Geometry

目录

点:ee.Geometry.Point()

多点:ee.Geometry.MultiPoint()

线:ee.Geometry.LineString()

多线:ee.Geometry.MultiLineString()

单闭合线:ee.Geometry.LinearRing()

多闭合线:ee.Geometry.MultiLineString()

ee.Geometry()

面:ee.Geometry.Polygon()

多面:ee.GeometryMultiPolygon()

矩形:ee.Geometry.Rectangle()

投影转换:ee.Geometry.transform()

获取中心:Geometry.centroid()

简化geometry:Geometry.simplify()

获取包络线和外接多边形:Geometry.bounds()、Geometry.convexHull()

获取缓冲区:Geometry.buffer()

多边形求并、求交、交集取反:Geometry.union()、Geometry.intersection()、Geometry.symmetricDifference()

Geometry.geometries()

多边形分别计算面积和周长:Geometry.area()、Geometry.perimeter()

多个多变形之间距离量算:Geometry.distance()


点:ee.Geometry.Point()

多点:ee.Geometry.MultiPoint()

线:ee.Geometry.LineString()

多线:ee.Geometry.MultiLineString()

单闭合线:ee.Geometry.LinearRing()

注意:这里是1个环,为LinearRing。如果有两个环的话,就应该是MultiLineString了

多闭合线:ee.Geometry.MultiLineString()

ee.Geometry()

面:ee.Geometry.Polygon()

多面:ee.GeometryMultiPolygon()

矩形:ee.Geometry.Rectangle()

投影转换:ee.Geometry.transform()

ee.ErrorMargin(100):允许最大误差为100m

ee.Geometry(China_Geo, null, false):第二个参数让它为null就行;第三个参数默认为true,表示以地理坐标系的形式显示,如果为false,则以投影坐标系的形式显示

获取中心:Geometry.centroid()

这里需要指出的是,不要在投影坐标系上使用这个centroid()函数,否则报错。如下

简化geometry:Geometry.simplify()

获取包络线和外接多边形:Geometry.bounds()、Geometry.convexHull()

var sichuan = ee.FeatureCollection("users/lcljv1066965/test/sichuan");

var sichuan_bounds=sichuan.geometry().bounds()
var sichuan_convexHull=sichuan.geometry().convexHull()

Map.centerObject(sichuan )

Map.addLayer(sichuan,{},"sichuan")
Map.addLayer(sichuan_bounds,{},"sichuan_bounds")
Map.addLayer(sichuan_convexHull,{},"sichuan_convexHull")

print(sichuan)
print(sichuan_bounds)
print(sichuan_convexHull)

获取缓冲区:Geometry.buffer()

多边形求并、求交、交集取反:Geometry.union()、Geometry.intersection()、Geometry.symmetricDifference()

Geometry.geometries()

多边形分别计算面积和周长:Geometry.area()、Geometry.perimeter()

多个多变形之间距离量算:Geometry.distance()

参考:GEE学习笔记03(空间类型数据)_AvocadoJX的博客-CSDN博客

  • 10
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用Google Earth Engine获取逐日NDVI的代码示例: ```javascript // 设置ROI var roi = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]); // 设置起始和结束日期 var startDate = ee.Date('2019-01-01'); var endDate = ee.Date('2019-12-31'); // 加载MODIS数据 var modis = ee.ImageCollection('MODIS/006/MOD13A1') .filterBounds(roi) .filterDate(startDate, endDate) .select('NDVI'); // 定义函数计算每个图像的年份和日数 var addDate = function(image) { var doy = image.date().getRelative('day', 'year'); return image.addBands(doy).addBands(image.date().get('year')); }; // 对图像集应用函数 var modisWithDate = modis.map(addDate); // 定义函数计算每个年份和日数的平均NDVI值 var reduceDaily = function(imageCollection, year, doy) { var filtered = imageCollection.filter(ee.Filter.calendarRange(year, year, 'year')) .filter(ee.Filter.calendarRange(doy, doy, 'day_of_year')); return filtered.mean().set('year', year).set('doy', doy); }; // 创建一个二维数组,其第一维表示年份,第二维表示一年的日数 var years = ee.List.sequence(startDate.get('year'), endDate.get('year')); var days = ee.List.sequence(1, 365); // 对所有年份和日数应用reduceDaily函数 var dailyNDVI = ee.ImageCollection.fromImages(years.map(function(y){ return days.map(function(d){ return reduceDaily(modisWithDate, y, d); }); }).flatten()); // 打印输出结果 print(dailyNDVI); ``` 在上述代码,首先定义了一个感兴趣区域(ROI),然后加载了2000年至今的MODIS NDVI数据,并对其进行了筛选。接着定义了两个函数,一个函数用于向每个图像添加年份和日数作为带宽,另一个函数用于计算每个年份和日数的平均NDVI值。最后,将所有年份和日数应用到reduceDaily函数,生成逐日的NDVI值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值