공간 데이터에 문제가 있습니다. NetCDF 파일에서 온도 데이터를 추출해야합니다. 주어진 위도와 경도로이 온도를 다른 데이터 프레임에 포함 된 또 다른 위도와 경도와 연관시켜야합니다.두 좌표 간의 연관이 R
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
내가 지금 온도의 처음 단계에서 작업하기로 결정했습니다 : 이 내 변수를 추출하는 데 사용되는 코드입니다. 그래서 : 다른 데이터 프레임에
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) I 위도의 어떤 임의의 점을 가지고 :
> t1 <- as.vector(temp[,,1])
그러면 I 처음 단계에서 위도, 경도 및 온도를 포함하는 data.frame 만들어 나는 이전 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
나는 각 점 사이의 거리를 얻을 가장 낮은 하나를 얻을 생각,하지만 난 호 모른다 그것을 할 w. 다른 해결책이 있는지 확실하지 않습니다.
여러 가지 해결책이 있지만 투영 된 좌표 또는 평면 좌표가 있는지에 따라 다릅니다. 예상되는 것은 당신이 휴대 전화 나 GPS 장치 (당신이 가진 것으로 의심되는)에 도달하고 각도로 측정되는 것과 같은 것입니다. –
require (sp); ? spDistsN1 – mdsumner