这个问题来自一位读者的提问,小编的回答实际上也不太成熟,但作为一个技巧还是有必要记录一下的。

该读者的数据是两个相同精度的nc文件,其中一个文件包含的是属性数据,而它对应的经纬度信息是另一个文件的属性信息,要求是使用属性数据绘制专题地图时能够以经纬度作为坐标系。

在查了raster工具包的帮助文档后,小编没有找到如何往栅格数据中添加属性信息,以及如何将经纬度从属性信息转化为几何信息的方法。最后的解决方法如下:

首先,读取数据。

raster工具包的raster()函数可以读取nc格式的栅格数据,但在R语言中,有专门的工具包ncdf4可以用于读取nc数据。

导入nc数据的函数为nc_open()

nc_open(filename, write = FALSE,readunlim = TRUE, verbose = FALSE, auto_GMT = TRUE, suppress_dimvals = FALSE,return_on_error = FALSE )

从导入的nc数据中提取相应变量,使用的函数是ncvar_get()

ncvar_get(nc, varid = NA, start = NA,count = NA, verbose = FALSE,signedbyte = TRUE, collapse_degen = TRUE,raw_datavals = FALSE )

针对该读者提供的数据,代码如下:

library(ncdf4)
# 导入数据
nc <- nc_open("file_1.nc")
lonlat <- nc_open("file_2.nc")
# 提取属性
Var <- ncvar_get(nc, "Var")[,,1]
LAT <- ncvar_get(lonlat, "LAT")
LON <- ncvar_get(lonlat, "LON")
  • file_1.ncfile_2.nc分别代表两个文件;

  • 由于原始文件中有多个图层,Var变量是一个三维数组(前两维为空间,第三维为时间,一个时间点对应一个图层),这里使用[,,1]仅保留第一个图层的数据。

第二,将属性数据和经纬度整合到一个数据框中。

上步中,提取的变量VarLATLon都是和栅格单元等尺寸的数据框,使用c()函数可以将数据框按列转为向量,再将每个向量作为新数据框的一列,这样每行就表示一个栅格单元的属性数据及其对应的经纬度了。

data <- data.frame(var = c(Var),lat = c(LAT),lon = c(LON))

第三,将新生成的数据框转为sf格式的矢量数据。

这一点在sf工具包的系列推文中已有介绍。

data_sf <- st_as_sf(data, crs = 4326,coords = c(x = "lon", y = "lat"))
  • crs参数需根据实际情况设定。

至此,就把原先分离的属性信息和经纬度信息整合到同一个文件中,并把经纬度作为几何信息了。

这里得到的矢量信息实际上是点对象,如果生成的是网格对象的话就可以直接绘图了。

绘图时,如果需要进行空间裁剪,sf矢量数据使用的函数是st_filter(),栅格数据使用的是mask()crop()。具体可见以下相关推文:

  • sf | 空间矢量对象的属性连接方法

  • raster | R语言中的空间栅格对象及其基本处理方法(Ⅲ):切片/掩膜、图层叠加

