MATLAB读取nc文件写成TIF文件arcgis统计错误 -不能正常显示统计信息,空值处理

27 篇文章 7 订阅
25 篇文章 11 订阅
问题描述:MATLAB读取nc文件很方便,然而arcgis或者ENVI等地理软件往往是GeoTif。本文在MATLAB读取nc文件并写成tif后发现能在arcgis中正常显示,黑色区域显示的为NoData,感觉一切正常。但是统计信息中的mean和stdeve显示是-1.int, 如下图所示:

有人说,既然arcgis显示没问题,那就行了呗。不然,如果统计信息有误,那么你在进行区域统计的时候就会统计不出来。


解决思路:
(1) 既然整个全球区域统计信息有误,那么我截取一区域是不是就有了统计信息呢?我尝试了几个区域,发现了问题。如果截取的区域有NoData值,那么统计的均值都是有误,而如果截取的区域没有NoData值那就可以正常显示。  于是模糊感觉到了,那就是问题出在了NoData的身上。 
(2) 既然如此,我在arcgis中通过栅格计算器的CON函数(CON(ISNULL(“layer”),8888,”layer”)),把空值赋值行不行。结果发现没有任何效果,空值还是空值,那我又有点明白了,那就是arcgis不认识这个NoData的东西啊。 我记得arcgis中识别NoData是-9999,但MATLAB中的Nan也会这么处理吗?莫非是由于MATLAB中的Nan和arcgis中的NoData处理方式不同所致?
(3) 那好,我在MATLAB中通过把Nan值赋值一个确定值。Data(isnan(Data))=-8888。然后再用arcgis看。惊奇的发现好了!统计信息中的均值和方差都有了!amazing!
(4) 由于我再MATLAB中强制nan值为-8888,我需要在arcgis中把这个值重新设置为null即可,这样arcgis就会识别他自己的NoData,统计信息也会存在。
最后,附上MATLAB读取并写成GeoTif的代码如下所示:

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值