GEE 22:基于GEE实现物种分布模型(更新中。。。。。。)

news2024/11/30 7:39:09

物种分布模型

  • 1. 数据点准备
    • 1.1 数据加载
    • 1.2 去除指定距离内的重复点
    • 1.3 定义研究区范围
    • 1.4 选择预测因子

1. 数据点准备

1.1 数据加载

  首先需要将CSV文件导入到GEE平台中,同样也可以导入shp格式文件。

在这里插入图片描述

// 1.Loading and cleaning your species data *********************************************************************
var Data = ee.FeatureCollection("projects/ee-**********736/assets/Tree_sample")
                .aside(print) // 导入本地上传的站点信息
                .map(function(fea){
                  return ee.Feature(ee.Geometry.Point([fea.get('Longitude'),fea.get('Latitude')]))//设置经纬度
                           .copyProperties(fea) // 拷贝原有属性信息
                }).aside(print)
                

1.2 去除指定距离内的重复点

  物种分布建模的一个重要步骤是限制地理采样偏差对模型输出的潜在影响,这种影响是由于多个附近观测结果导致的数据聚集。在选定的空间分辨率下,将位置数据细化为每像素随机选择的一个事件记录。所以需要将相隔在一定距离之内的点删除,如去掉在10km以内的重复点:

// Define spatial resolution to work with (m)
var GrainSize = 10000; // e.g. 10 km

Map.addLayer(Data.style({color:'red',pointSize:4}),{},'randomPoints')

function RemoveDuplicates(data){
  // 生成一个随机栅格图像,使用随机值填充,然后重新投影到经纬度坐标系(EPSG:4326)
  var randomraster = ee.Image.random().reproject('EPSG:4326', null, GrainSize);
  
  // 从随机栅格图像中获取样本点的值,样本点来自于输入数据集(data)
  // scale为: 缩放因子,控制样本点的间隔
  var randpointvals = randomraster.sampleRegions({collection:ee.FeatureCollection(data), scale: 10, geometries: true});
  // 返回去重后的样本点,通过 'random' 字段进行去重
  return randpointvals.distinct('random');
}

var Data = RemoveDuplicates(Data);
Map.addLayer(Data.style({color:'blue',pointSize:4}),{},'randomPoints')

print(ee.FeatureCollection('projects/ee-**********736/assets/Tree_sample').size())
print(Data.size())

1.3 定义研究区范围

在这里插入图片描述

// 2.Define your area of interest for modeling *********************************************************************
// Load region boundary from data catalog if working at a larger scale
var AOI = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017').filter(ee.Filter.eq('country_co', 'CH'));
// Define the area of interest
// select a bounding box around your species location data
var AOI = Data.geometry().bounds().buffer(50000);

// Add AOI to the map
Map.addLayer(AOI, {'color':'yellow'}, 'AOI');
Map.centerObject(AOI, 3);

1.4 选择预测因子

// 3.Selecting predictor variables *********************************************************************
// Example of code to import the SRTM Digital Elevation Data 30m
var Elev = ee.Image("USGS/SRTMGL1_003");

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

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

相关文章

【KubeSphere】基于AWS在 Linux 上以 All-in-One 模式安装 KubeSphere

文章目录 一、实验配置说明二、实验准备工作1.确认系统版本2. 修改网络DNS3. 关闭SELINUX4. 关闭防火墙 三、实验依赖项安装四、下载 KubeKey五、一键化安装部署六、验证安装结果七、登录KubeSphere管理控制台八、参考链接 一、实验配置说明 本实验基于AWS启动一台新实例&…

@Async注解的坑,小心

背景 前段时间,一个同事小姐姐跟我说她的项目起不来了,让我帮忙看一下,本着助人为乐的精神,这个忙肯定要去帮。 于是,我在她的控制台发现了如下的异常信息: Exception in thread "main" org.s…

信创之国产浪潮电脑+统信UOS操作系统体验7:VSCode任务tasks.json的问题匹配器problemMatcher详解

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 最近在国产操作系统上使用Visual Studio Code的任务配置,发现tasks下的问题匹配器problemMatcher公开资料很少或很简单,直接在某度上通过problemMatcher搜索基本上没有精确…

从代码执行,看单片机内存的分配

1、单片机执行指令过程详解 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令--分析指令--执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读…

粒子群算法Particle Swarm Optimization (PSO)的定义,应用优点和缺点的总结!!

