今年的中秋又要到啦,我的中秋节祝福程序源代码分享:过什么节,代码走起!

今天主要给大家介绍的是关于一个如何对影像重投影然后获取特定阈值情况下的影像

先看结果:

原始影像

重投影后的影像:

这里用到的数据是

CORINE(环境信息协调)土地覆盖物(CLC)清单于1985年启动,旨在使欧洲的土地数据收集标准化,以支持环境政策的制定。该项目由欧洲环境署(EEA)在欧盟哥白尼计划的框架内进行协调,并由国家小组实施。参与国的数量随着时间的推移而增加,目前包括33个(EEA)成员国和6个合作国(EEA39),总面积超过580万平方公里。

CLC2018是Corine土地覆盖计划框架内产生的数据集之一,涉及2018年的土地覆盖/土地利用状况。第一个CLC清单的参考年份是1990年,第一次更新是在2000年。后来,更新周期变为6年。卫星图像为制图提供了几何和专题基础,原地数据是重要的辅助信息。CLC的基本技术参数(即44个等级的命名、25公顷的最小测绘单位(MMU)和100米的最小测绘宽度)从一开始就没有改变,因此,不同清册的结果是可以比较的。

每项资产所涵盖的时间段为。

1990年的资产:1989年至1998年
2000年的资产:1999年至2001年
2006年资产:2005年至2007年
2012年资产:2011年至2012年
2018年资产:2017年至2018年

本文的目的是将原始100米分辨率的数据通过重投影将分辨率转化为1000米的状态:

用到的一个投影函数:

ee.Projection(crs, transform, transformWkt)
返回一个具有给定基础坐标系和给定投影坐标与基础之间转换的投影。如果没有指定变换,则假定是同一变换。

参数。
crs(对象)。
这个投影的基础坐标参考系统,以著名的权威代码(例如'EPSG:4326')或WKT字符串形式给出。

transform(列表,默认为空)。
投影坐标与基础坐标系之间的转换,以2x3仿射转换矩阵的形式,按行主序指定。[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]。不能同时指定这个和'transformWkt'。

transformWkt(字符串,默认为空)。
投影坐标与基准坐标系之间的转换,以WKT字符串形式指定。不能同时指定这个参数和 "transform"。

返回。投影

updateMask(mask)
在所有现有遮罩不为零的位置上更新图像的遮罩。输出的图像保留了输入图像的元数据和足迹。

参数。
this:image (Image):
输入图像。

mask (图像)。
图像的新掩码,是[0, 1]范围内的一个浮点值(无效=0,有效=1)。如果这个图像只有一个波段,它将用于输入图像的所有波段;否则,必须有与输入图像相同的波段数。

返回。图像

reduceResolution(reducer, bestEffort, maxPixels)
使用给定的还原器启用重投,将所有输入像素对应于每个输出像素的组合。如果还原器只有一个输入,它将分别应用于集合的每个波段;否则它必须有与输入图像的波段数量相同的输入。

还原器的输出名称决定了输出波段的名称:有多个输入的还原器将直接使用输出名称,有单个输入和单个输出的还原器将保留输入波段的名称,有单个输入和多个输出的还原器将在输出名称前加上输入波段的名称(例如'10_mean', '10_stdDev', '20_mean', '20_stdDev' 等等)。

还原器的输入权重将是输入掩码与输入像素所覆盖的输出像素部分的乘积。

参数。
this:image(图像)。
输入的图像。

reducer (减速器)。
要应用的还原器,用于合并像素。

bestEffort(布尔值,默认:false)。
如果在默认分辨率下使用输入的图像需要太多的像素,那么就从一个允许操作成功的金字塔级别的已经被还原的输入像素开始。

maxPixels(整数,默认为64)。
为每个输出像素合并的最大输入像素数。设置过大会导致内存不足的问题。

返回。图像

reproject(crs, crsTransform, scale)
强制以给定的投影和分辨率计算一个图像。

参数。
this:image(图像)。
要重新投影的图像。

crs(投影)。
要投射的图像的CRS。

crsTransform(列表,默认为空)。
CRS变换值的列表。这是一个3x2变换矩阵的行主排序。该选项与scale选项互斥,并取代投影上已有的任何变换。

scale (Float, default: null):
如果指定了scale,那么投影的比例是用指定的比例值除以指定投影中一米的名义尺寸。如果没有指定比例,那么将使用给定投影的比例。

返回。图像

focalMode(radius, kernelType, units, iterations, kernel)
使用指定的或自定义的内核,对图像的每个波段应用形态学还原()滤波器。这个主要的目的就是聚合类型的选择,用来转换投影的时候常用

参数。
this:image(图像)。
要应用这些操作的图像。

radius (Float, default: 1.5):
要使用的内核的半径。

kernelType(字符串,默认为 "圆")。
要使用的核的类型。选项包括。圆"、"方"、"十字"、"加"、"八角 "和 "钻石"。

units(字符串,默认为 "像素")。
如果没有指定内核,这决定了内核的单位是米还是像素。

iterations(整数,默认为1)。
应用给定内核的次数。

kernel(内核,默认:null)。
一个自定义的内核。如果使用,kernelType和radius会被忽略。

返回。图像

代码:

