当前位置: 首页 > news >正文

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为窗口管理器&#xff08…...

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…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...