您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页海洋遥感与信息技术-实验

海洋遥感与信息技术-实验

来源:化拓教育网


《海洋遥感与信息技术》

—实验指导

编写:李灿苹

信息学院

班级: 姓名: 学号:

实验一 利用Matlab读取并显示遥感L3A数据

实验目的

1.了解遥感L3A产品数据;

2.运用MATLAB读取遥感L3A数据,并显示。

实验原理及内容

1. 遥感L3A产品 表:遥感产品级别的定义

产品级别 L0 L1A L1B L2或L2A L3A L3B L4A

卫星地面站接收的原始数据流 L0经过冗余信息去除后的数据,L1A只对SeaWiFS定义 L0经过冗余信息去除、地理定位和辐射定标后的数据 由L1B反演得到的地球物理要素信息数据 由L2A经地图投影和数据重采样得到的单轨遥感专题产品 具有固定时间周期的多轨L3A数据融合得到的遥感专题产品 在L3B数据基础上制作的地球物理要素场的等值线遥感专题图和海洋水文、动力信息遥感专题图 定义 2. MATLAB读取遥感L3A数据,并显示

以读取数据“MOA_200406180542_3A_CHL.DAT”为例: strFname = 'MOA_200406180542_3A_CHL.DAT'; if(isFile(strFname))

[flag,l3a] = ReadL3AHeader(strFname);

这里包含两个函数子程序,即isFile.m和ReadL3AHeader.m

isFile.m为文件名函数子程序;ReadL3AHeader.m为遥感数据头文件函数子程序。

读取遥感数据参考程序:

clear all; close all; clc;

2

% strFname = 'E:\\RSDATA\\L3A\\MOA_201103140607_3A_CHL.DAT';

strFname = 'MOA_200406180542_3A_CHL.DAT'; if(isFile(strFname))

[flag,l3a] = ReadL3AHeader(strFname); if flag==1

lat = linspace(l3a.Lat_max,l3a.Lat_min,l3a.Row); lon = linspace(l3a.Lon_min,l3a.Lon_max,l3a.Col);

fid = fopen(strFname,'r');

fseek(fid,1028,'bof'); %从1028位置开始读数据 data = fread(fid,l3a.Row*l3a.Col,'uint16'); fclose(fid);

data(data==0) = NaN; %将零数据置成非数,否则后面运算将出错 data = data*l3a.Slope+l3a.Offset;

%判断是否是叶绿素,如果是则要进行对数运算 if (l3a.Product(1:3)') == 'CHL' data = log10(data); end

data = reshape(data,l3a.Col,l3a.Row); %将源数据变成二维数据 data = data';

% 显示图像

imagesc(lon, lat, data); colorbar; axis xy; xlabel('经度'); ylabel('纬度'); end end

3

实验分析

观察程序运行结果,掌握、分析读取和显示遥感L3A数据的方法。

实验总结

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

实验二 利用Matlab裁剪遥感L3A指定区域数据并显示

实验目的

1.运用MATLAB读取遥感L3A数据;

2. 利用MATLAB剪裁遥感L3A指定区域数据,并显示。

实验原理及内容

1. MATLAB读取L3A数据

实验一中已有叙述,具体程序见实验一。

2. MATLAB剪裁遥感L3A指定区域数据,并显示

在实验一程序基础上,再增加以下程序:

if 循环外增加以下语句:

dz = [109 118 20 24 ]; %确定数据研究区域,即剪裁区域

if二重循环里添加以下程序:

%剪裁指定区域 dz = [109 118 20 24 ];

idx = find( ( lon>=dz(1) ) & ( lon<=dz(2) ) ); idy = find( ( lat>=dz(3) ) & ( lat<=dz(4) ) ); lon = lon(idx);

4

lat = lat(idy); data = data(idy,idx);

% 显示图像 figure(2);

imagesc(lon, lat, data); colorbar; axis xy; xlabel('经度'); ylabel('纬度');

完整程序如下:

clear all; close all; clc;

% strFname = 'E:\\RSDATA\\L3A\\MOA_201103140607_3A_CHL.DAT'; dz = [109 118 20 24 ]; %数据研究区域

strFname = 'MOA_200406180542_3A_CHL.DAT'; if(isFile(strFname))

[flag,l3a] = ReadL3AHeader(strFname); if flag==1

lat = linspace(l3a.Lat_max,l3a.Lat_min,l3a.Row); lon = linspace(l3a.Lon_min,l3a.Lon_max,l3a.Col);

fid = fopen(strFname,'r');

fseek(fid,1028,'bof'); %从1028位置开始读数据 data = fread(fid,l3a.Row*l3a.Col,'uint16'); fclose(fid);

data(data==0) = NaN; %将零数据置成非数,否则后面运算将出错 data = data*l3a.Slope+l3a.Offset;

%判断是否是叶绿素,如果是则要进行对数运算

5

if (l3a.Product(1:3)') == 'CHL' data = log10(data); end

data = reshape(data,l3a.Col,l3a.Row); %将源数据变成二维数据 data = data';

% 显示图像

figure(1);

imagesc(lon, lat, data); colorbar; axis xy; xlabel('经度'); ylabel('纬度');

%剪裁指定区域 dz = [109 118 20 24 ]; idx = find( ( lon>=dz(1) ) & ( lon<=dz(2) ) ); idy = find( ( lat>=dz(3) ) & ( lat<=dz(4) ) ); lon = lon(idx); lat = lat(idy); data = data(idy,idx);

% 显示图像 figure(2);

imagesc(lon, lat, data); colorbar; axis xy; xlabel('经度'); ylabel('纬度'); end end

实验分析

观察程序运行结果,掌握、分析读取和显示遥感L3A数据的方法。

实验总结

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

6

l3a =

Sat: [15x1 char] Product: [20x1 char] Unit: [15x1 char] Year: 2004 Day: 169 Hour: 5 Mini: 42 Lat_max: 42 Lat_min: 14 Lon_max: 130 Lon_min: 105 Project: [20x1 char] R_lat: 0.0100 R_lon: 0.0100 Row: 2800 Col: 2500 Slope: 0.0010 Offset: 0

spare: [910x1 char]

7

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务