//用函数来实现一个森林筛选
function aggregateWithCoverageThreshold(img, projection, threshold) {var img2 = img.reduceResolution({reducer: ee.Reducer.mode(),maxPixels: 128}).reproject(projection);var mode_coverage = img2.mask();return img2.updateMask(mode_coverage.gte(coverage_threshold));
}// 设定阈值和重新定义投影
var coverage_threshold = 0.6;
var proj1000 = ee.Projection('EPSG:3857', [1000,0,-20037550,0,-1000,15538800]);
//原始影像选择和处理
var originalImage = ee.Image("COPERNICUS/Landcover/100m/Proba-V-C3/Global/2019").select('forest_type');
//选择影像大于0的部分
originalImage = originalImage.updateMask(originalImage.gt(0));
//将所有东西通过上面的函数进行筛选
var newImage = aggregateWithCoverageThreshold(originalImage, proj1000, coverage_threshold);Map.addLayer(originalImage, {}, 'original image');
Map.addLayer(newImage, {}, 'new image');

这里只选择了影像中全球森林分布的:

总的来说,本文主要是介绍了一个快速实现研究区的影像的分辨率转换。有问题可以在评论区留言,祝大家中秋节快乐。

中秋节祝福程序源代码分享:土地分类数据阈值筛选和重投影分类相关推荐

  1. 我的中秋节祝福程序源代码分享:月圆人团圆,中秋来赏月

    今年的中秋又要到啦,当然了,我们程序员开发者有自己的过中秋的方式.我们可以用程序代码去实现它,那么下边就看看我们怎么使用少儿编程图形化编程工具来实现中秋节的祝福吧. 下边是我实现的最终效果:有月亮.玉 ...

  2. 计划助手V1.0-微信小程序(QQ小程序)-源代码分享

    疫情期间在家感觉好无聊啊,于是利用空闲时间做了一个用来记录和管理小目标时间的小程序,命名为<计划助手>. QQ版本小程序同步上线,QQ小程序叫<计划助手>,欢迎大家前来体验,后 ...

  3. 微信小程序源代码分享:模仿面包旅行(微信小程序版)

    源代码下载地址: http://pan.baidu.com/s/1miHIuBe 基于微信小程序的旅行类的应用 开发工具 微信Web开发者工具 0.10.101100 源代码下载地址: http:// ...

  4. 校园服务小程序源代码分享园服务微信小程序全开源版源码-包含服务端

    2021年4月17日更新 严正声明: [请一定勿将程序用户商业用途且 包括 用此程序去参加各类学校的竞赛或者其他以获取名利而参与的竞赛等,一旦被原作者发现将会面临严重的侵权责任后果,特别是被获奖后会遭 ...

  5. mbr病毒程序源代码分享2

    废话不多说,直接上代码. #include <windows.h> #include <iostream> #include <ctime> #include &l ...

  6. 【精选】新年祝福(C语言),Easyx图形库应用+源代码分享

    [精选]新年祝福(C语言),Easyx图形库应用+源代码分享 博主:命运之光 专栏:Easyx图形库应用 目录 [精选]新年祝福(C语言),Easyx图形库应用+源代码分享 程序展示 一.项目环境 简 ...

  7. 利用MRT对MODIS数据进行批量重投影+批量波段合成

    写在前面: 官方渠道已经下载不到MRT了,为什么呢?退休了呗. LP DAAC - The downloadable MODIS Reprojection Tool (MRT) and MRTSwat ...

  8. 中秋祝福网页制作_中秋节祝福语不知怎么写?这3个小程序让你的祝福更精美...

    中秋节快到了,没回去与亲朋好友们团聚?那就送上一份载满心意的祝福吧,以表达你深切的祝福,那么这些祝福语怎么写呢?下面是小编为你介绍的3个关于祝福的小程序,希望对你有帮助哦! 1.中秋小心意 中秋小心意 ...

  9. 商业方向的大数据专业_好程序员大数据培训分享大数据就业方向有哪些

    好程序员大数据培训分享大数据就业方向有哪些?看到了大数据的就业前景及就业薪资,相信很多人都对大数据技术跃跃欲试,想要学习大数据技术.小编认为在学习大数据之前,你还需要了解一下大数据的就业方向有哪些?毕 ...

最新文章

  1. React路由 react-router-dom
  2. 遴选中计算机类,计算机卓越班遴选办法-计算机学院
  3. 运行iis提示服务没有及时响应启动或控制请求的解决方法
  4. 怎么查看和修改 MySQL 的最大连接数?
  5. 完整适配LUCI界面的Openwrt中EC20的QMI拨号
  6. SpringMVC实现简单登录
  7. 彻彻底底了解回调函数
  8. CentOS下安装网卡驱动
  9. mysql基础知识整理_MYSQL基础知识整理
  10. 在java中字符流怎么复制_Java 使用字符流拷贝数据
  11. 弹跳机器人 桌游_MIT机器人轻松搞定桌游叠叠乐:你能玩过它算我输 |《科学》子刊...
  12. python开发之路---第二模块--OS模块
  13. cocos2d-x自制工具07:打印cocos2d-x的节点树
  14. 例外被抛出且未被接住问题
  15. php爬虫框架crawler
  16. aliddns ipv6_python脚本实现ipv6的ddns功能
  17. Win10--MySQL8.0.29 免安装版本的配置教程及问题解决
  18. 当当网张亮:Sharding-JDBC 未来将更加多样化
  19. 运行edX Devstack
  20. 一元二次求解matlab程序,规范MATLAB编程实例——求解一元二次方程

热门文章

  1. 选煤厂工艺流程图和设备流程图
  2. 每日优鲜的营销推广措施分析
  3. Xamarin.Android入门
  4. 向量的点乘与X乘以及意义
  5. linux 如何删除log文件,linux的删除文件日志命令是什么
  6. Excel使用VBA合并单列、多列单元格
  7. UICC, CSIM, RUIM, UIM, USIM, SIM
  8. 高数——导数的意义——学习笔记
  9. Camtasia Studio CamStudio如何不录制鼠标
  10. 经验主义:破解困局的救命稻草