做遥感这行十一年了,最怕的就是数据格式转换那一步。这篇文不整虚的,直接告诉你怎么把ENVI导出的数据顺顺当当弄进ArcGIS里,不报错、不黑屏,解决你半夜加班时的崩溃瞬间。
记得前年接了个急活,客户要的是ArcGIS能直接读的数据,我这边ENVI处理完,保存的时候选GeoTIFF,结果导过去坐标全乱套,或者属性表直接丢失。那晚我在办公室熬到凌晨三点,烟抽了一包,头都大了。其实很多新手(包括当年的我)都踩过这个坑,以为换个后缀名就行,那是大错特错。
咱们干这行的都知道,ENVI和ArcGIS虽然都是搞地理信息的,但底层逻辑有点不一样。特别是那个“保存为ArcGIS Geo...”的操作,很多人点完没反应,或者导出来全是噪点。今天我就把这事儿掰开揉碎了说,咱们不扯那些高大上的理论,就聊实操。
首先,你得确认你的数据是栅格还是矢量。如果是栅格,别直接存成普通的TIFF。在ENVI里,点击File -> Save As -> Save Image As... 这时候弹出的窗口里,格式选GeoTIFF。注意啊,这里有个坑,很多兄弟直接点确定,结果发现ArcGIS打不开或者投影不对。
这时候,你得点那个Options按钮。把“Save World File”勾选上,这玩意儿就是坐标文件,没它ArcGIS不知道你的图在哪。还有,别用默认的压缩,有时候压缩算法会导致ArcGIS识别错误,选Uncompressed最稳妥,虽然文件大点,但稳妥。
要是遇到矢量数据,那就更麻烦点。ENVI对矢量支持本来就弱,你得先转成Shapefile。在ENVI主界面,点击Vector -> Convert -> Vector to Shapefile。这里有个细节,很多老鸟容易忽略,就是坐标系。一定要确保你的源数据和目标Shapefile的坐标系一致。要是懒得转,直接在ArcGIS里用“Project”工具转一下也行,但最好还是在ENVI里搞定,省得后面麻烦。
我有个习惯,每次导完数据,都会用ArcGIS打开看一眼。不是看内容,是看属性表。有时候ENVI导出的属性表字段名太长,或者有特殊字符,ArcGIS会报错。这时候你得在ENVI里提前把字段名改短点,改成英文字母加数字,别整那些花里胡哨的中文或符号。
还有啊,别信网上那些说要用第三方插件的。大部分时候,就是设置没搞对。比如那个“Save As”里的“Data Type”,要是你的数据是浮点型,别存成整型,否则精度全丢了。我之前就干过这蠢事,导出来的DEM数据,高程值全变整数,被项目经理骂得狗血淋头。
再分享个土办法。要是实在搞不定,直接在ENVI里把数据转成ASCII格式,然后用ArcGIS的“ASCII to Raster”工具导入。这招虽然慢点,但绝对稳。特别是处理那种特别大的数据,有时候直接转格式会内存溢出,分块处理或者转ASCII反而能救急。
总之,envi保存为arcgis geo格式这事儿,核心就俩字:细节。坐标、属性、格式、压缩,每一个环节都不能马虎。别嫌麻烦,多检查一遍,能省你后面几天的调试时间。
咱们做技术的,就得有点耐心。别指望一键解决所有问题,那都是骗人的。多试几次,多看看报错信息,总能找到门道。希望这篇文能帮到你,要是还有啥问题,评论区留言,咱们一起折腾。毕竟,这行干久了,谁还没个踩坑的时候呢?
最后提醒一句,导完数据记得备份原文件。别等改坏了,找都找不回来,那才叫真崩溃。好了,不多说了,我得去赶下一个项目了。祝大家好运,数据不报错,项目不延期。