看到这些卫星表面图像(@SegerYu),很是惊奇。于是学习如何获得该数据。
1、进入国家天文台https://moon.bao.ac.cn/ce5web/moonGisMap.search
注册账号——>获得图像资料
2、对文件进行解码(用Python打开嫦娥玉兔的科学数据 - 知乎,工作台 - Heywhale.com)
流程为:通过pds4_tools得到图像数据,通过demosaicing_CFA_Bayer_Menon2007对图像数据进行解码,通过线性拉伸将数据映射到显示器。
其中遇到的问题为exposure.rescale_intensity用法:
存在
这不正确!原因可能在于:数据的类型。于是:对数据进行定义
或者,对输出进行规定
3、显示效果
from pds4_tools import pds4_read
import matplotlib.pyplot as plt
import numpy as np
import cv2
import pandas as pd
from colour_demosaicing import (
demosaicing_CFA_Bayer_bilinear,
demosaicing_CFA_Bayer_Malvar2004,
demosaicing_CFA_Bayer_Menon2007,
mosaicing_CFA_Bayer)
import colour
from skimage import exposure
path = r'F:\lunar_ImageData\CE5-L_GRAS_PCAML-I-008_SCI_N_20201203054903_20201203054903_0004_A.2BL'
d = pds4_read(path, quiet=True)
fig, axes = plt.subplots(1,1,figsize=(10,10))
img = np.array(d[0].data)
img_t1=colour.cctf_encoding(demosaicing_CFA_Bayer_Menon2007(img,'RGGB'))
minvalue, maxvalue = np.percentile(img_t1, (1, 99))
img_t2= np.uint8(exposure.rescale_intensity(img_t1, in_range=(minvalue, maxvalue),out_range=(0, 255)))
cv2.namedWindow('img', 0)
cv2.imshow('img', img_t2)
cv2.waitKey(0)
cv2.destroyAllWindows()