本文讲述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年数据图层,打开图层属性,切换到【符号系统】,点击【色彩映射表】→【导入色彩映射表】。

四、成品展示

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

  1. 【ArcGIS风暴】ArcGIS中国地表覆盖数据GlobeLand30预处理(批量投影、拼接、掩膜提取)附成品下载

    结果示意图: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载的有3年的数据:2000-2010-2020.本文主要讲解在ArcGIS10.6平台下进行GlobeLand30的预 ...

  2. 【ArcGIS风暴】ArcGIS创建栅格数据集色彩映射表案例--以GlobeLand30土地覆盖数据为例

    矢量数据快速符号化,可以将常用的样式保存到样式符号库,栅格数据快速符号化,需要创建色彩映射表.本文以GlobeLand30土地覆盖数据为例,详解ArcGIS中创建与使用色彩映射表. 文章目录 一. A ...

  3. 【ArcGIS风暴】ArcGIS求一个矢量图层中多个图斑的“四至点”坐标案例教程

    如图所示,为ArcGIS软件自带的全球矢量数据,怎样求取每个大洲(图斑)的四至坐标(xmin.ymin.xmax.ymax)呢? 参考阅读:[ArcGIS遇上Python]python批量获取栅格数据 ...

  4. 【ArcGIS风暴】ArcGIS影像批量裁剪(分幅)方法总结

    实际工作中经常需要采用规则格网或标准分幅格网去对影像进行分幅.ArcGIS提供了强大的影像批量裁剪(分幅)的功能,常规的方法是利用掩膜提取工具手工重复裁剪,费时又费力,裁到让GISers怀疑人生... ...

  5. 【ArcGIS风暴】ArcGIS 10.2字段计算器(Field Calculator)批量条件赋值用法总结

    前面的文章介绍了栅格计算器的常见公式大全可以参照文章<[ArcGIS风暴]ArcGIS 10.2栅格计算器实用公式大全(经典珍藏版)>.可以看出,栅格计算器的熟练运用的确能解决很多栅格运算 ...

  6. 【ArcGIS遇上Python】python批量获取栅格数据四至(top,bottom,left,right)坐标代码

    上图所示为ArcGIS自带的影像数据,存放路径为C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcGlobeData\wsiearth.tif",在源 ...

  7. ArcGIS Engine10.0轻松入门级教程(1)——必备基础知识

    六月的某一天,骄阳似火,夜幕已悄悄降临,坐在电脑前回想自己的大学四年时光,或痛心疾首,或微微憨笑,感概万千,在GIS专业学习了4年,有很多收获,也有很多遗憾,幸而考上了研究生可以继续深造.于是乎心里的 ...

  8. 【ArcGIS风暴】全站仪、RTK测量坐标数据在CASS和ArcGIS中展点的区别和联系(带数据)

    ArcGIS展经纬度点完整教程:[ArcGIS风暴]ArcGIS 10.2导入Excel数据X.Y坐标(经纬度.平面坐标),生成Shapefile点数据图层 目录 1. CASS展点操作步骤 2. A ...

  9. Matlab / ArcGIS 处理GPM全球月均降水数据

    GPM降水数据网站:https://disc.gsfc.nasa.gov/datasets/GPM_3IMERGM_06/summary?keywords=GPM 这个降水数据的空间分辨率是0.1°( ...

最新文章

  1. jvm系列(十):如何优化Java GC「译」
  2. [LintCode] Trailing Zeroes 末尾零的个数
  3. MySQL学习笔记06【多表查询、子查询、多表查询练习】
  4. 合并多个word的代码_快速合并多个word文档内容,别再复制粘贴了!
  5. Ubuntu 华为开源镜像站 Mirror
  6. 为什么EClipse不显示错误
  7. c语言中如何用程序判断double型的浮点数能精确到几位小数,C语言中浮点数double/float相等判断...
  8. 欧氏空间内积定义_三、n维空间简介(6)矢量平移和测地线
  9. 灰度调节_MIUI12稳定版第二批部分全量推送,小米8灰度测试,新增三大亮点
  10. hibernate.hbm.xml必须必须配置主键
  11. java入门到精通6版pdf_java从入门到精通第6章.pdf
  12. 常用的MATLAB建模工具箱
  13. python爬取上证50ETF成分股信息
  14. Vim 文件浏览器(Netrw)
  15. Ubuntu添加和设置默认中文字体
  16. TP5 控制器命名大小写问题
  17. cad怎么将图层后置_CAD图层遮挡,如何将CAD图形进行前置或者后置?
  18. 报错:v-html will override element children 解决方法
  19. 2013年9月19日
  20. localhost访问不了的解决方法

热门文章

  1. 基于Prometheus的.NET 4.x应用服务监控
  2. 【Paddle 经验分享】利用PaddleHub 2.x 完成文本分类训练的坑
  3. 基于.NET Core的优秀开源项目合集
  4. C# 中 ConcurrentDictionary 一定线程安全吗?
  5. .NET 应用如何优雅的做功能开关(Feature Flag)
  6. 高并发项目Java是标配?.NET Core要将它拉下“神坛”!
  7. 七国要求科技巨头预留后门 应对马甲芯片高度警惕
  8. 开源 一套 Blazor Server 端精致套件
  9. Jenkins 中以构建 Tag 来实现版本管理
  10. Docker-HealthCheck指令探测ASP.NET Core容器健康状态