ASTER产品数据 (AST_08) 几何校正

36 篇文章 44 订阅

前言

国内有关ASTER的博客等资料真的很少。因个人需求,用过这个数据的不少产品,分享一下校正的方法。
数据可从EarthData进行下载,需要注册账号。
在这里插入图片描述
这个数据的温度和发射率产品的分辨率可达90 m,但是回访周期特别长。几年可能也就几十幅数据。
官方有数据预处理工具HEG,安装后,不能正常运行,尝试了两台电脑都不行,所以放弃了。这里提供一种用gdal校正的思路。

AST_08 几何校正

AST_08是90 m分辨率的地表温度数据,乘以0.1可转换为开尔文单位。
由于是NASA的HDF数据,首先想到的是geoloc校正,即根据元数据里的地理位置信息自动校正。但是经过实验并不行。
经过产看文件格式,发现里面存放了具有11个像元间隔的经纬度信息。所以尝试使用添加Gcps,即控制点校正。

import gdal, osr
import numpy as np

file = r'E:\AST_08_00307242016030826_20210513075055_5224.hdf'

dataset = gdal.Open(file)
sub_dataset = dataset.GetSubDatasets()

def readSubdatasetAsArray(sub_dataset_name):
    return gdal.Open(sub_dataset_name).ReadAsArray()

lst_dataset = gdal.Open(sub_dataset[0][0]) # lst的子数据集对象

lats = readSubdatasetAsArray(sub_dataset[6][0])
lons = readSubdatasetAsArray(sub_dataset[7][0])

row = np.linspace(0, 700, 11, endpoint=True)
col = np.linspace(0, 830, 11, endpoint=True)
cols, rows = np.meshgrid(row, col)

gcps = [gdal.GCP(lons[row, col], lats[row, col], 0, rows[row, col], cols[row, col]) \
        for row in range(11) for col in range(11)]

srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
lst_dataset.SetGCPs(gcps, srs.ExportToWkt())

correctdata = gdal.Warp(r'E:\ast08_utm.tif',  
          				lst_dataset, dstSRS="EPSG:32649" , 
                        xRes=90, yRes=90, format='GTiff', tps=True)
del correctdata

我使用了EPSG代码指定了UTM 50N投影,有关各种投影的代码可以通过QGIS查询得到。
在这里插入图片描述
校正后影像,已和Landsat影像对比,校正的没有问题。
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值