我对空间数据有疑问。我需要从 NetCDF 文件中提取温度数据;然后我需要将给定纬度和经度的这个温度与包含在不同数据框中的另一组纬度和经度相关联。这是我用来提取变量的代码:
myfile <- nc_open(paste(wd, 'myfile.nc', sep=''))
timearr = ncvar_get(myfile, "time")
temp <- ncvar_get(myfile, 'temp_srf')
lat <- ncvar_get(myfile, 'lat_rho')
lon <- ncvar_get(myfile, 'lon_rho')
dim(temp)
[1] 27 75 52 # which means: 27 longitude * 75 latitudes * 52 time steps
我现在选择在温度的第一个时间步上工作。所以:
> t1 <- as.vector(temp[,,1])
然后我在第一步创建了一个包含 lat、lon 和 temperature 的 data.frame:
lat1 <- as.vector(lat)
lon1 <- as.vector(lon)
df1 <- as.data.frame(cbind(lon1, lat1, t1))
head(df1)
lon1 lat1 t1
1 18.15338 40.48656 13.96225
2 18.24083 40.55126 14.36726
3 18.32845 40.61589 14.53822
4 18.41627 40.68045 14.78643
5 18.50427 40.74495 14.88624
6 18.59246 40.80938 14.95925
在另一个数据框(df2)中,我有一些随机的纬度和经度点,我必须将其与前一个 data.frame 的最近纬度和经度相关联:
> df2 <- read.csv(paste(id, "myfile.csv", sep=""), header=TRUE, sep=",")
> head(df2)
LONs LATs
1 14.13189 43.41072
2 14.13342 43.34871
3 14.09980 43.40822
4 14.05338 43.72771
5 13.91311 43.88051
6 13.98500 43.91164
我在想获得每个点之间的距离并获得最低的距离,但我不知道该怎么做。不确定是否有其他解决方案。