Google Earth Engine(GEE)——点线面运算及其交集并集等

简介: Google Earth Engine(GEE)——点线面运算及其交集并集等


Earth Engine 支持对Geometry对象的各种操作。这些包括对单个几何图形的操作,例如计算缓冲区、质心、边界框、周长等。例如:


缓冲区100公里的图形,重心就是图中的黑点

// 建立一个几何图形
var polygon = ee.Geometry.Polygon([
  [[-5, 40], [65, 40], [65, 60], [-5, 60], [-5, 60]]
]);
// 并按此建立一个缓冲区
var buffer = polygon.buffer(1000000);
// 计算这些polygon的重心
var centroid = polygon.centroid();
Map.addLayer(buffer, {}, 'buffer');
Map.addLayer(centroid, {}, 'centroid');


支持的几何运算还包括几何之间的关系计算,例如交集、联合、差异、距离、包含等。为了测试其中一些关系,几何默认使用“奇偶”规则。根据奇偶规则,如果从该点到已知在多边形外部的某个点的线与奇数个其他边相交,则该点在多边形内部。多边形的内部是壳内的所有东西,而不是孔内。作为一个简单的例子,圆形多边形内的一个点必须正好穿过一条边才能脱离多边形。如有必要,几何图形可以选择使用“左内”规则。想象一下按照给定的顺序走环的点;内部将在左侧。

为了演示使用“左向内”规则 ( ) 创建的几何与使用“奇偶”规则创建的几何之间的区别,以下示例将一个点与两个不同的多边形进行比较:evenOdd: false

// 创造一个左侧的几何图形用来验证是不是包含在里面
var holePoly = ee.Geometry.Polygon({
  coords: [
    [[-35, -10], [-35, 10], [35, 10], [35, -10], [-35, -10]]
  ],
  evenOdd: false
});
// 创建多边形的奇偶版本。
var evenOddPoly = ee.Geometry({
  geoJson: holePoly,
  evenOdd: true
});
// 创建一个点来测试多边形的内部。
var pt = ee.Geometry.Point([1.5, 1.5]);
// 使用 contains 运算符检查内部情况。是否包含的检验
print(holePoly.contains(pt));       // false
print(evenOddPoly.contains(pt));    // true


前面的示例演示了在Polygon构造左多边形时,提供给构造函数的坐标顺序如何 影响结果。具体来说,该点位于左内多边形之外,但位于奇数多边形内。


以下示例基于两个多边形之间的关系计算和可视化派生几何:也就是两个几何图形之间的交、并、非集。

显示的结果

 

intersection(right, maxError, proj)

确定两个是否交的一个函数

Returns the intersection of the two geometries.


Arguments:

this:left (Geometry):

The geometry used as the left operand of the operation.

right (Geometry):

The geometry used as the right operand of the operation.

maxError (ErrorMargin, default: null):

执行任何必要的重新投影时允许的最大错误量。

The maximum amount of error tolerated when performing any necessary reprojection.

proj (Projection, default: null):

在其中执行操作的投影。如果未指定,则操作将在球坐标系中执行,并且球体上的线性距离以米为单位。

The projection in which to perform the operation. If not specified, the operation will be performed in a spherical coordinate system, and linear distances will be in meters on the sphere.


Returns: Geometry

// 建两个圆形,创建的方式就是缓冲区
var poly1 = ee.Geometry.Point([-50, 30]).buffer(1e6);
var poly2 = ee.Geometry.Point([-40, 30]).buffer(1e6);
// 加载图像
Map.setCenter(-45, 30);
Map.addLayer(poly1, {color: 'FF0000'}, 'poly1');
Map.addLayer(poly2, {color: '0000FF'}, 'poly2');
// 计算交点,以绿色显示。
var intersection = poly1.intersection(poly2, ee.ErrorMargin(1));
Map.addLayer(intersection, {color: '00FF00'}, 'intersection');
// 计算并集,以洋红色显示。
var union = poly1.union(poly2, ee.ErrorMargin(1));
Map.addLayer(union, {color: 'FF00FF'}, 'union');
// 计算非,显示为黄色。
var diff1 = poly1.difference(poly2, ee.ErrorMargin(1));
Map.addLayer(diff1, {color: 'FFFF00'}, 'diff1');
// 计算对称差,以黑色显示。
var symDiff = poly1.symmetricDifference(poly2, ee.ErrorMargin(1));
Map.addLayer(symDiff, {color: '000000'}, 'symmetric difference');


相关文章
|
4月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
1942 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
4月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
193 0
|
4月前
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
92 0
|
4月前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
424 1
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
4月前
|
API Go 网络架构
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
241 4
|
4月前
|
机器学习/深度学习 存储 人工智能
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
202 3
|
4月前
|
数据处理
Google Earth Engine(GEE)——sentinel-1数据处理过程中出现错误Dictionary does not contain key: bucketMeans
Google Earth Engine(GEE)——sentinel-1数据处理过程中出现错误Dictionary does not contain key: bucketMeans
80 0
|
4月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
71 0
|
4月前
|
编解码 人工智能 数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
Google Earth Engine(GEE)——全球道路盘查项目全球道路数据库
100 0
|
4月前
|
编解码
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
Open Google Earth Engine(OEEL)——matrixUnit(...)中产生常量影像
59 0

热门文章

最新文章