文章目录 前言一、粒子群算法的定义二、粒子群算法的应用三、粒子群算法的优点四、粒子群算法的缺点:粒子群算法的总结 前言 粒子群算法是一种基于群体协作的随机搜索算法,通过模拟鸟群觅食行为而发展起来。该算法最初是由Eberhart博士和Kennedy博士于1…

由于找不到msvcp120.dll无法继续执行代码是什么原因怎么修复

今天我想和大家分享的是关于“msvcp120.dll丢失的解决方法”。或许有些同学在平时使用电脑的过程中会遇到这个问题,但是并不知道该如何解决。那么,接下来我将从三个方面为大家介绍:msvcp120.dll丢失的原因、msvcp120.dll是什么以及msvcp120.d…

小程序如何进行版本升级

小程序版本升级是非常重要的,它可以帮助商家及时更新功能、修复bug,提升用户体验,增加小程序的竞争力。那么,商家怎么进行小程序版本升级呢?下面具体介绍。 在小程序管理员后台->版本设置处,会显示是否…

基于springboot+vue的学生宿舍管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

NEFU离散数学实验PBL

1.青蛙的约会 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既…

案例029:基于微信小程序的阅读网站设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

[leetCode]257. 二叉树的所有路径(两种方法)

257. 二叉树的所有路径 题目描述: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例: 输入:root [1,2,3,null,5]输出:["1-&g…

超实用!Spring Boot 常用注解详解与应用场景

目录 一、Web MVC 开发时,对于三层的类注解 1.1 Controller 1.2 Service 1.3 Repository 1.4 Component 二、依赖注入的注解 2.1 Autowired 2.2 Resource 2.3 Resource 与 Autowired 的区别 2.3.1 实例讲解 2.4 Value 2.5 Data 三、Web 常用的注解 3.1…

Echarts 设备状态 甘特图

在做工厂智能化生产看板时,绝对会有设备状态看板,展示设备当天或者当前状态,设备状态数据一般是有mes 系统设备管理模块对设备信息进行采集,一般包括过站数据,设备当前状态,是否在线是否故障、检修、待生产…

解决Vue编程式导航路由跳转不显示目标路径问题

我们配置一个编程式导航的路由跳转,跳转到 /search 页面,并且携带categoryName和categoryId两个query参数。 this.$router.push({path: "/search",query: {categoryName: dataset.categoryname,categoryId: dataset.categoryid} }) 如果我们…

清华提出 SoRA,参数量只有 LoRA 的 70%,表现更好!

现在有很多关于大型语言模型(LLM)的研究,都围绕着如何高效微调展开。微调是利用模型在大规模通用数据上学到的知识,通过有针对性的小规模下游任务数据,使模型更好地适应具体任务的训练方法。 在先前的工作中&#xff…

【挑战业余一周拿证】二、在云中计算 - 第 1 节 - 模块2 简介

第 1 节 - 模块2 简介 无论你的企业是属于像医疗、保健、制造、保险等等行业 , 再或者 , 您的服务是向全世界的数百万用户提供视频、、图片或者文字服务,你也需要服务器来为您的业务和应用程序提供支持,服务器的作用是帮助您托管应用程序并提供满足您业务需求的计算能力. 当你使…

显示Excel功能区或工具栏的方法不少,其中快捷方式最快

Microsoft Excel是Office套件中最复杂的工具之一,它提供了大量功能,其中大部分都是使用工具栏操作的。缺少工具栏使Excel很难完成工作。 如果Excel中没有这些关键元素,你将无法快速完成工作,因此,可以理解的是&#x…

Rust高性能网络框架:实战案例与代码解析

欢迎关注我的公众号lincyang新自媒体,回复关键字【程序员经典书单】,领取程序员的100本经典书单 大家好!我是lincyang。 今天我们将深入探讨Rust编程语言在实际项目中的应用,并结合具体的代码示例来加深理解。 Rust因其内存安全…

JBase到JRT

JBase之前是站在之前基础上新做的java框架。所以带入一些老的历史习惯,比如库和空间都以LIS开头,实体只能是LIS.Model等。为了做到更通用的框架,需要剔除LIS特性,实体肯定不能只能叫LIS.Model了。同时之前只关注业务脚本化的事忘了…

文件重命名不求人:批量重命名的技巧,告别手动修改文件名

在日常工作中,经常需要处理大量的文件,其中文件重命名是常见的需求。一个个手动修改文件名,不仅费时费力,还容易出错。那么,是否存在一种更高效、更便捷的方式,告别逐个手动修改文件名的繁琐过程呢&#xf…