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);
海拔:
最大温度:
年降水量:
森林植被覆盖率:
相关文章:

GEE 23:基于GEE实现物种分布模型之随机森林法
基于GEE实现物种分布模型之随机森林法 1.物种分布数据2.研究区绘制3.预测因子选择 1.物种分布数据 根据研究目的和需要导入物种数据: // Load presence data var Data ee.FeatureCollection("users/************736/Distribution"); print(Original da…...

HCIE 01:基于前缀列表的BGP ORF功能
当运行BGP协议的某台设备上,针对入方向配置了基于ip-prefix的路由过滤,过滤了邻居发送的路由; 目前想,通过在peer关系的两端设备上都配置ORF功能,实现路由发送端只能送路由接收端过滤后的路由; ORF功能的说…...

基于SSM的云鑫曦科技办公自动化管理系统设计与实现
基于SSM的云鑫曦科技办公自动化管理系统设计与实现 摘 要: 随着时代的发展,单位办公方式逐渐从传统的线下纸张办公转向了使用个人pc的线上办公,办公效率低下的传统纸质化办公时代的淘汰,转型到信息化办公时代,面对当今数据逐渐膨…...
Angular项目中如何管理常量?
在Angular项目中,你可以使用不同的方式来管理常量。以下是一些常见的方法: 1、常量文件: 创建一个单独的 TypeScript 文件,其中包含你的常量。例如,创建一个名为 constants.ts 的文件,并在其中定义你的常量…...

【机器学习 | 可视化】回归可视化方案
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

树与二叉树堆:链式二叉树的实现
目录 链式二叉树的实现: 前提须知: 前序: 中序: 后序: 链式二叉树的构建: 定义结构体: 初始化: 构建左右子树的指针指向: 前序遍历的实现: 中序…...
C++面试的一些总结day1:指针和引用的区别
文章目录 指针和引用的区别和作用定义区别作用 指针和引用的区别和作用 定义 指针:指针是一个变量,其值为指向对象的内存地址,而不是值本身。引用:可以理解为对象的别名,是另外一个变量的直接别名,用于创…...

Java核心知识点整理大全15-笔记
Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…...
初始本地仓库推送到远程仓库-git
背景(问题描述) 下面的git的操作符合的情况是: ①本地初始化一个仓库,但是还没有和远程仓库相关联; ②远程仓库也刚刚创建,里面啥也没有 然后目前就想将本地的仓库的内容和远程仓库相关联并推送到远程仓…...

OpenCV | 图像梯度sobel算子、scharr算子、lapkacian算子
import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline 1、sobel算子 img cv2.imread(pie.png,cv2.IMREAD_GRAYSCALE) cv2.imshow(img,img) cv2.waitKey() cv2.destroyAllWindows() pie图片 dst cv2.S…...

WS2812灯条基于WLED开源项目无门槛使用简介
WS2812灯条基于WLED开源项目无门槛使用简介 📌项目github地址:https://github.com/Aircoookie/WLED📍WLED详情地址:https://kno.wled.ge/🎈网页在线烧录固件地址:https://install.wled.me/ ✨ 仅作为使用的…...

基于AOP的声明式事物控制
目录 Spring事务编程概述 基于xml声明式事务控制 事务属性 isolation timeout read-only propagation 全注解开发 Spring事务编程概述 事务是开发中必不可少的东西,使用JDBC开发时,我们使用connection对事务进行控制,使用MyBatis时&a…...

第七节HarmonyOS UIAbility生命周期以及启动模式
一、UIAbility生命周期 为了实现多设备形态上的裁剪和多窗口的可扩展性,系统对组件管理和窗口管理进行了解耦。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,WindowStageCreate和WindowStageDestroy为窗口管理器(…...

matlab设置背景颜色
matlab默认的背景颜色是纯白RGB(255,255,255),纯白太刺眼,看久了,眼睛会酸胀、疼痛,将其改成豆沙绿RGB(205,123,90),或者给出浅绿色RGB(128,255,255), 颜色就会柔和很多,眼睛感觉更舒适。 下面介绍在…...
Linux gzip命令用法详解:如何压缩和解压文件(附实例教程和注意事项)
Linux gzip命令介绍 Linux gzip命令用于压缩文件。它可以减小文件的大小以节省磁盘空间,并且可以通过gzip命令将多个文件合并成一个压缩文件。 Linux gzip命令适用的Linux版本 Linux gzip命令可以在多数Linux发行版(如Debian、Ubuntu、Alpine、Arch L…...

初刷leetcode题目(11)——数据结构与算法
😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️…...

基于SSM框架的图书馆管理系统设计与实现
基于SSM框架的图书馆管理系统 摘要:在21信息时代中,编程技术的日益成熟,计算机已经是普通使用的。编程技术的实现是基于计算机硬件上,计算机科学与技术的进步,让时代发展的更快,更加信息化。人们都是学习如…...

【面试】css预处理器之sass(scss)
目录 为什么引入css预处理器 可读性 嵌套:关系明朗 选择器 属性 伪类‘’ 变量:语义明确 默认变量:美元符号 $ 变量名:值 !default 全局变量::global { $global-x: } 变量插值:#{} map键值对:$…...

Android设计模式--享元模式
水不激不跃,人不激不奋 一,定义 使用共享对象可有效地支持大量的细粒度的对象 享元模式是对象池的一种实现,用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象…...
人工智能对我们的生活影响有多大
人工智能给我们的生活带来了巨大的影响!它像魔术师一样,帮我们解决问题、提供建议,甚至预测未来。从智能手机到智能家居,人工智能让我们的生活变得更便捷、更智能。它是我们生活中的得力助手,让我们感受到科技的魅力&a…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...