使用正确的网格在 R 中绘制 netcdf

2023-12-02

我的目标是在世界地图上绘制硝酸盐 (no3) 数据,使用这些数据的正确经度和纬度。

有两个 netcdf 文件:
1. 与数据
2. 与网格信息

数据摘要信息: no3 是长度为 x*y*sigma 的数组 no3_df 是 'x*y 观测值。 3 个变量' x = 整数 [180] y = 整数 [193] 西格玛 = 数组[53]

我想查看 sigma(“深度”)20。因此,我执行了以下操作:

# Load the needed libraries to handle netcdf files
library(ncdf)
library(akima)

# Open data and grid files
file1 <- open.ncdf(file.choose())
grid  <- open.ncdf(file.choose())

# Read relevant variables/parameters from data file1
x <- get.var.ncdf(file1,varid="x")
y <- get.var.ncdf(file1,varid="y")
sigma <- get.var.ncdf(file1,varid="sigma")
no3 <- get.var.ncdf(file1,varid="no3")
sigma_plot <- no3[,,sigma=20]

# Read relevant variables/parameters from grid file
plon <- get.var.ncdf(grid,varid="plon")
plat <- get.var.ncdf(grid,varid="plat")

# Each cell of sigma_plot corresponds to one cell of plon and plat.
A <- array(c(plon,plat,sigma_plot),dim=c(180,193,3))

# Now B is an array containing for each row: (longitude, latitude, value).
B <- apply(A, 3, cbind)

# But it is not a regular grid, so interpolate to a regular grid. akima library
C <- interp(B[,1],B[,2],B[,3], 
            xo=seq(-180,180,1),yo=seq(-90,90,by=1), # tweak here the resolution
            duplicate='mean') # extra y values are duplicates

#########
# PLOTTING
#########

# This one works, but doesn't have a correct longitude and latitude:
filled.contour(x,y,sigma_plot, col=rich.colors(18))

# Try to plot with lon and lat
filled.contour(C, col=rich.colors(30))

由于 fill.contour 图没有正确的经度和纬度,我想使用 ggplot。但是,我不知道该怎么做......

# And the plotting with ggplot
ggplot(aes(x=plon_datafrm,y=plat_datafrm),data=no3_df) +
  geom_raster() +
  coord_equal() +
  scale_fill_gradient()

这似乎不起作用。我对 ggplot 很感兴趣,所以这可能就是原因,我真的很感激任何帮助。


library(ncdf)
data <- open.ncdf(file1)
no3 <- get.var.ncdf(data,varid="no3")
sigma_plot <- no3[,,20]
grid <- open.ncdf(file2)
plon <- get.var.ncdf(grid,varid="plon")
plat <- get.var.ncdf(grid,varid="plat")

与我之前的理解相反,sigma_plot 的每个单元格对应于 plon 和 plat 的一个单元格。

A <- array(c(plon,plat,a),dim=c(180,193,3))
B <- apply(A, 3, cbind)

现在 B 是一个数组,每行包含:(经度、纬度、值)。但它不是规则网格,因此需要对规则网格进行插值。最简单的方法是使用interp从包装中akima:

library(akima)
C <- interp(B[,1],B[,2],B[,3], 
            xo=seq(-180,180,1),yo=seq(-90,90,by=1), #you can tweak here the resolution
            duplicate='mean') #for some reasons some entries are duplicates, i don t know how you want to handle it.

image(C) #for instance, or filled.contour if you prefer
library(maptools)
data(wrld_simpl)
plot(wrld_simpl, add=TRUE, col="white") #To add a simple world map on top
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正确的网格在 R 中绘制 netcdf 的相关文章

  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 在 Rcpp 中使用其他包中的 C 函数

    我试图从 C 函数中的 cubature 包调用 C 例程来执行多维积分 我试图重现的基本 R 示例是 library cubature integrand lt function x sin x adaptIntegrate integr
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • 如何在将两根柱子保持在一起的同时熔化柱子?

    我有这种宽格式的数据 我想将其转换为长格式 Cond Construct Line Plant Tube shoot weight shoot Tube root weight root 1 Standard NA NA 2 199 95
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 条件字体颜色 R Markdown

    我无法找到一种方法来根据变量的值 gt 0 0 或 r setup include FALSE x lt 4 This is an R Markdown document r if x gt 0 textcolor red Markdown
  • 使用 template.docx 从 Shiny App 编织 Word 文档

    我正在尝试使用 template docx 文件从闪亮的应用程序编写一个 Word 文档 我收到以下错误消息 pandoc exe template docx openBinaryFile 不存在 没有这样的文件或目录 以下 3 个文件当前
  • 任意列中包含字符串的子集行

    我有一个如下所示的数据集 Col1 Col2 Col3 abckel NA 7 jdmelw njabc NA 8 jdken jdne 如何对数据集进行子集化 使其仅保留包含字符串 abc 的行 最终预期输出 Col1 Col2 Col3
  • 如何绘制具有显着性水平的箱线图?

    前段时间问了一个关于绘制箱线图的问题Link1 https stackoverflow com questions 14604439 plot multiple boxplot in one graph 我有一些包含 3 个不同组 或标签
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对

