【发布时间】:2014-07-26 05:31:51
【问题描述】:
我从以下链接下载了一个数据文本文件:http://radon.unibas.ch/files/us_rn_50km.zip
解压缩后,我使用以下代码行绘制数据: # 加载库 库(字段)
# function to rotate a matrix (and transpose)
rotate <- function(x) t(apply(x, 2, rev))
# read data
data <- as.matrix(read.table("~/Downloads/us_rn_50km.txt", skip=6))
data[data<=0] <- NA
# rotate data
data <- rotate(data)
# plot data
mean.rn <- mean(data, na.rm=T)
image.plot(data, main=paste("Mean Rn emissions =", sprintf("%.3f", mean.rn)) )
这一切看起来都不错,但我希望能够在经纬度网格上绘制数据。我想我需要将此数组转换为 sp 类对象,但我不知道如何。我知道以下内容(来自网站):“用于投影纬度和经度坐标的投影是用于北美地质十年 (DNAG) 地图的投影。投影类型是球形横轴墨卡托,基本纬度为零度和参考经度为 100 度 W。使用的比例因子为 0.926,没有假东移或北移。经纬度基准面是 NAD27,xy 坐标的单位是米。使用的椭球是 Clarke 1866。地图的分辨率为 50x50km”。但不知道如何处理这些数据。我试过了:
proj4string(data)=CRS("+init=epsg:4267")
data.sp <- SpatialPoints(data, CRS("+proj=longlat+ellps=clrk66+datum=NAD27") )
但有各种问题(与 NA 的问题),基本上我认为数据格式不正确。我认为 SpatialPoints 函数需要位置数据(二维)和第三个值数组与这些位置相关联(x、y、z 数据 - 我想我的问题是从我的数据中计算出 x 和 y!)
非常感谢任何帮助!
谢谢, 亚历克斯
【问题讨论】:
标签: r maps geospatial projection