当前位置: 首页 > 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/news/325201.html

相关文章:

  • 基于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参数详解
  • 经纬仪应用前景
  • leetcode刷题day29|贪心算法Part03( 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列)
  • 建筑资质应该怎么选?
  • LeetCode 每日一题 2024/9/23-2024/9/29
  • Java项目实战II基于Java+Spring Boot+MySQL的网上摄影工作室(源码+数据库+文档)
  • Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动
  • 常见字符函数和字符串函数(上)
  • 在Linux中修改vm.max_map_count参数的步骤
  • InternVL 微调实践
  • C#里使用最简单的线程调用界面更新的方法