# ScriptPy **Repository Path**: MeteoTop/ScriptPy ## Basic Information - **Project Name**: ScriptPy - **Description**: 该仓库包含一些完整的python脚本,用于Linux系统以提高效率。这些脚本可以代替linux指令、ncl脚本或者实现一些实用的功能。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-08 - **Last Updated**: 2023-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, Linux ## README # ScriptPy 该仓库包含一些完整的python脚本,用于Linux系统以提高效率。这些脚本可以代替linux指令、ncl脚本或者实现一些实用的功能。 ## search.py ```python >>> python search.py 文件夹地址 查找的字符串 是否输出未查询的文件 是否区分大小写 指定查找的文件后缀 # 其中,五个参数中的位置不可变, 前两个参数为必选参数, # 后三个参数为可选参数 ``` 此脚本用于全目录查找某个字符串,并输出对应文件,以及目标字符串的行号。 ![search_1](./FigGallery/search_1.png) + 上图中标记的`1-5`即为参数顺序,1-2为必选参数,3-5为可选参数; ## WRF_Chem_getvars.py ```python >>> python WRF_Chem_getvars.py 数据存放地址 指定变量 输出数据存放地址 模拟时区 # 其中前三个参数是必选参数 # 后一个为可选参数 ``` 由于WRF-chem输出的结果没有`经纬度`及`时间`信息,并且对于长时间模拟,通常会输出多个文件,不利于随后的数据处理。本程序主要实现如下功能: + 原始数据格式: ![WRF_Chem_getvars_1](./FigGallery/WRF_Chem_getvars_1.png) + 重铸输出数据的维度信息,本程序主要完成经纬度和时间维度的重铸: ![WRF_Chem_getvars_2](./FigGallery/WRF_Chem_getvars_2.png) + 经纬度 + 依赖于wrf-python.xy_to_ll_proj函数,根据模式的中心经纬度、格距等信息,计算各个格点对应的经纬度信息,最终结果类似于wrfout的经纬度; + 在nc每个文件的`Attributes`中,必须具备如下参数,本脚本才能准确获取投影信息: | 参数名 | 含义 | | ------ | ----------------------------- | | P_ALP | 标准纬度1(Lambert投影:30°) | | P_BET | 标准纬度2(Lambert投影:60°) | | P_GAM | 模拟区域标准经度(同XCENT) | | XCENT | 模拟区域中心经度 | | YCENT | 模拟区域中心纬度度 | | NCOLS | 模拟区域x方向格点数 | | NROWS | 模拟区域y方向格点数 | | XCELL | 模拟区域x方向格距(m) | | YCELL | 模拟区域y方向格距(m) | + 时间 + 日期的识别依赖于各文件名,文件命名需以“年月日.nc”结尾(20230406.nc); + 并且根据输入的`模拟时区`参数来对时间维度进行修正,例:指定`模拟时区=东8`,则时间+8h,此脚本默认时区为:东8; ![WRF_Chem_getvars_4](./FigGallery/WRF_Chem_getvars_4.png) + 提取需要的变量信息,臭氧、PM2.5等,并将多个文件按时间维合并为1个nc; ![WRF_Chem_getvars_3](./FigGallery/WRF_Chem_getvars_3.png) + 合并后的结果: ![WRF_Chem_getvars_4](./FigGallery/WRF_Chem_getvars_4.png) ![WRF_Chem_getvars_5](./FigGallery/WRF_Chem_getvars_5.png)