GEE 23:基于GEE实现物种分布模型之随机森林法

基于GEE实现物种分布模型之随机森林法

  • 1.物种分布数据
  • 2.研究区绘制
  • 3.预测因子选择

1.物种分布数据

根据研究目的和需要导入物种数据:

// Load presence data
var Data = ee.FeatureCollection("users/************736/Distribution");
print('Original data size:', Data.size());// Define spatial resolution to work with (m)
var GrainSize = 1000;function RemoveDuplicates(data){var randomraster = ee.Image.random().reproject('EPSG:4326', null, GrainSize);var randpointvals = randomraster.sampleRegions({collection:ee.FeatureCollection(data), scale: 15000, geometries: true});return randpointvals.distinct('random');
}var Data_Remove = RemoveDuplicates(Data);
print('Final data size:', Data_Remove.size());
print('Final data size:', Data_Remove);// Add two maps to the screen.
var left = ui.Map();
var right = ui.Map();
ui.root.clear();
ui.root.add(left);
ui.root.add(right);// Link maps, so when you drag one map, the other will be moved in sync.
ui.Map.Linker([left, right], 'change-bounds');// Visualize presence points on the map
right.addLayer(Data_Remove, {color:'red'}, 'RemoveDuplicates-Presence', 1);
left.addLayer(Data, {color:'blue'}, 'Presence', 1);

此处使用两个模块来展示数据图像:
在这里插入图片描述

2.研究区绘制

这里要注意,使用USDOS/LSIB_SIMPLE/2017数据时,他给出的中国地图有错误,如没有台湾省,以及新疆和西藏接壤处存在问题。

// Define the AOI
// var AOI = Data.geometry().bounds().buffer({distance:50000, maxError:1000});
var AOI = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017').filter(ee.Filter.eq('country_co', 'CH'));
// var AOI = ee.FeatureCollection('users/******736/ChinaMap');
var AOI_polygon = AOI.geometry().bounds();// Add border of study area to the map
var outline = ee.Image().byte().paint({featureCollection: AOI, color: 1, width: 3});
right.addLayer(outline, {palette: '0000FF'}, "Final Study Area");
left.addLayer(outline, {palette: 'FF0000'}, "Original Study Area");// Center each map to the area of interest
right.centerObject(AOI, 3); //Number indicates the zoom level
left.centerObject(AOI, 3); //Number indicates the zoom level

3.预测因子选择

常见的因子包括worldclim中的生物气候因子、地形因子、植被因子等,这里使用了以上三者作为分析,当然你还可以添加土壤因子和人为因子等因素进去。

// Load WorldClim BIO Variables (a multiband image) from the data catalog
var BIO = ee.Image("WORLDCLIM/V1/BIO");// Load elevation data from the data catalog
// and calculate slope, aspect, and a simple hillshade from the terrain Digital Elevation Model.
var Terrain = ee.Algorithms.Terrain(ee.Image("USGS/SRTMGL1_003")); // 30m year:2000// Load NDVI 250 m collection and estimate median annual tree cover value per pixel
var MODIS = ee.ImageCollection("MODIS/006/MOD44B");
var MedianPTC = MODIS.filterDate('2000-01-01', '2020-12-31').select(['Percent_Tree_Cover']).median();// Combine bands into a single multi-band image
var predictors = BIO.addBands(Terrain).addBands(MedianPTC);
print("Predictors values:", predictors)var watermask =  Terrain.select('elevation').gt(0); //Create a water mask
var predictors = predictors.updateMask(watermask).clip(AOI);// Select subset of bands to keep for habitat suitability modeling
// 'bio04','bio05','bio06','bio12','elevation','Percent_Tree_Cover'
var bands = ['bio04','bio05','bio06','bio12','elevation','Percent_Tree_Cover'];
var predictors = predictors.select(bands);// Display layers on the map
right.addLayer(predictors, {bands:['elevation'], min: 0, max: 8000,  palette: ['000000','006600', '009900','33CC00','996600','CC9900','CC9966','FFFFFF',]}, 'Elevation (m)', 0);
right.addLayer(predictors, {bands:['bio05'], min: 100, max: 490, palette:'white,red'}, 'Max temperature of warmest month', 0); 
right.addLayer(predictors, {bands:['bio12'], min: 0, max: 4000, palette:'white,blue'}, 'Annual precipitation (mm)', 0); 
right.addLayer(predictors, {bands:['Percent_Tree_Cover'], min: 0, max: 70, palette:'white,green, red'}, 'Percent_Tree_Cover', 0); 

海拔:
在这里插入图片描述

最大温度:
在这里插入图片描述

年降水量:
在这里插入图片描述

森林植被覆盖率:
在这里插入图片描述

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

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

相关文章

中级会计师资料分享

阿里云盘 中级会计师 https://www.alipan.com/s/nW9AxjiFdHw 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 2022年中级电子档(比网盘群快) https://www.…

web和微信小程序设置placeholder样式

文章目录 一、场景二、web2.1、概念2.2、用法2.3、样式 三、小程序四、最后 一、场景 在页面布局时经常会用到input输入框,有时为了提示用户输入正确的信息,需要用placeholder属性加以说明。 二、web 2.1、概念 placeholder 是HTML5 中新增的一个属性…

