欢迎光临散文网 会员登陆 & 注册

ICESat-2 ATL08 L3A version 4 HDF5 数据处理---matlab

2022-08-08 17:23 作者:我是水怪的哥  | 我要投稿

官网提供了的数据处理工具:https://hdfeos.org/zoo/index_openICESat2_Examples.php#ATL

%  This example code illustrates how to access and visualize

%  ICESat-2 ATL08 L3A version 4 HDF5 file in MATLAB. 

%  If you have any questions, suggestions, comments on this example, please 

% use the HDF-EOS Forum (http://hdfeos.org/forums). 

%  If you would like to see an  example of any other NASA HDF/HDF-EOS data 

% product that is not listed in the HDF-EOS Comprehensive Examples page 

% (http://hdfeos.org/zoo), feel free to contact us at eoshelp@hdfgroup.org or 

% post it at the HDF-EOS Forum (http://hdfeos.org/forums).

% Usage:save this script and run (without .m at the end)

%  $matlab -nosplash -nodesktop -r ATL08_20210114234518_03361001_004_01_h5

% Tested under: MATLAB R2019b

% Last updated: 2021-05-04

% Open the HDF5 File.

FILE_NAME = 'ATL08_20220404000407_01821501_005_01.h5';

file_id = H5F.open (FILE_NAME, 'H5F_ACC_RDONLY', 'H5P_DEFAULT');

% Open the datasets.

LATFIELD_NAME='gt1l/land_segments/latitude';

lat_id=H5D.open(file_id, LATFIELD_NAME);

LONFIELD_NAME='gt1l/land_segments/longitude';

lon_id=H5D.open(file_id, LONFIELD_NAME);

DATAFIELD_NAME='gt1l/land_segments/dem_h';

data_id=H5D.open(file_id, DATAFIELD_NAME);

% Read the datasets.

lat=H5D.read(lat_id,'H5T_NATIVE_DOUBLE', 'H5S_ALL', 'H5S_ALL',...

                'H5P_DEFAULT');

lon=H5D.read(lon_id,'H5T_NATIVE_DOUBLE', 'H5S_ALL', 'H5S_ALL', ...

             'H5P_DEFAULT');

data=H5D.read(data_id,'H5T_NATIVE_DOUBLE', 'H5S_ALL', 'H5S_ALL', ...

             'H5P_DEFAULT');

% Read the attributes.

ATTRIBUTE = 'units';

attr_id = H5A.open_name (data_id, ATTRIBUTE);

units_data = H5A.read(attr_id, 'H5ML_DEFAULT');

ATTRIBUTE = 'long_name';

attr_id = H5A.open_name (data_id, ATTRIBUTE);

long_name_data = H5A.read(attr_id, 'H5ML_DEFAULT');

% Read the fillvalue.

ATTRIBUTE = '_FillValue';

attr_id = H5A.open_name (data_id, ATTRIBUTE);

fillvalue = H5A.read (attr_id, 'H5T_NATIVE_DOUBLE');

% Close and release resources.

H5A.close (attr_id)

H5D.close (data_id);

H5D.close (lon_id);

H5D.close (lat_id);

H5F.close (file_id);

% Handle fill value.

data(data==fillvalue) = NaN;

% Create the graphics figure.

f = figure('Name', FILE_NAME, ...

           'Renderer', 'zbuffer', ...

           'Position', [0,0,800,600], ...

           'visible','off');

% Put title.

var_name = sprintf('%s', long_name_data);

tstring = {FILE_NAME; var_name};

title(tstring,...

      'Interpreter', 'none', 'FontSize', 16, ...

      'FontWeight','bold');

% Set the map parameters.

lon_c = mean(mean(lon));

lat_c = mean(mean(lat));

axesm ('ortho', 'Frame', 'on', 'Grid', 'on', ...

       'origin', [lat_c, lon_c])

mlabel('equator')

plabel(0); 

plabel('fontweight','bold')

%axesm('MapProjection','eqdcylin','Frame','on','Grid','on', ...

%      'MeridianLabel','on','ParallelLabel','on','MLabelParallel','south')

% Plot world map coast line.

scatterm(lat, lon, 3, data);

h = colorbar();

units_str = sprintf('%s', char(units_data));

set (get(h, 'title'), 'string', units_str, 'FontSize', 8, ...

                   'Interpreter', 'None', ...

                   'FontWeight','bold');

% Plot world map coast line.

coast = load('coast.mat');

plotm(coast.lat, coast.long, 'k');

tightmap;

saveas(f, [FILE_NAME '.m.png']);


ICESat-2 ATL08 L3A version 4 HDF5 数据处理---matlab的评论 (共 条)

分享到微博请遵守国家法律