geemap学习笔记049:下载Landsat数据时遇到的一个问题

前言

最近在下载Landsat 8 地面反射率数据(Surface Reflectance)时,遇到了一个问题,无论是使用geemap.ee_export_image_to_drive() 函数还是geemap.download_ee_image() 函数下载的数据,易康都打不开,显示Error loading image data: Layer 0 of file G: data.tif has an unsupported data type. G: data.tif,如下图。利用ENVI软件进行多次检查和对比,发现不是坐标系的问题,而是数据类型的问题,因为易康软件中不识别double数据类型,所以最开始是使用Python进行了数据类型转换,后来发现Earth Engine在下载前就可以实现数据类型的转换。下面将会介绍这两种方法。

image.png

1 Python实现数据类型的转换

# img是读取到的数据,将其缩放到0-1范围内
min_value = np.min(img)
max_value = np.max(img)
scaled_data = ((img - min_value) / (max_value - min_value))

# 将数据从0-1缩放到0-255范围并转为 uint8,并且交换数据的维度
uint_data = (scaled_data * 255).astype(np.uint8).transpose(2,0,1)

2 Earth Engine实现数据类型的转换

# Image.unitScale(low, high),会将输入的数据范围(low, high)转换到(0,1)之间
# Image.multiply(255) 将其拉伸为(0,255),此时数据类型为Float
# Image.toUint8() 是将数据转为非负整数,这样后面下载的数据就可以用ENVI打开了
img = img.unitScale(0, 0.3).multiply(255).toUint8()

后记

大家如果有地信遥感方面的问题需要请教或者有项目需要合作,可以在闲 鱼软件的用户中搜索:遥感GIS工作室,请认准头像,谢谢。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值