GEE(Google Earth Engine)——JavaScript 入门(2)

简介: GEE(Google Earth Engine)——JavaScript 入门(2)

'你好,世界!' JavaScript


将信息打印到控制台是获取有关对象的信息、显示计算的数字结果、显示对象元数据或帮助调试的基本任务。标志性的“Hello World!” 代码编辑器中的示例是:


代码编辑器 (JavaScript)

print('Hello world!');


将此行复制到代码编辑器的代码编辑器中,然后单击运行。请注意,输出显示在代码编辑器右侧的控制台选项卡中。对于更遥感相关的示例,以下打印 Landsat 8 图像的元数据:


代码编辑器 (JavaScript)

print(ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318'));


仔细检查控制台中的输出以查看可用于 Landsat 图像的元数据。


向地图添加数据

除了将信息打印到控制台之外,向控制台添加数据Map 也是可视化地理数据的方式。使用Map.addLayer()这样做。在以下示例中,使用 将 anImage实例化(稍后介绍如何找到这些图像)ee.Image(),将其添加到地图中, Map.addLayer()并且地图位于图像的中心:


代码编辑器 (JavaScript)

// Load an image.
var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
// Center the map on the image.
Map.centerObject(image, 9);
// Display the image.
Map.addLayer(image);


的第二个参数Map.centerObject()是缩放级别,数字越大表示比例越大(放大得越多)。这些Map 函数的参数在可从文档选项卡访问的 API 参考中进行了深入描述 。如果图像的外观不令人满意,请使用附加参数配置显示参数Map.addLayer()。例如:


代码编辑器 (JavaScript)

// Load the image from the archive.
var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
// Define visualization parameters in an object literal.
var vizParams = {bands: ['B5', 'B4', 'B3'], min: 5000, max: 15000, gamma: 1.3};
// Center the map on the image and display.
Map.centerObject(image, 9);
Map.addLayer(image, vizParams, 'Landsat 8 false color');


观察可视化参数由对象文字定义,其中包括要显示的波段列表、最小和最大数字以及伽玛值。(了解更多关于陆地卫星乐队 在这里。了解更多关于图像可视化在这里)。


用于Map.addLayer()向地图添加要素和要素集合。例如,


代码编辑器 (JavaScript)

var counties = ee.FeatureCollection('TIGER/2016/Counties');
Map.addLayer(counties, {}, 'counties');


查找图像、图像集合和特征集合

通过搜索地球引擎数据目录可以发现图像、图像集合和特征集合。例如,在搜索字段中输入“Landsat 8”会生成栅格数据集列表。(地球引擎数据集的完整列表位于 地球引擎数据目录)。单击数据集名称可获取简要说明、有关时间可用性、数据提供者和集合 ID 的信息。单击“导入” 按钮可在脚本顶部自动创建一个“导入”部分,其中包含此集合的变量。


或者,复制集合 ID 并将其粘贴到您的代码中。例如,选择“Landsat 8”搜索的第一个结果并复制ID,如下所示:


代码编辑器 (JavaScript)

var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1');


由于这是跨越地球陆地表面的许多图像的集合,因此在集合中查找单个图像需要过滤以缩小搜索范围。或者,可以使用合成和镶嵌技术将图像集合缩减为单个图像。更多关于过滤和合成(见 减少)在下一节。


特征集合也可通过数据目录获得。它们的表示比图像集合小,但您会发现国际、人口普查、流域和保护区的边界,仅举几例。在此处了解有关导入您自己的矢量数据集的更多信息。


过滤和排序

通常需要按空间和/或时间过滤集合以限制结果的数量。例如,考虑对 Landsat 8 场景集合进行排序的任务,以便为旧金山找到一个无云场景。首先,有必要定义感兴趣的区域。一个点通常对此很有用。激活代码编辑器右侧的 Inspector选项卡并单击您感兴趣区域的中心附近,从Inspector 选项卡复制坐标,然后Point使用以下方法构建一个:


代码编辑器 (JavaScript)

var point = ee.Geometry.Point(-122.262, 37.8719);


构造开始和结束日期:

代码编辑器 (JavaScript)

var start = ee.Date('2014-06-01');
var finish = ee.Date('2014-10-01');

使用点和日期过滤 Landsat 8 集合,然后使用元数据属性(在检查 Landsat 8 场景元数据期间发现)进行排序:


代码编辑器 (JavaScript)

var filteredCollection = ee.ImageCollection('LANDSAT/LC08/C01/T1')
  .filterBounds(point)
  .filterDate(start, finish)
  .sort('CLOUD_COVER', true);


可以安全地打印和检查此集合。(如果集合中有太多图像,打印它会很慢、超时或返回错误)。观察集合中的图像List存储在ImageCollection. 集合中任何图像的 ID 都可以复制到Image上面的构造函数中。或者,获取第一张图像(最低云量):


代码编辑器 (JavaScript)

var first = filteredCollection.first();


使用filter() withee.Filter作为参数访问完整的 Earth Engine 过滤功能。(上面使用的filterBounds()filterDate()方法是快捷方式)。例如,下面创建了一个Filter,使用它来过滤 aFeatureCollection并显示结果:


代码编辑器 (JavaScript)

// Load a feature collection.
var featureCollection = ee.FeatureCollection('TIGER/2016/States');
// Filter the collection.
var filteredFC = featureCollection.filter(ee.Filter.eq('NAME', 'California'));
// Display the collection.
Map.addLayer(filteredFC, {}, 'California');



相关文章
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
4312 2
|
10月前
|
JSON JavaScript 前端开发
菜鸟之路Day23一一JavaScript 入门
本文介绍了 JavaScript 的基础内容,包括 JS 的引入方式、基础语法、数据类型、运算符、类型转换、函数、对象(如 Array、String、自定义对象、JSON、BOM 和 DOM)、事件监听,以及 Vue 框架的初步使用。重点讲解了内部和外部脚本的引入、变量声明(var、let、const)、常见输出语句、数组与字符串的操作方法、DOM 操作及事件绑定,并通过实例展示了 Vue 的双向数据绑定和常用指令(v-bind、v-model、v-on、v-if、v-for 等)。
261 7
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
703 5
一小时入门Vue.js前端开发
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
700 10
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1894 1
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
534 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
195 1
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
2701 1

热门文章

最新文章

推荐镜像

更多