当前位置: 首页 > article >正文

MATLAB读取TIF文件,并可视化

在GIS领域,TIF文件则常用于存储地图、地形图等地理空间数据,TIF文件用于地理信息系统时,它通常包含地理坐标、投影信息等地理元数据,这些元数据使得图像能够与地理信息系统无缝集成,便于进行地理定位和分析。

1.读取TIF数据

clc
clear
close all
% 设置工作路径
folder = [pwd,'\huatu'];
files = dir(fullfile(folder, '*.tif'));
info = geotiffinfo(fullfile(files(1).folder, files(1).name));
data = [];
for i = 1:length(files)
    filename = fullfile(files(i).folder, files(i).name);
    [temp, R] = readgeoraster(filename);  % 读取栅格数据和空间参考
    if isempty(data)
        data = zeros([size(temp), length(files)]);
    end
    data(:,:,i) = temp;
end

2.数据处理及画图 

meanpre= mean(data, 3, 'omitnan');
meanpre(meanpre < -99)=NaN;
figure;
lat = linspace(info.SpatialRef.LatitudeLimits(1),info.SpatialRef.LatitudeLimits(2),144);
lon = linspace(info.SpatialRef.LongitudeLimits(1),info.SpatialRef.LongitudeLimits(2),256);
[mlat,mlon] = meshgrid(lat,lon);

m_proj('Equidistant Cylindrical','long',[70.0000 140.0000],'lat',[15.0008 55.0008]);
m_gshhs('fb2','color','b'); % 满分辨率河流,蓝色

h = m_pcolor(mlon,mlat,meanpre','linestyle','none');% 
title('中国区域降水量分布图');
m_grid('ytick',15:10:55,'xtick',70:10:140,'tickdir','out','linest','none','fontname','Times','fontsize',12,'linewidth',1.5);
colormap(flipud(slanCM('freeze')))
colorbar;
cbarrow;

运行结果如下:

3.绘制中国省界和国界

hold on
bordersl=shaperead('./bou2_4l.shp');% 读取中国国界数据
boux=[bordersl(:).X];
bouy=[bordersl(:).Y];
m_plot(boux,bouy,'k','linewidth',1);

运行结果如下:

4.完整程序

clc
clear
close all
folder = [pwd,'\huatu'];
files = dir(fullfile(folder, '*.tif'));
info = geotiffinfo(fullfile(files(1).folder, files(1).name));
data = [];
for i = 1:length(files)
    filename = fullfile(files(i).folder, files(i).name);
    [temp, R] = readgeoraster(filename);  % 读取栅格数据和空间参考
    if isempty(data)
        data = zeros([size(temp), length(files)]);
    end
    data(:,:,i) = temp;
end
meanpre= mean(data, 3, 'omitnan');
meanpre(meanpre < -99)=NaN;
figure;
lat = linspace(info.SpatialRef.LatitudeLimits(1),info.SpatialRef.LatitudeLimits(2),144);
lon = linspace(info.SpatialRef.LongitudeLimits(1),info.SpatialRef.LongitudeLimits(2),256);
[mlat,mlon] = meshgrid(lat,lon);

m_proj('Equidistant Cylindrical','long',[70.0000 140.0000],'lat',[15.0008 55.0008]);
m_gshhs('fb2','color','b'); % 满分辨率河流,蓝色
h = m_pcolor(mlon,mlat,meanpre','linestyle','none');% 
title('中国区域降水量分布图');
m_grid('ytick',15:10:55,'xtick',70:10:140,'tickdir','out','linest','none','fontname','Times','fontsize',12,'linewidth',1.5);
colormap(flipud(slanCM('freeze')))
colorbar;
cbarrow;
hold on
bordersl=shaperead('./bou2_4l.shp');% 读取中国国界数据
boux=[bordersl(:).X];
bouy=[bordersl(:).Y];
m_plot(boux,bouy,'k','linewidth',1);

http://www.kler.cn/a/325201.html

相关文章:

  • 解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题
  • 经验笔记:Git 基础操作指南
  • 几何合理的分片段感知的3D分子生成 FragGen - 评测
  • el-table中增加校验方法(二)
  • 前景理论(Prospect Theory)
  • 红外遥控信号解码
  • 基于SpringBoot+Vue+MySQL的美食点餐管理系统
  • 项目集成SpringSecurity框架
  • Python项目Flask框架整合Redis
  • 揭秘移动硬盘RAW:原因、恢复策略与预防措施
  • 【TS】TypeScript内置条件类型-ReturnType
  • Java五子棋
  • 召回11 地理位置召回、作者召回、缓存召回
  • Oracle 表空间时间点恢复
  • 【自动化测试】Appium Server如何安装和Appium Server安装困难的原因和解决方法以及常见的一些安装失败的错误和解决方法
  • 前端问题小结
  • 大模型,互联网玩家们的「角斗场」
  • 算法【Java】—— 位运算
  • python中logging的用法
  • python基础库
  • 铺铜修改后自动重铺
  • 第十一章 【前端】调用接口(11.1)——Vite 环境变量
  • Redis(初步认识和安装)
  • 智慧城市交通管理中的云端多车调度与控制
  • vue打包后的dist文件如何启动测试
  • Midjourney参数详解