推荐企业门户网站建设,财务公司协会,网站后台管理系统源码下载,学计算机月薪一般多少前言
最近在下载Landsat 8 地面反射率数据#xff08;Surface Reflectance#xff09;时#xff0c;遇到了一个问题#xff0c;无论是使用geemap.ee_export_image_to_drive() 函数还是geemap.download_ee_image() 函数下载的数据#xff0c;易康都打不开#xff0c;显示…前言
最近在下载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在下载前就可以实现数据类型的转换。下面将会介绍这两种方法。 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()后记
大家如果有问题需要交流或者有项目需要合作可以加Q Q 504156006详聊加好友请留言“CSDN”谢谢。