空間データに問題があります。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])
次に、最初の時間ステップで緯度、経度、気温を含む 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
各ポイント間の距離を取得して、最も低いポイントを取得しようと考えていましたが、方法がわかりません。他の解決策があるかどうかはわかりません。