栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ICESat-2 ALT13数据介绍与处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ICESat-2 ALT13数据介绍与处理

ICESat-2的全称是ICE,CLOUD,AND LAND ELEVATION SATELLITE-2

NASA于2018年9月发射,搭载激光载荷——先进地形激光测高系统(advanced topographic laser altimeter system,ATLAS),相较于上一代ICESat/GLAS有着更高的精度和更小的激光足印,测量能力大大提高。

其数据产品包括Level-1、Level-2、Level-3A、Level-3B共四级(具体情况看下图)

该图来自(曹彬才等,利用机载云点检核ICESat-2/ATLAS激光测高数据精度)

 本次要处理的是内陆水位高程,所以下载的是ALT13数据

数据从EARTHDATA SEARCH网站下载https://search.earthdata.nasa.gov/search 

右上角登录,左侧输入相应的筛选信息

 选择相应的卫星数据(V004的精度比V003要高,根据自己的需要进行下载)

 可以看到下载的都是H5格式文件

 这里我们可以使用HDFView进行查看,下载地址为

Download HDFView

使用HDFView打开ALT13数据可查看相关内容(路径不能有中文,否则会报错)

 随后使用anaconda软件对其数据进行预处理(需要安装geopandas)

安装步骤可看无敌小少年的相关文章

Anaconda Geopandas 小白安装指南 - 知乎 (zhihu.com)

最后输入相关代码对其进行处理,即可得到最后的成品(由于代码没有封装好,所以暂时就不上传了)

相应代码还可从下面的网站中获取

Examples (hdfeos.org)

下列是该网站对ALT13处理的示例代码

"""

This example code illustrates how to access and visualize an NSIDC 
ICESat-2 ATL13 L2 HDF5 file in Python.

If you have any questions, suggestions, or 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

   $python ATL13_20190330212241_00250301_002_01.h5.py

The HDF5 file must in your current working directory.

Tested under: Python 3.7.3 :: Anaconda custom (64-bit)
Last updated: 2020-01-21
"""

import os
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import basemap
import numpy as np

import h5py

FILE_NAME = 'ATL13_20190330212241_00250301_002_01.h5'
with h5py.File(FILE_NAME, mode='r') as f:

    latvar = f['/gt1l/segment_lat']
    latitude = latvar[:]
    
    lonvar = f['/gt1l/segment_lon']
    longitude = lonvar[:]
    
    dset_name = '/gt1l/segment_geoid'
    datavar = f[dset_name]
    data = datavar[:]
    units = datavar.attrs['units']
    long_name = datavar.attrs['long_name']
    _FillValue = datavar.attrs['_FillValue']

    # Handle FillValue
    data[data == _FillValue] = np.nan
    data = np.ma.masked_where(np.isnan(data), data)    

    # Draw an equidistant cylindrical projection using the low resolution
    # coastline database.
    m = basemap(projection='cyl', resolution='l',
                llcrnrlat=-90, urcrnrlat = 90,
                llcrnrlon=-180, urcrnrlon = 180)
    m.drawcoastlines(linewidth=0.5)
    m.drawparallels(np.arange(-90., 120., 30.))
    m.drawmeridians(np.arange(-180, 180., 45.))
    m.scatter(longitude, latitude, c=data, s=1, cmap=plt.cm.jet,
              edgecolors=None, linewidth=0)
    cb = m.colorbar(location='bottom')
    units = units.decode('ascii', 'replace')        
    cb.set_label(units)
    basename = os.path.basename(FILE_NAME)
    long_name = long_name.decode('ascii', 'replace')        
    plt.title('{0}n{1}n{2}'.format(basename, dset_name, long_name))
    
    fig = plt.gcf()    
    pngfile = "{0}.py.png".format(basename)
    fig.savefig(pngfile)

对其稍作修改 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号