详细内容或原文请订阅后点击阅览
有关映射 IGRA2 无线电探空仪数据的 R 编程技巧
使用 R 和 ggplot2 映射 IGRA2 数据。
来源:与此有关的是什么作者:安迪·梅
我们的上一篇文章是关于读取和绘制 IGRA2 气象气球无线电探空仪数据的。这篇文章展示了如何映射数据。 IGRA2 数据可以从这里下载(ftp 站点:ftp.ncei.noaa.gov/pub/data/igra)。一旦准备好数据,就需要一些进一步棘手的编程来映射它。这篇文章将介绍关键概念和所需的代码结构。编写完整的程序需要理解这些概念并使用 Grok。
计算可映射值
正如第一篇文章中提到的,IGRA2 数据量非常大,需要几个步骤来准备用于分析、绘图和绘图的数据。上一篇文章中描述了读取 IGRA2 数据的初始 R 程序,这里我们将展示如何映射它。图 1 显示了示例地图。
首先,由于目标是绘制 IGRA2 数据,我们需要按探空仪上升对数据进行分组,然后按站点汇总详细数据。 “ckdate”是一个结合了年、月、日和小时的计算参数。每次无线电探空仪上升都是独一无二的。以下代码使用 data.table 包语法创建一个名为“ascent”的 data.table。该代码来自 R 程序“station_analysis_no_plots.r”(2025 年 5 月b)。它根据 ckdate 中的值对“station”的内容进行分组。然后,它将指定的“station”列(id、lat、...)复制到“ascent”中。station 中的其余列不会被复制。要复制的电台列列表之前的句点“.”仅表示“列表”。
# 将文件读取为data.table
站 <- readRDS(fname)# 计算小数月份station[, dec_month := (年 - 1990) * 12 + (月 - 1) + 天 / 30.4375 + 小时 / 730.5]# 按上升分组(唯一的 dec_month)上升 <- station[, .(dec_month = unique(dec_month)), by = dec_month]# 处理每次上升ckdate <- ascents$dec_month[1]for (ckdate in ascents$dec_month) {# 提取上升数据上升 <- station[dec_month == ckdate, .(id, lat, long, Month, Year, hPa, temp, mol_den, gph, rh, wdir, wspd, q_gkg)]
