GEE代码实例教程详解:地形分析

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 对特定区域内的地形进行分析。我们将使用SRTM(Shuttle Radar Topography Mission)数据集获取高程信息,并计算坡度、坡向等地形属性。此外,我们还将使用ALOS(Advanced Land Observing Satellite)数据集来分析数字地表模型(DSM)。

背景知识

SRTM数据集

SRTM是一个全球高程数据集,提供了约30米分辨率的地形信息,广泛应用于地形分析和制图。

ALOS数据集

ALOS是日本宇宙航空研究开发机构(JAXA)提供的高分辨率卫星数据集,其中包括数字地表模型(DSM),可用于地形分析。

地形属性

坡度、坡向等地形属性对于理解地表水文过程、植被分布和土地利用等自然现象至关重要。

完整代码

// 定义研究区域的坐标点
var cor = [[48.646401641929856, 35.98889945187288],[50.211953399742356, 35.98889945187288],[50.211953399742356, 37.15353368743586],[48.646401641929856, 37.15353368743586],[48.646401641929856, 35.98889945187288]
];// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);// 将地图中心设置为研究区域
Map.centerObject(roi);// 加载SRTM高程数据
var srtm = ee.Image('CGIAR/SRTM90_V4');
var srtmElevation = srtm.select('elevation');// 裁剪SRTM数据到研究区域
Map.addLayer(srtmElevation.clip(roi), [], 'DEM SRTM90', false);// 打印SRTM高程直方图
print(ui.Chart.image.histogram(srtmElevation, roi, 100)
);// 计算坡度
var slope = ee.Terrain.slope(srtmElevation);
Map.addLayer(slope.clip(roi), {}, 'Slope', false);// 计算坡向
var aspect = ee.Terrain.aspect(srtmElevation);
Map.addLayer(aspect.clip(roi), {}, 'Aspect', false);// 计算地形产品
var terrainProducts = ee.Terrain.products(srtmElevation);
print(terrainProducts);// 导出地形产品到Google Drive
Export.image.toDrive({image: terrainProducts.clip(roi).float(),description: 'DEM Products',scale: 30,region: roi,crs: terrainProducts.getInfo().crs,folder: 'DEM',maxPixels: 1e13
});// 加载ALOS DSM数据并计算平均值
var alos = ee.ImageCollection('JAXA/ALOS/AW3D30/V1_1').select('AVE_DSM').mean();// 打印ALOS DSM直方图
print(ui.Chart.image.histogram(alos, roi, 100)
);

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围,并设置地图中心。

2. 加载和裁剪SRTM数据

加载SRTM数据集,并选择高程波段。将其裁剪到研究区域并添加到地图上。

3. 地形属性计算

计算坡度和坡向,并分别添加到地图上。

4. 地形产品

计算并打印地形产品,如曲率等,并导出到Google Drive。

5. 加载和分析ALOS数据

加载ALOS DSM数据集,并计算整个集合的平均值,然后打印直方图。

结论

本教程展示了如何使用GEE进行地形分析,包括高程数据的加载、裁剪、坡度和坡向的计算,以及地形产品的导出。通过这些分析,我们可以更好地理解地形特征及其对地表过程的影响。

进一步探索

GEE提供了多种工具和方法来进行地形和其它地理空间数据分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 昇思25天学习打卡营第10天 | 使用静态图加速

昇思25天学习打卡营第10天 | 使用静态图加速 文章目录 昇思25天学习打卡营第10天 | 使用静态图加速动态图的开启方式静态图的开启方式基于全局context的开启方式基于修饰器的开启方式 总结打卡 AI编译框架分为两种运行模式: 动态图模式: 计算图的构建和计…

读人工智能全传07智能体

1. 布鲁克斯革命 1.1. 随着科学认知的发展,有时候旧有科学体系会面临全盘崩溃的危机,新的科学体系诞生,取代传统的、既定的科学体系,这就意味着科学的范式将发生变化 1.2. 澳大利亚机器人学家罗德尼布鲁克斯(Rodney Brooks)&…

DS1302实时时钟芯片_读写时间实现电子钟功能

一、前言 1.1 功能说明 本项目以STC90C51单片机为核心,结合DS1302实时时钟芯片和IIC协议的OLED显示屏,设计了一款功能丰富、操作简便的电子时钟。 【1】项目目标 实现高精度的时间显示,包括时、分、秒。提供按键调整时间的功能&#xff0…

fatal error: NvInfer.h: No such file or directory 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 一、问题描述 编译调用 tensorrt 的程序时&#xff0c;出现如下报错&#xff1a; fatal error: NvInfer.h: No such file or directory7 | #include <NvInfer.h>…

sublime使用

