【ArcGIS风暴】GlobeLand30全球数据处理教程(批量投影转换、无效值处理、拼接)

本文讲述GlobeLand30全球数据批处理流程,主要步骤包括:批量分幅投影转换、批量分幅无效值处理、批量图幅拼接和成品展示。由于图幅数目和数据量较大,本文是采用Python代码批量实现的,有关Python的基本操作及处理案例,可以参考实用精品专栏:《ArcGIS遇上Python》

文章目录

  • 一、数据简介
  • 二、数据准备
  • 三、处理流程
    • 1. 批量投影转换
    • 2. 批量处理无效值
    • 3. 批量图幅拼接
    • 4. 添加分类字段并赋值
    • 5. 创建色彩映射表
    • 6. 导入色彩映射表
  • 四、成品展示


一、数据简介

  • GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020。

  • GlobeLand30数据采用WGS-84坐标系。南纬85°-北纬85°之间的区域,投影方式采用UTM投影, 6度分带,坐标单位为米,坐标不加带号。南北纬85°-90°之间的区域,投影方式采用极地方位投影,投影面切于地球南北极点。

二、数据准备

下载3年(2000-2010-2020)数据,分别解压到对应的文件夹内。

在这里插入图片描述

三、处理流程

1. 批量投影转换

GlobeLand30数据采用WGS-84坐标系。

南纬85°-北纬85°之间的区域,投影方式采用UTM投影, 6度分带,坐标单位为米,坐标不加带号。

南北纬85°-90°之间的区域,投影方式采用极地方位投影,投影面切于地球南北极点。

因此需要先对所有的图幅进行投影转换,然后进行后续拼接等操作。本文将其转换为地理坐标系为WGS1984。

Python批处理核心代码:

def GetRaster(path):n=0if (os.path.exists(path)):files = os.listdir(path)for file in files:m = os.path.join(path,file)if (os.path.isdir(m)):h=os.path.split(m)ws=root+"/"+h[1]arcpy.env.workspace = wsrasters = arcpy.ListRasters("*", "tif")for raster in rasters:print "Finding  "+ rasterprint "Projecting "+rasterout=outPath+"/"+rasterarcpy.ProjectRaster_management(raster,out, projecttype, "NEAREST",cellsize , "", "",geogratype)n=n+1print str(n)+" rasters are processed !!!"
GetRaster(root)

ArcGIS Python支持多线程处理,3年数据可以同步进行批处理。。。。

由于图幅数目和数据量均较大,该过程将持续很长的时间,可能是几个小时或者几天,因此呢,如果你没有足够强大的机器和心脏,建议不要轻易尝试。

2000年:

在这里插入图片描述
2010年:

在这里插入图片描述
2020年:

在这里插入图片描述

北半球投影结果:

在这里插入图片描述

局部图幅展示:

在这里插入图片描述
投影转换后的各个图幅,坐标系为WGS 1984。

在这里插入图片描述

2. 批量处理无效值

第一步投影结束后,影像的黑边依然存在,这将影像后面的拼接处理结果,经过查询得知,黑边对应的像元值为0,只需要将其设置为NoData即可,对应的工具是栅格计算器中的SetNull函数,我们继续使用Python批处理。

在这里插入图片描述
Python自动批处理核心代码:

for inRaster in inRasters:outRaster=outpath+inRaster##print outRasterprint "Processing "+inRaster +" ......"outSetNull = SetNull(inRaster,inRaster,WhereClause)outSetNull.save(outRaster)n=n+1
print str(n)+" rasters are processed!"

在这里插入图片描述

3. 批量图幅拼接

在ArcGIS中拼接栅格图幅有两个工具:【镶嵌】和【镶嵌至新栅格】,当然了需要手动添加数据,好在我们的数据在同一个文件夹下,可以直接全选拖动,当然了,也可以写Python代码来完成。

方法一:使用【镶嵌至新栅格】工具

在这里插入图片描述

方法二:Python代码

 arcpy.MosaicToNewRaster_management(str, outPath, outName, "", "8_BIT_UNSIGNED", "", "1", "LAST", "FIRST")

需要注意的是,原始数据集是tif格式,且每个图幅都是有金字塔的,加载和显示速度都比较快,但是SetNull后会丢失金字塔,加载速度很慢。

4. 添加分类字段并赋值

打开属性表,添加一个文本型字段type,打开编辑器,输入分类名称并保存。

在这里插入图片描述
分类赋值参照表:

在这里插入图片描述在这里插入图片描述

5. 创建色彩映射表

双击2000年数据图层,打开图层属性,切换到【符号系统】,点击【色彩映射表】→【导出色彩映射表】。

在这里插入图片描述
选择存放路径,并输入名称,色彩映射表的后缀名是.clr。

在这里插入图片描述

6. 导入色彩映射表

有了刚才导出的色彩映射表(GlobeLand30色彩映射表.clr文件),可以快速地对剩余两年的数据做符号化了,方法是:双击2010和2020年数据图层,打开图层属性,切换到【符号系统】,点击【色彩映射表】→【导入色彩映射表】。

在这里插入图片描述

四、成品展示

在这里插入图片描述

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

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

相关文章

Docker 私有仓库的搭建