随机推荐

  • 将回调作为 upload_to 传递给 FileField

    我有一个抽象模型类 UploadItem 用于处理上传的文件 我希望每个子类都能够定义 upload to 路径 为此 我将回调传递给 FileField 的构造函数 这是一个例子 class UploadItem models Model
  • JavaFX:线程“JavaFX 应用程序线程”java.lang.RuntimeException 中的异常:java.lang.reflect.InitationTargetException

    我正在开发 JavaFX 项目 遇到这样的错误 Logout Exception in thread JavaFX Application Thread java lang RuntimeException java lang reflec
  • emberjs - 如何使用路由器基础设施标记活动菜单项

    我正在尝试创建导航选项卡 取自推特引导程序 ul class nav nav tabs li class active a href Home a li li a href Profile a li li a href Messages a
  • 如何在弹性布局中拥有固定元素(如 float: right)?

    I have a flex layout with elements in it I want one of them to always stick in the top right corner When I put it out of
  • LessCSS - 带变量和减亮的 IE 渐变过滤器

    我需要在 Less CSS 中使用带有变量和变亮的 IE 渐变过滤器 这可能吗 whatever filter progid DXImageTransform Microsoft gradient startColorstr lighten
  • 哈希表中的通用列表

    我可以将数组定义为这样的通用列表 array Collections Generic List String 我可以将哈希表中的元素定义为这样的数组 hash array 但我无法将哈希表中的元素定义为通用列表 如下所示 hash arra
  • Fabricjs 1.6.3:为什么活动对象总是显示在顶部

    我的问题的良好演示 http fabricjs com hovering如果您选择任何项目 它将显示在顶部 在早期版本 1 5 0 1 6 2 中不存在此问题 抱歉英语不好 如果你不想要这种行为 你可以设置保留对象堆叠为真 检查此处的文档
  • 使用 Android Gradle 更改版本代码

    我正在尝试在我的版本中自动增加 versionCodebuild gradle 但这不起作用 然后我尝试简单地覆盖 versionCode 例如versionCode 20但它仍然没有更新 都检查过原件AndroidManifest xml
  • 指向接口/重载过程的过程指针

    我使用过程重载和接口来在 Fortran 程序中实现某种通用性 为此 我有一个包含许多过程的模块 所有过程都是重复的 以便能够更改变量类型 我还在模块的开头提供了一系列以下类型的接口 interface norm module proced
  • Geodjango 的 Beanstalk 迁移失败

    我想在 aws beanstalk 中部署 geodjango 我已经尝试过这个解决方案 以前有用过 commands 01 yum update command sudo yum y update 02 epel repo command
  • 当向视图控制器添加展开函数时,链接器命令失败,退出代码为 1

    我正在使用 Storyboard 开发一款 iPad 应用程序 在我的应用程序中 我有一个弹出窗口和一个视图控制器 如果我添加一个像这样的函数 IBAction unwindCouponPaymentToOrderdetailsView U
  • python 中的复制构造函数?

    python中有复制构造函数吗 如果不是 我会做什么来实现类似的目标 情况是 我正在使用一个库 并且我已经用额外的功能扩展了其中一个类 并且我希望能够将从库中获取的对象转换为我自己的类的实例 我想你想要复制模块 import copy x
  • 如何将词云放入grob中?

    我创建了一个简单的词云 require wordcloud words lt c affectionate ambitious anxious articulate artistic caring contented creative cy
  • 使用 BeautifulSoup 的 Python 进行网页抓取 429 错误

    首先 我不得不说我对使用 Python 进行 Web 抓取还很陌生 我正在尝试使用这些代码行来抓取数据 import requests from bs4 import BeautifulSoup baseurl https name of
  • Angular 2路由到同一路由

    I have Ride组件 并在骑行结束时Ride Summary显示 右侧的摘要有一个 开始另一次骑行 按钮 该按钮会重定向到同一组件 Ride routerLink Ride 自从Ride组件已经是我所在的组件 它没有刷新并且Ride
  • 使用 C 结构成员的连续内存

    在将其标记为重复之前 请先阅读问题 所以这可能是一个潜在的非常愚蠢的问题 但它困扰着我 我从阅读以及许多其他问题中知道 由于编译器添加的填充 C 结构中的字段不能保证是连续的 例如 根据C标准 13 在结构体对象中 非位域成员和位域所在的单
  • Javascript 在重新加载或重定向之前删除 cookie

    我需要删除一个cookie并且then进行重定向 然而 在处理重定向之前 cookie 不会被删除 问题是 如果执行重定向时 cookie 仍然存在 则重定向会被拦截并发送到预期页面以外的页面 很奇怪 我知道 说来话长 是否有可能欺骗浏览器
  • 如何使用其他Facebook帐户登录?

    我关注了本教程制作一个小应用程序来登录并打招呼 用户名 问题是 我只能使用我的帐户登录 但无法使用其他帐户登录 此问题发生在一些需要登录的示例代码 例如 HelloFacebookSample 或 Scrumptious 中 Logcat
  • 如何在Python中合并2列

    假设我使用 numpy 定义了一个 2x2 矩阵 array 1 2 2 3 现在另一个 2x1 矩阵 array 3 4 如何按列连接这两个矩阵 使其变为 array 1 2 3 2 3 4 我怎样才能删除指定列 这样它就会变成 arra
  • 使用正确的网格在 R 中绘制 netcdf

    我的目标是在世界地图上绘制硝酸盐 no3 数据 使用这些数据的正确经度和纬度 有两个 netcdf 文件 1 与数据 2 与网格信息 数据摘要信息 no3 是长度为 x y sigma 的数组 no3 df 是 x y 观测值 3 个变量