ICESat-2 ATL08 L3A version 4 HDF5 數(shù)據(jù)處理---matlab
官網(wǎng)提供了的數(shù)據(jù)處理工具: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']);
