tif文件一般自带了经纬度信息,因此可直接从tif文件中获取各格点的经纬度。
info = geotiffinfo('POP\tpop1990.tif');
pop1990 = imread('POP\tpop1990.tif');
imshow('POP\tpop1990.tif')
% 获取各格点经纬度
for i = 1 : size(pop1990,1)
for j = 1 : size(pop1990,2)
[x,y] = pix2map(info.RefMatrix, i, j);
[lat(i,j),lon(i,j)] = projinv(info, x,y);
end
end
由于有时候经纬度网格密集,计算量大,因此,可通过并行计算加快获取速度:
info = geotiffinfo('POP\tpop1990.tif');
pop1990 = imread('POP\tpop1990.tif');
imshow('POP\tpop1990.tif')
% 并行计算获取各格点经纬度
lat = zeros(size(pop1990,1),size(pop1990,2));
lon = zeros(size(pop1990,1),size(pop1990,2));
parfor i = 1 : size(pop1990,1)
vlat = zeros(1, size(pop1990,2));
vlon = zeros(1, size(pop1990,2));
for j = 1 : size(pop1990,2)
[x,y] = pix2map(info.RefMatrix, i, j);
[vlat(j),vlon(j)] = projinv(info, x,y);
end
lat(i,:) = vlat;
lon(i,:) = vlon;
end