Docker在2015年推出了distribution项目,即Docker Registry 2。相比于old registry,Registry 2使用Go实现,在安全性、性能方面均有大幅改进。Registry设计了全新的Rest API,并且在image存储格式等方面不再兼容于old Registry。去年…

请查收.NET MAUI 的最新学习资源

点击上方蓝字关注我们(本文阅读时间:3分钟)2022 年 5 月 23 日,.NET MAUI 正式发布。.NET MAUI 为您提供了一流的跨平台 UI 堆栈,面向 Android、iOS、macOS 和 Windows。我们很高兴地宣布,有几种不同的学习 .NET MAUI …

C语言试题151之求 0到7 所能组成的奇数个数。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:求 0—7 所能组成的奇数个数…

腾讯2016春招之算法编程解析

第一道题:求有删除情况的最长回文子串 题目: 解题思路: 这个题严格意义上来说,删除了字符就谈不上回文串了,既然有删除,那估计考察的不是回文串,而是其他的,但是这个东西又有回文串的…

【EPS精品教程】EPS2016三维测图版安装教程(附EPS2016安装包下载地址)

文章目录 一、安装过程二、软件安装包下载EPS地理信息工作站是北京清华山维新技术开发有限公司历经十五年精心研发和打造,为满足“以地理信息服务为中心”的信息化测绘生产需求而推出的测绘生产活动多种业务模块集成化软件系统。主要功能有: (1)测绘与地理信息多业务模块集…

禁锢自己的因素,原来有这么多

2022年的7月,朋友圈都能看到喜庆的时刻,庆祝香港回归25周年,这确实是一个具有伟大里程碑的意义。同时也是建党101周年,满满的荣誉感,隔着朋友圈都能感受到喜庆。家事国事天下事,事事关心,关心但…

C语言试题152之一个偶数总能表示为两个素数之和

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:一个偶数总能表示为两个素数…

[转]Xshell连接win10 Linux子系统

配置SSH服务: sudo apt-get remove --purge openssh-server ## 先删ssh sudo apt-get install openssh-server ## 在安装ssh sudo rm /etc/ssh/ssh_config ## 删配置文件,让ssh服务自己想办法链接 sudo service ssh --full…

记一个并发规则验证实现

最近在做一个简单的风控,其中有一块需求是这样的,当主请求参数到达后,会根据这些参数,看调起几个并发规则,这些规则各自有自己的验证逻辑,每个规则执行时间长短都不确定,当规则 执行完后&#x…

C语言试题153之判断一个素数能被几个 9 整除

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:判断一个素数能被几个 9 整除…

[转]Zookeeper入门看这篇就够了

Zookeeper是什么 官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用…

微服务-springcloud(eureka实践, nacos实践)

Spring 体系图 版本关系 eureka 实践 1 父工程依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.14</version> </parent> <dependencyManage…

Windows服务二:测试新建的服务、调试Windows服务

一、测试Windows服务 为了使Windows服务程序能够正常运行&#xff0c;我们需要像创建一般应用程序那样为它创建一个程序的入口点。像其他应用程序一样&#xff0c;Windows服务也是在Program.cs的Main()函数中完成这个操作。首先我们在Main&#xff08;&#xff09;函数中创建一…

角度前方交会点坐标计算完整步骤

测量工作中&#xff0c;我们常常会遇到待测点被障碍物遮挡住观测视线而无法进行观测的情况。这时候我们就需要特殊的交会计算方法对待定点进行特别的观测。 前方交会又称为测角交会&#xff0c;是指从相邻两个已知点向待定点观测两个水平角&#xff0c;用以计算待定点的坐标。 …

Mysql 的子查询

子查询&#xff1a; 子查询&#xff1a;嵌套在其它查询中的查询语句。&#xff08;又称为内部查询&#xff09; 主查询&#xff1a;包含其它子查询的查询称为主查询。&#xff08;又称外部查询&#xff09; 非相关子查询&#xff1a; 在主查询中&#xff0c;子查询只需要执行一…

【系统设计】指标监控和告警系统

在本文中&#xff0c;我们将探讨如何设计一个可扩展的指标监控和告警系统。一个好的监控和告警系统&#xff0c;对基础设施的可观察性&#xff0c;高可用性&#xff0c;可靠性方面发挥着关键作用。下图显示了市面上一些流行的指标监控和告警服务。接下来&#xff0c;我们会设计…

C语言试题154之两个字符串连接程序

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:两个字符串连接程序 2 、温馨…

[转]Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle

用了好久的AS了&#xff0c;官方版本更新&#xff0c;各种配置工具 也跟着更新。更新后导入工程时&#xff08;使用Android工程编译或者导入新的工程没有对应的gradle版本&#xff09;一些电脑出现一下问题。 Error:Failed to open zip file. Gradles dependency cache may …

mybatis源码学习

2019独角兽企业重金招聘Python工程师标准>>> 学习主线&#xff1a; 目的&#xff1a;mybatis的作用orm框架&#xff0c;用了该框架就不用自己调用jdbc了。 用法&#xff1a;。。。。。 逻辑&#xff1a;。。。。。 源代码&#xff1a;。。。。。 1、猜想mybatis对数…