前言:比较 ArcGIS QGIS FME ENVI 这四种专业软件工具的栅格镶嵌速度,帮助你做出最好的选择。到底谁最快,快来看一看... |
比较说明说明这是一个完整的测试过程,必须将镶嵌完成的结果保存到本地才行。另外保存下来的栅格像元输出类型都设置为16位的无符号整型格式,即 16bit unsigned ;配置情况使用的是自己的旧笔记本,已经是时代的眼泪了。不过也要开启倔强的性能模式。CPU i5-7300HQ 基准频率2.5GHz,睿频3.2GHz;版本号ArcGIS 10.3 版本 未开启64位 gp,启动硬件加速模式ENVI 5.3.1 64位 非 Classic 版本
数据处理SRTM 数据,就是高程栅格, 文件后缀为 HGT。由于不知道是什么原因,ENVI5.3 sp1 暂时无法打开 HGT 格式的文件。为了让每个软件工具都能打开文件,所以现在要将所有 HGT 格式转换为最为常见的 tif 格式。# -*- coding:utf-8 -*- # ------------------------------------------- # Name: readraster # Author: Hygnic # Created on: 2021/4/19 23:31 # Version: # Reference: """ Description: 将Hgt文件转换为栅格tif Usage: """ # ------------------------------------------- from __future__ import absolute_import from __future__ import unicode_literals import os import arcpy
arcpy.env.workspace = r"E:\MyD\dem\chengdu\t" arcpy.env.overwriteOutput = True
class HGT2TIF(object): def __init__(self, hgt): self.hgt = hgt # function self.convert()
def convert(self): raster = arcpy.Raster(self.hgt) name = os.path.basename(self.hgt) # N28E104.hgt purename = os.path.splitext(name)[0] raster.save("{}.tif".format(purename)) if __name__ == '__main__': dir_path = r"E:\MyD\dem\chengdu\H48" hgt_files = os.listdir(dir_path) for hgt in hgt_files: hgt_path = os.path.join(dir_path, hgt) HGT2TIF(hgt_path)使用 arcpy.Raster 创建栅格对象,与栅格对象关联的栅格可使用 save 方法保存。
ArcGIS 栅格镶嵌 第一个测试的就是大家使用非常多的 ArcGIS desktop 软件,这个软件自然不必多说。其实我更想使用 ArcGIS pro 不过没有钱买不起,也无法破解。使用镶嵌至新栅格工具进行镶嵌。该工具位于数据管理工具->栅格->栅格数据集->镶嵌至新栅格。所以使用 ArcGIS 执行栅格镶嵌的时间就是7秒多。
QGIS 栅格镶嵌 QGIS,目前最火热、社区最活跃的开源 GIS 平台。该工具来自于 GADL 包。位于QGIS 右侧工具栏,GDAL->Raster miscellaneous->Merge。Note: 该功能需要开启核心插件 GDAL 工具,该插件默认开启。但是如果找不到该工具的话就去设置中开启该核心插件。 | 其运行时间在2.4~2.57秒之间,速度完全秒杀了 ArcGIS,当然情理之中,毕竟一个20岁年轻人打一个60岁的中老年人。
ENVI 栅格镶嵌图像分析人员、GIS 专业人员和科学家可以使用它从地理空间影像中提取及时、可靠、准确的信息。ENVI 的各种功能经过科学验证,并且易于使用,同时与 Esri 的 ArcGIS 平台紧密集成。作为专精遥感影像处理的 ENVI 来说,在栅格数据处理的强大不必多说。在主界面的右边找到 Seamless Mosaic 工具,单击打开,进行镶嵌操作。由于现这个版本不会显示工具运行的时间,故运行时间使用手机秒表计算。但是 ENVI 栅格镶嵌方面的选项是最多的,同时各种效果和辅助线能帮助操作人员更精细化的操作。
FME 栅格镶嵌按照官网的话来说,FME(Feature Manipulation Engine) 是一个对空间数据有着广泛支持的数据整合平台,是加拿大Safe Software公司开发的空间数据转换处理系统。FME 不仅能在数百种空间数据和非空间数据之间进行转换,还能在空间数据的基础上对其进行空间分析、投影变换、计算等。无需用户在不同的数据格式之间解码转换,即可构建自动化的工作流。 打开 FME workbench 直接搜索 mosaic,然后选择 RasterMosaicker 转换器(只要是栅格镶嵌,如果记不到名字,进入软件直接搜 mosaic 就行,这些软件关于栅格镶嵌工具的名称基本都是这个)。添加一个读取器(黄色部分),读入 tif 文件,然后连接上左侧的 RasterMosaicker。添加一个输出转换器,设置输出地址和输出格式,输出栅格名称为 all_fme。点击上方 按钮,运行栅格镶嵌工作流,运行时间如下:
结论镶嵌结果4种软件工具最后镶嵌的成果基本一致,如下图,所以放上一张展示一哈:时间比较一个程序运行的时间是分为几部分了,有单纯的 CPU 计算工作的时间,也包括了各种系统调用的消耗。同时由于测试的数据量不大,测试结果不能100%代表这4个程序在运行大量级栅格时的表现。ArcGIS desktop 10.3 版本已经很老了,历史很长,为了维护整个系统的稳定一定也有了很重的历史包袱 。所以时间较长可以理解;Ersi 公司已经推陈出新,投入到了新一代的 ArcGIS pro,相信 ArcGIS pro 的速度不会让人失望。ENVI 在内部实现栅格镶嵌时的判定应该比较多吧,毕竟选项最多。可是20s的速度还是让我比较失望,可能 ENVI 在大量级数据处理上表现会好些吧;尽管如此,使用 ENVI 提取、分析、计算遥感影像的数据依然是非常热门的选择。QGIS,开源软件,没有 ArcGIS 的历史负担。前进势如破竹,其高性能表现让人惊讶。FME 作为商业软件,行业级别的协议和标准。同时深耕于数据领域,在这方面的速度当然不会让人失望。所以呢,综上所述,需要进行大批量的栅格镶嵌推荐使用 FME,毕竟是商业软件,稳定性不会太差。如果是好用免费的话推荐使用 QGIS。
结束语日新月异,希望大家不要再抱着 ArcGIS desktop 不放,如今当 ArcGIS 已经广泛应用于政府单位的时候,你更应该朝前看,去学习拥抱更新、更先进的东西。
|