如何在R语言中读取REMSS的GMI海表温度二进制数据文件?
R语言读取REMSS海表温度二进制文件解决方案
你调用readBin的方式存在两处核心错误:一是直接传入文件路径字符串作为第一个参数,readBin要求传入二进制连接对象;二是size参数代表单个读取元素的字节长度,你填写的是总数据大小,不符合参数要求。
参考官方其他语言脚本的读取逻辑,R侧的实现代码如下:
# 定义文件路径 file_path <- "G:/forecast/gmi/f35_20210923v8.2_d3d" # 打开二进制只读连接 con <- file(file_path, open = "rb") # 按产品格式读取1440×720网格的2字节有符号整数,小端序 raw_data <- readBin(con, what = integer(), n = 1440 * 720, size = 2, endian = "little") # 关闭连接 close(con) # 转换为海温矩阵,处理缺测值,转换为摄氏度 sst_matrix <- matrix(raw_data, nrow = 720, ncol = 1440, byrow = TRUE) sst_matrix[sst_matrix == -32768] <- NA sst_matrix <- sst_matrix * 0.001 # 可选:翻转纬度顺序,适配常规绘图需求 sst_matrix <- sst_matrix[nrow(sst_matrix):1, ]
如果需要读取含多变量的REMSS产品,只需参照官方给出的变量存储顺序、各变量字节长度,调整readBin的n、size参数即可,整体读取逻辑与Matlab、Python等语言的官方脚本完全一致。
内容的提问来源于stack exchange,提问作者sudheera
相关产品推荐
相关产品推荐