cocos creator-碰撞检测

碰撞检测文档 刚体自行选择,刚体正常设置分组、tag,tag用于区分是哪个物体被碰撞了 正常在一个node下挂载脚本就行 注意:Builtin 2D 物理模块只会发送 BEGIN_CONTACT 和 END_CONTACT 回调消息。ccclass(TestContactCallBack) export class …

NoSql非关系型数据库

前言:Nosql not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处…

A*算法学习

系列文章目录 前言 在总结 2023华为软件精英挑战赛——全赛段思路分享与总结 - 知乎 (zhihu.com)时,发现自己还有很多技术细节没搞懂,这里看静态全局路径规划最常见的A*算法,这个博主讲得很好: A-Star(A*&#xff0…

基于谷歌Flutter的媒体资讯APP的设计与实现

基于谷歌Flutter框架媒体资讯App的设计与实现 摘要: 当今社会,随着经济和科技的发展,人们的生活节奏也愈来愈快,人们生活的阅读时间也越来越少,越发的流行碎片化阅读,而同样的对于互联网的客户端开发者&am…

目标检测常用评价指标

1 基本概念 1.1 IOU(Intersection over Union) 1.2 TP TN FP FN 2. 各种率 3. PR曲线 4. mAP的计算 4.1 AP的计算 4.2 mAP 4.3 mAP0.5和mAP0.5:0.95 1.1 IOU(Intersection over Union) 1.2 TP TN FP FN TP(Truth Positive): 预测正类,实际正类&#x…

代码随想录 435. 无重叠区间

题目 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后,剩下的区间没有重叠。 示…

文件重命名:如何删除文件名中的下划线,特殊符号批量删除

在日常的工作中,经常会遇到文件名中包含特殊符号的情况,例如,一些文件名可能包含下划线、空格或其他特殊符号,这些符号可能会干扰我们的文件搜索和识别。此外,一些文件名可能包含无法识别的非标准字符,这可…

Neural Architecture Search for Deep Image Prior

深度图像先验的神经结构搜索 论文链接:https://arxiv.org/abs/2001.04776 项目链接:https://github.com/Pol22/NAS_DIP Abstract 在最近提出的深度图像先验算法(DIP)下,我们提出了一种神经结构搜索(NAS)技术来提高无监督图像去噪、修复和超…

MySQL之undo日志

聊聊undo log 什么是undo log undo log(回滚事务),在事务没有提交前,MySQL将记录更新操作的反向操作到undo log日志中,以便进行回退保证事务的原子性 undo log的作用 1.提供回滚操作 我们在进行数据更新操作的时候…

深入理解Docker中的高级使用命令

摘要: Docker是一种强大的容器化平台,广泛应用于软件开发和部署。除了基础的docker run和docker build命令之外,Docker还提供了许多高级使用命令,用于更精细地控制容器的行为。本文将深入探讨这些高级命令,带你更好地理…

GPIO的输出什么时候用开漏?什么时候用推挽?

首先要了解开漏和推挽的区别,开漏只能输出低电平,如果需要输出高电平就需要外部上拉电阻来实现;而推挽则既能输出高电平也能输出低电平,不需要依赖外部的上拉电阻。 那么开漏和推挽分别应用于什么情况呢? 第一种情况&a…

uniapp和vue3+ts实现自定义头部导航栏左侧胶囊内容

由于某些原因,可能需要我们自己定义头部导航栏的内容,实现各种设计师画的设计稿,所以就需要这个自定义的组件,实现的内容:自定义标题和左侧胶囊图标内容,也可以自定义搜索内容到里面,实现的效果…

html-video:计算视频是否完整播放 / 计算视频完播率

一、video 播放视频 <video width"100%"id"myVideo"object-fit"fill":autoplay"true":loop"false":enable-auto-rotation"true":enable-play-gesture"true":src"videoInfo.videoUrl":pos…

人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型,并利用简单数据进行快速训练

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型&#xff0c;并利用简单数据进行快速训练。VoVNetV2模型是计算机视觉领域的一个重要研究成果&#xff0c;它采用了Voice of Visual Residual&…

vue3使用element-plus,全局加载配置

Vue3报错&#xff1a;Failed to resolve component: xx If this is a native custom element, make sure to exclude it f 原因是是使用icon时报错&#xff0c;应该是icon也要引入东西 安装 npm install element-plus --save代码 //main.js文件 import { createApp } from vue…

JS实现快速排序

排序算法是计算机科学中的一个基础问题&#xff0c;而快速排序&#xff08;QuickSort&#xff09;作为其中一种经典而高效的算法&#xff0c;一直备受推崇。其在平均情况下具有较好的性能&#xff0c;被广泛应用于实际场景中。本文将深入探讨快速排序的原理、实现方法以及其在排…

安装vmware_esxi 超详细

安装vmware_esxi 超详细 </h2><div id"cnblogs_post_body" class"blogpost-body blogpost-body-html">esxi安装手册 1、esxi介绍 ESXI原生架构模式的虚拟化技术&#xff0c;是不需要宿主操作系统的&#xff0c;它自己本身就是操作系统。因此…

vue3跟vue2的区别?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3和vue2的区别 目录 一、Vue3介绍 哪些变化 速度更快 体积更小 更易维护 compositon Api …