Wednesday, June 15, 2016

Matlab+GDAL: Add NODATA Tag to Geotiff

Introduction

很多Geotiff文件本身的众多Tag没有包含对于Nodata的设定,这就导致日后的处理过程中不得不针对逐个文件再次定义Nodata,若将Geotiff文件转换为Arc/Grid文件,得到的输出文件是不存在NODATA_value这一设置的。
其实,Geotiff文件加上表示Nodata的Tag也很简单,利用GDAL的gdal_translate命令,演示代码:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
% Created by LI Xu
% Version 1.0
% June 15, 2016

% Description:
% Add Nodata Tag to TIFF files

% If you have any question about this code,
% please do not hesitate to contact me via E-mail: 
% jeremy456@163.com

% Blog:
% http://blog.sciencenet.cn/u/lixujeremy
% http://lixuworld.blogspot.com/

clear;
clc;

% Source Directory
SouDir='input';
% Destination Directory
DesDir='output';

% All Input Files
files=dir(fullfile(SouDir, '*.tif'));
% Nodata Value
nodata=-99;

% Loop
for ii=1:length(files)
    filename=files(ii).name;
    filepath=fullfile(SouDir, filename);
    otpath=fullfile(DesDir, filename);
    % GDAL Command
    strcmd='gdal_translate -of GTiff -a_nodata ';
    strcmd=[strcmd, num2str(nodata), ' ', filepath, ' ', otpath];
    system(strcmd);
    disp([num2str(ii), ': ', filename]);
end

disp('****************************************');
输出结果前后对比如Fig. 1,经上述代码加上指示Nodata的Tag之后就出现了NODATA_value这一配置,而且新输出文件在ArcMap中打开不需要再次配置就可以直接剔除背景区域,见Fig. 2。
Fig. 1
Fig. 2

References

No comments:

Post a Comment