利用ICESat数据提取湖泊的水位高程---以青海湖为例

ICESat(冰、云和陆地高程卫星)是NASA的一项卫星任务,用于测量冰盖 质量平衡、云和气溶胶高度,以及陆地地形和植被特征。ICESat 任务旨在提供确定冰盖质量平衡所需的高程数据以及云特性信息,特别是对于极地地区常见的平流层云。除了格陵兰岛和南极冰盖的极地特定覆盖范围外,它还提供全球地形和植被数据。该卫星被发现可用于评估重要的森林特征,包括树木密度【1】。我之前写过一个专栏,介绍了如何读取ICESat数据ICESat-2数据读取显示 - 哔哩哔哩 (bilibili.com)。此处所用 ICESat 数据是由美国冰雪数据中心(National Snow and Ice DataCenter, NSIDC)发布的全球陆地表面高程数据(Global Land Surface Altimetry Data, GLA14)。

在这里我简要减少如何利用ICESat数据提取湖泊的水位,这里仅以青海湖为例。
【1】下载数据。进入数据官网:https://openaltimetry.org/data/icesat/。进入以下页面

【2】选择青海湖的区域,并保存为csv文件。

【3】打开下载的文件,前五列分别为经度、纬度、高程、时间和轨道号。并保存至txt文件,利用matlab处理。

【4】数据读取的代码:
A = shaperead('qinghai.shp');
lon1 = A.X;
lat1 = A.Y;
plot(SD(1:302,2),SD(1:302,3))
box on
grid on
T = tabulate(SD(:,4));
in=inpolygon(SD(:,1),SD(:,2),lon1,lat1);
output_args=SD(in,:);
figure
hold on
line(lon1,lat1,'marker','.','markersize',1,'color','b');
scatter3(output_args(:,1),output_args(:,2),output_args(:,3),0.1,'r')
set(gca,'gridlinestyle',':','LineWidth',0.5,'GridAlpha',0.5)
box on
grid on
xlim([99.5 101]);
ylim([36.4 37.4]);
AX = tabulate(output_args(:,4))
% AX = output_args(:,4);
ind = find(AX(:,2)~=0);

参考文献
【1】https://en.wikipedia.org/wiki/ICESat(2022/8/8).