Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为美国的降水上升写一个循环

为美国的降水上升写一个循环
EN

Stack Overflow用户
提问于 2013-08-16 09:04:57
回答 2查看 458关注 0票数 1

我正在编写一个代码来计算美国不同地区的平均降水量。我的总数据具有Netcdf格式的300乘以120 (lon*lat)网格。我想用R写一个循环,取每10个网格的平均数,并将这个值(平均值)分配给区域内的所有网格,并在下一个区域重复这个值。最后,不是120×300个网格,而是12×30个网格。所以这是一种升级方法,我想应用到我的数据中。我可以单独对每个区域使用for -循环,但是它使我的代码非常庞大,我不想这样做。任何想法都将不胜感激。谢谢。这是我为一个地区(10乘10) lat*lon编写的函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
upscaling <- function(file, variable, start.time=1, count.time=1)
{
  library(ncdf)   # load ncdf library to manipulate ncdf data
  ncdata <- open.ncdf(file);      # open ncdf file
  lon  <- get.var.ncdf(ncdata, "lon");
  lat  <- get.var.ncdf(ncdata, "lat");
  time <- get.var.ncdf(ncdata, "time");
  start.lon <- 1
  end.lon   <- length(lon)
  start.lat <- 1
  end.lat   <- length(lat)
  count.lon <- end.lon - start.lon + 1;   # count number of longitude
  count.lat <- end.lat - start.lat + 1;   # count number of latitude
  dat <- get.var.ncdf(ncdata, variable, start=c(start.lon, start.lat, 1),               
                      count=c(count.lon, count.lat, 1))
  temp.data<- array(0,dim=c(10,10))
  for (i in 1:10)
  {
    for (j in 1:10)
    {
      temp.data <- mean(dat[i,j,])
    }
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-16 09:30:59

没有必要做一个混乱的循环来在空间上聚合你的数据。只需在光栅包中使用聚合函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(raster)
a=matrix(data=c(1:100),nrow=10,ncol=10)
a=raster(a)
ra  <-  aggregate(a,  fact=5,  fun=mean) #fact=5 will aggregate using a 5x5 window
ra=as.matrix(ra)
ra

现在,对于netcdf数据,使用光栅的rasterFromXYZ创建光栅,然后可以使用上面的方法进行聚合。奖励包括将投影定义为函数中的参数的选项,因此在结束时会有一个地理引用对象。这一点很重要,因为如果您没有聚合数据,那么您将不得不手工计算出如何对结果矩阵进行地理引用。

编辑:如果你想要一个与原始栅格尺寸相同的光栅,那么在聚合数据后立即将其分解。虽然这似乎是多余的,但这些光栅方法非常快速。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(raster)
a=matrix(data=c(1:100),nrow=10,ncol=10)
a=raster(a)
ra  <-  aggregate(a,  fact=5,  fun=mean) #fact=5 will aggregate using a 5x5 window
ra  <-  disaggregate(ra, fact=5)
ra=as.matrix(ra)
ra
票数 3
EN

Stack Overflow用户

发布于 2018-03-31 01:20:34

如果网格定义遵循标准netcdf约定,则可以使用CDO重新映射函数重新映射。对于一阶保守重映射,您可以尝试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cdo remapcon,grid_specification_here in.nc out.nc 

请注意,上面给出的答案是近似的,而且不完全正确,因为网格单元格大小与纬度的函数不相同。对于这个特定的任务,错误的大小可能很小,因为单元格大小很好,但是答案会稍微差一些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18278641

复制
相关文章
firebase怎么用_firebase是什么
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168361.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/20
4.2K0
firebase怎么用_firebase是什么
CDN刷新目录不生效?
选择 “刷新变更资源” 模式,当用户访问匹配目录下资源时,会回源获取资源的 Last-Modify 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,回源拉取资源并重新缓存;
任雯霄
2020/12/30
6.1K1
Vue 实现前进刷新,后退不刷新的效果
假设列表页为 list.vue,详情页为 detail.vue,这两个都是子组件。
谭光志
2020/09/28
3K0
vue 参数变化页面不刷新
查询参数变化,不刷新 http://localhost:8081/#/detail?id=1 http://localhost:8081/#/detail?id=2 参数变化,不刷新 http://
onety码生
2018/11/21
2.5K0
js – form表单提交不刷新
大家已经发现了, 当我们点击submit提交form表单的时候, 他会刷新一次, 如果不想它刷新的话有下面两种方法:
全栈程序员站长
2022/08/01
14.6K0
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
Laravel7使用Auth进行用户认证
Laravel7 的 laravel/ui 包提供了一种快速方法,可以使用一些简单的命令来支持你进行身份验证所需的所有路由和视图:
Lansonli
2021/10/09
5.8K0
vue强制刷新页面方法_vue页面回退不刷新
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
5K0
谷歌?新手不推荐 选它就对了
首先第一个好处就是可以登录账号,实现账号登录同步书签,添加书签方便多了,还能扩展组件。
江拥羡橙
2022/11/17
6330
谷歌?新手不推荐 选它就对了
将 Supabase 作为下一个后端服务
对于想快速实现一个产品而言,如果使用传统开发,又要兼顾前端开发,同时又要花费时间构建后端服务。然而有这么一个平台(Baas Backend as a service)后端即服务,能够让开发人员可以专注于前端开发,而无需花费大量时间和精力来构建和维护后端基础设施。
愧怍
2023/03/14
7.8K0
将 Supabase 作为下一个后端服务
nuxt+vue仿微信聊天界面|nuxt.js聊天室
nuxtjs是一个基于vue.js构建的服务端渲染框架。让你的网页也拥有SEO能力。只要是会vue,上手及非常简单了。
andy2018
2020/10/16
3.7K0
nuxt+vue仿微信聊天界面|nuxt.js聊天室
layui打开iframe窗口不刷新的问题
这个问题可能是我工作以来,最死磕不算bug的一个了,晚上熬夜到三点钟,终于找到了解决的办法。
王小婷
2019/04/29
4K0
layui打开iframe窗口不刷新的问题
在nuxt.js项目中对axios进行封装
不管是在服务端还是客户端获取数据都可以使用axios。在实际的开发过程中,每次请求中往往要携带一些自定义的参数或进行一些统一的处理,所以对axios进行封装是必不可少的。那么对于axios封装应该写在那个目录下呢?
用户3258338
2019/09/17
6.3K0
将 Supabase 作为下一个后端服务
对于想快速实现一个产品而言,如果使用传统开发,又要兼顾前端开发,同时又要花费时间构建后端服务。然而有这么一个平台(Baas Backend as a service)后端即服务,能够让开发人员可以专注于前端开发,而无需花费大量时间和精力来构建和维护后端基础设施。
愧怍
2023/02/24
4.7K0
将 Supabase 作为下一个后端服务
Firebase 如何创建登录 Token
Firebase 的 token 可以使用 firebase 命令行工具来进行创建。
HoneyMoose
2021/04/02
2.5K0
Firebase 如何创建登录 Token
JWT 的详细资源
1、laravel firebase/php-jwt token验证
八点半的Bruce、D
2023/02/28
2.9K0
JWT 的详细资源
WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围
WPF 的 VisualBrush 可以帮助我们在一个控件中显示另一个控件的外观。这是非常妙的功能。
walterlv
2023/10/22
4440
WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围
Vue 改变数据,页面不刷新的问题
最近在用 element-ui 开发一个网站,使用 table 组件时,发现修改完数据,有时候会延迟一两秒,页面才会发生变化。
谭光志
2020/09/28
3.4K0
点击加载更多

相似问题

如何持久化firebase-auth而不是使用Nuxt刷新?

220

Nuxt.js + nuxt-auth模块刷新jwt

314

Nuxt Auth函数不是反应性的,需要进行硬刷新。

12

Nuxt.js + Auth ( jwt刷新令牌)

25

刷新后FireBase auth签出

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文