技巧 | 栅格的属性数据和经纬度是分开的两个文件,怎么将它们整合到同一个文件上...相关推荐

  1. html文件怎么导出stl文件,各种3D建模软件导出STL文件的小技巧(一)

    很多用户在提交3D模型文件的时候,常常有这样的困惑:什么是STL 格式文件,怎么获取STL 格式文件呢?STL 格式文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式.它也是3D打印机在执 ...

  2. html文件用wps打开,wps文件如何打开?直接打开wps文件的操作技巧

    wps文件如何打开?wps office是金山开发的一款办公软件套装,它的文件格式和Microsoft office的格式是不一样的,如果你的电脑上没有安装wps办公软件,那么对于wps表格文件.et ...

  3. 计算机表格怎么同时选中分开的两项,excel怎么把三个单元格分成两个

    1. excel表 三个表格合并后怎么拆分成两个 1.首先我们鼠标点击选中要拆分的大单元格 2.然后鼠标右击它,在在弹出的选项点击[设置单元格格式] 3.接着我们点击窗口上端的[对齐] 4.现在我们把 ...

  4. iPhone 实用技巧 之 快速使用iTools安装ipa软件。本节简单介绍如何使用iTools安装在iPhone上安装ipa软件

    iPhone 实用技巧 之 快速使用iTools安装ipa软件.本节简单介绍如何使用iTools安装在iPhone上安装ipa软件,具体如下 目录 iPhone 实用技巧 之 快速使用iTools安装 ...

  5. 无法保存关闭文件 苹果电脑 显示正在保存_技巧精华第5期,带你了解DXF文件、Shift键、SHX形文件、工作空间...

    CAD技巧精华❺|原创:就说我在开发区 CAD这种工具软件最大的特点就是入门容易提高难,在使用过程中伴随着各种问题的出现,往往有"横看成岭侧成峰,远近高低各不同"的困惑. 实际上, ...

  6. 电脑手机wifi互传文件_手机之间怎么互传文件?几则小技巧了解下

    生活中或者工作中经常会涉及到传送文件,免不了需要通过手机来互传一些文件了,那么手机之间要怎么来实现互传文件呢?今天笔者就给大家分享四种实用却鲜为人知的文件互传小技巧,小本本记起来! 通过微信QQ互传 ...

  7. python文件操作实验总结,[干货分享]Python文件操作技巧总结

    引言 小伙伴们,今天给大家讲解一下python程序下的文件操作完整技巧梳理,都是笔者总结的干货.通过本文阅读,不仅可以带来生产力提升,也可以开发小脚本为生活带来乐趣.         首先不知道大家对 ...

  8. python读取文件夹下所有文件的名字_一键汇总同一文件夹下所有表格,三种小技巧分享给你...

    日常工作中我们经常会遇到多表合并的情况,手动粘贴复制过于麻烦,而且容易出错,今天分享三种汇总小技巧. 方法一 Windows批处理命令 如果需要汇总的表格是CSV格式(如下图所示,表格后缀为csv), ...

  9. python通过经纬度在地图标点_只要两步,用Python将地址标记在地图上!

    本文就将讲解,给你一个地址,如何用Python进行可视化,只需要两步:将地址转成经纬度 根据经纬度在地图上标记点 一.将地址转成经纬度 首先我们需要将地理位置转成经纬度这种统一格式,方便代码去识别.完 ...

最新文章

  1. 如何查看已安装的CentOS版本信息
  2. 为什么要使用 Service Mesh?
  3. 服务器性能指标(二)——CPU利用率分析及问题排查
  4. gan怎么输入一维数据_时空序列预测模型GAN+LSTM
  5. Mybatis中tinyint(1)数据自动转化为boolean处理
  6. java logging 格式化_java.util.logging.Logger使用详解 (转)
  7. linux samba教程,Linux samba的配置和使用
  8. Linux 环境下 gzip 的加解密命令
  9. CCNA-3-Cisco静态路由
  10. spring新注解说明
  11. Matlab学习小结
  12. 如何开发网页3D游戏
  13. 多协议充电桩平台系统小程序方案
  14. 通知与服务——服务Service——服务的绑定与解绑延迟绑定服务与解绑服务
  15. 维嘉科技IPO被终止:年营收8亿 邱四军控制61%股权
  16. 【产品笔记】2.互联网产品修炼
  17. 万字长文细说 Code Review 的正确姿势
  18. Java并发编程面试题(2022最新版)
  19. 【渝粤题库】陕西师范大学165106 冲突与沟通管理作业 (高起专)
  20. 3GPP TS 23501-g51 中英文对照 | 4.4.6 5G LAN-type Services

热门文章

  1. Java基础学习总结(152)——JDK 1.7和 JDK 1.8中HashMap的实现有什么不同?
  2. 消息中间件学习总结(10)——Kafka、RabbitMQ、RocketMQ消息中间件的消息发送性能对比
  3. linux7 vi 末行 快捷键,vi 常用操作快捷键
  4. hystrix 页面_《SpringCloud微服务之Hystrix组件》
  5. lisp的vla函数画矩形_利用Lisp做Tin三角网建模(源代码)
  6. IOError: cannot open resource
  7. C语言的声明的优先级规则
  8. HDFS基本原理及数据存取实战
  9. 《微信公众平台入门到精通》,青龙老贼,详情版本
  10. VS2008的C++TR1库已经支持正则表达式