# GRAS数据处理 **Repository Path**: shujianyang/gras-data-processing ## Basic Information - **Project Name**: GRAS数据处理 - **Description**: 用于对中国月球与行星探测工程地面应用系统,即“月球与行星数据发布系统”网站(https://clpds.bao.ac.cn/web)所发布的数据进行处理的各类代码脚本。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 5 - **Created**: 2023-04-30 - **Last Updated**: 2025-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GRAS数据处理 ## 介绍 用于对中国月球与行星探测工程地面应用系统(GRAS),即“月球与行星数据发布系统”网站([https://clpds.bao.ac.cn](https://clpds.bao.ac.cn))所发布的数据进行处理的各类代码脚本。 ## 软件架构 采用Python 3.11版本,使用基本命令行即可运作,尽量减少对IDE或其它框架的依赖,对编程没有太深入了解的人也能尝试。 ## 安装教程 1. 安装Python 3.11版本。 2. 依次使用命令`pip install [包名称]`安装以下包: * pds4-tools * Pillow * scikit-image * colour-science * matplotlib * colour-demosaicing * tqdm 3. 下载或Git克隆本代码仓库至任意允许Python运行的位置。 ## 使用说明 ### 适用范围 截至目前,本仓库代码主要用于将来自于GRAS的原始数据转换为普通格式图片输出,主要数据来源包括嫦娥三号着陆器、玉兔一号月球车、嫦娥四号着陆器、玉兔二号月球车、嫦娥五号着陆器、祝融号火星车、天问一号中分辨率相机。 通过GRAS网站,用户可自行下载相应PDS4格式数据及标签文件至本地,其中数据文件后缀通常为.2A、.2B和.2C,相应的标签文件则为.2AL、.2BL和.2CL。一般来说,数据的解析与输出需要对应的标签文件存在,但是在特殊情况下,可以在缺失原始标签文件的情况下通过补足数据完成部分输出(见下)。 另外注意不同载荷所需要的文件数不定,如天问一号中分辨率相机的每份数据由三个文件组成,其中两个后缀为.2C,一个后缀为.2CL,而两个后缀为.2C的文件中,一个文件名中段标识为"_GEO_",一个为"_SCI_"。正常情况下,需要三个文件同时存在才能正常解析数据。但如果使用下面介绍的“标签文件生成”方法,则可在仅下载带"_SCI_"标识的.2C文件的情况下生成图片。 ### 标签文件生成(可选) 之前由于未知原因,GRAS网站未能提供部分标签文件的下载(该问题已经修复)。如遇到标签文件缺失的情况,可以暂时通过CreateLabelFile.py脚本,根据模板标签文件生成临时标签文件的方法实现对部分数据的解析。除此之外,该方法还可以在仅包括图像数据2C文件的情况下生成基本图片,也就是可以跳过标签文件的下载,降低下载所需要的工作量。 目前此方法支持的部分科学载荷为祝融号火星车的导航地形相机(NaTeCam)、多光谱相机(MSCam)和天问一号中分辨率相机(MoRIC),三者所对应的模板标签文件放置于本仓库的.\template文件夹下。 **用法** ``` python .\src\CreateLabelFile.py -i input_dir -t template_file ``` **选项说明** `-i`(必选) 为数据文件所在文件夹路径。 `-t`(必选) 为模板标签文件路径。 现假设.\TW1文件夹中有名为HX1-Ro_GRAS_NaTeCamB-sample.2C的数据文件,示例运行如下: ``` python .\src\CreateLabelFile.py -i .\TW1\ -t .\template\template-NaTeCam.2CL ``` 脚本运行后会在目标文件夹中生成名为HX1-Ro_GRAS_NaTeCamB-sample-temp.2CL的临时标签文件。若该文件夹已存在标准名称的标签文件,则脚本不会有所动作。 使用者可对同一文件夹先后使用不同的模板标签文件进行临时标签生成,脚本会自动检查数据文件类型来决定是否采用该模板标签文件。 多光谱相机(MSCam)存在两种不同的数据格式,其数据文件大小分别为128KB和8192KB,两种格式分别对应不同名字的模板。 **注意生成的临时标签文件不保证能完全正常工作。如要获取除图像外最全面的数据,请尽量使用官方提供的标签文件。** ### 图像输出 此脚本可在图像数据及有效标签文件均存在的情况下将图像输出为普通图像格式。 **用法** ``` python .\src\ExportImage.py -i input_dir [-o output_dir] [-f format] [--no-debayer] [--no-stretch] ``` **选项说明** `-i`(必选) 为数据文件及对应标签文件所在文件夹,可包括多种不同类型数据混搭,脚本会自动判断决定图像生成方式。 `-o`(可选) 输出图像的目标文件夹,若为空则输出至`-i`选项的同一文件夹内。 `-f`(可选) 输出图像的格式,可选择jpg或png,若不指定则默认选择jpg格式。 `--no-debayer`(可选) 默认情况下,脚本会对2B级别的彩色照片进行色彩还原处理(debayer),启用此选项会跳过这一步。另外对于全色黑白照片,脚本会自动跳过此步骤,不必特意开启。 `--no-stretch`(可选)默认情况下,脚本会对2B级别的图像进行2%线性拉伸以获得更好的对比度,启用此选项会跳过这一步骤按照原始亮度数据生成图片。 ### 根据时间戳修改文件名(可选) 默认情况下,数据文件以及生成的相应输出图像的文件名按字典方法排序的结果与拍摄时间的先后顺序无关,给按时间顺序排列图片造成困难。此脚本可读取图像文件名中的时间戳并作为前缀添加至原文件名之前,方便对文件进行拍摄时间排序。 **用法** ``` python .\src\RenameImageByTime.py -i input_dir ``` **选项说明** `-i`(必选) 为图像文件所在文件夹路径。只有扩展名为.jpg或.png的文件会被修改。 比如现有文件 ``` HX1-Ro_GRAS_NaTeCamB-F-004_SCI_N_20210705045826_20210705045826_00051_A.jpg ``` 在对其所在文件夹运行此脚本后,其文件名会变为 ``` 20210705045826_HX1-Ro_GRAS_NaTeCamB-F-004_SCI_N_20210705045826_20210705045826_00051_A.jpg ``` ## 参考项目 此项目参考了[Siyu Zhang](http://siyu.china-vo.org/)的项目【[用Python打开嫦娥玉兔的科学数据](http://siyu.china-vo.org/2020/02/11/MakingOfCE4Image/?continueFlag=55e456ec3bc9bcf0d27e8ecc80f8e10d)】并借用了部分代码,特此感谢。 Github: [ChangE_4_data_playground](https://github.com/siyu6974/ChangE_4_data_playground) ## 联系作者 作者微博:空间栈