快速格式化&#xff1a;control command j&#xff08;前提是安装了Pretty JSON 插件&#xff09; 选中多行编辑&#xff1a;option command直接移动bar选中 多光标编辑功能对所有行进行相同的操作。以下是一些常用的方法&#xff1a; 1. 使用鼠标和键盘选择多行 按住 Ctrl&am…

[Java]Swing版坦克大战小游戏项目开发(1)——new出一个窗口

highlight: xcode theme: vuepress 前言 本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏&#xff0c;你可以学会很多实用的设计模式思想&#xff0c;并且提高你的编码水平。 熟悉Frame Frame 类是 J…

【java计算机毕设】基于java的奶茶店管理系统的设计与实现MySQL ssm JSP maven项目代码源码+文档

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】奶茶店管理系统java MySQL ssm JSP maven项目源码代码万字文档 小组设计 2项目介绍 系统功能&#xff1a; 奶茶店管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改个人信息和密码、…

如何在 Ubuntu 14.04 上安装和配置 Syncthing 来同步目录

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 有许多程序可以在不同计算机之间同步文件。Syncthing 是一个引人注目的新选择&#xff0c;它跨平台、完全开源、非常灵活且易于使…

UDP通讯实现

服务器端&#xff1a; 1.获取套接字 int fd;fdsocket(AF_INET,SOCK_DGRAM,0);if(fd<0){perror("socket");exit(0);} #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); -domain: 指定通信域&…

Elasticsearch 面试题指南

Elasticsearch 面试题指南 本文档提供了一份详细的 Elasticsearch 面试题指南&#xff0c;涵盖了 Elasticsearch 的核心概念、架构、配置、操作和实际应用场景等方面的内容。希望通过这份指南能够帮助你在 Elasticsearch 面试中取得成功。 目录 Elasticsearch 基础知识 什么…

Retrofit框架源码深度剖析【Android热门框架分析第二弹】

Android热门框架解析&#xff0c;你确定不来看看吗&#xff1f; OkHttp框架源码深度剖析【Android热门框架分析第一弹】 Retrofit框架源码深度剖析【Android热门框架分析第二弹】 什么是Retrofit&#xff1f; 准确来说&#xff0c;Retrofit 是一个 RESTful 的 HTTP 网络请求…

网络编程:数据包的封装----libnet库

使用libnet库封装数据包 安装库sudo apt-get install libnet-dev 1、数据包内存初始化 libnet_t *libnet_init(int injection_type, char *device, char *err_buf) 2、构造数据包&#xff0c; 由应用层UDP/TCP到MAC层的顺序构造 封装udp数据包的函数 libnet_ptag_t libnet_bui…

Miniconda的常见用法——以Isaacgym为例

1. ubuntu24.04安装minicondda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh解释下这段代码 bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3~/miniconda3/miniconda.sh: 指向Mi…

java中Function、Consumer和Supplier是函数式接口吗?

是的&#xff0c;在Java中&#xff0c;Function、Consumer 和 Supplier 都是函数式接口&#xff0c;它们都是Java 8引入的java.util.function包中的一部分。这些接口为Lambda表达式提供了类型支持&#xff0c;允许以更简洁的方式表示方法引用和匿名内部类。 Function<T, R&g…

SHARPNESS-AWARE MINIMIZATION FOR EFFICIENTLY IMPROVING GENERALIZATION--论文笔记

论文笔记 资料 1.代码地址 https://github.com/google-research/sam https://github.com/davda54/sam 2.论文地址 https://arxiv.org/abs/2010.01412 3.数据集地址 论文摘要的翻译 在当今严重过度参数化的模型中&#xff0c;训练损失的值很难保证模型的泛化能力。事实上…

代码随想录算法训练营第三十天|62.不同路径、63. 不同路径 II

62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…

软设之生成器模式

生成器模式的意图是:将一个复杂的类表示与其构造分离&#xff0c;使得相同的构建过程能够得出不同的表示 Builder:抽象建造者&#xff0c;为创建一个产品对象各个部件指定抽象接口&#xff0c;把产品的生产过程分解为不同的步骤&#xff0c;从而使具体建造者在具体的建造步骤上…

Java中的对象克隆详解

Java中的对象克隆详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 对象克隆在Java编程中是一个重要的概念和技术。它允许我们创建一个对象的精确副本&…

MySQL第三次练习

作业三 一 先创建DB abc&#xff0c;创建table student 1、插入一条记录 2、添加多条记录 3、添加部分记录 4、加0.5 5、删除成绩为空的记录 二 1、创建一个用户test1使他只能本地登录拥有查询student表的权限。 2、查询用户test1的权限。 3、删除用户test1. 全在一张图上…