【问题标题】:How to calculate seawater density in R如何计算R中的海水密度
【发布时间】:2020-09-11 07:01:40
【问题描述】:

我正在尝试使用此示例 https://cran.r-project.org/web/packages/gsw/vignettes/gsw.html 计算一个位置的海水密度。

我不断收到 NA,但我不知道为什么。是因为只有一个站点的纬度/经度吗?

 library(gsw)

 site <- cbind(125.5, -48.5)

 Depth = c(0, 2.4, 4.7, 7.1, 9.4, 11.8) 
 Time = c(0, 30, 60, 90, 120, 150)
 Temp = c(9.3668098449707, 9.35547698974609, 9.34461633682251, 9.33601398468018, 9.32814388275147, 9.32195755004883)
 Sal = c(34.2999114990234, 34.3229992675781, 34.3451250457764,34.35333984375, 34.3591761779785, 34.3610186767578)

 data <- cbind.data.frame(Depth, Time, Temp, Sal)


 data$Latitude <- site[1]
 data$Longitude <- site[2]

 SA <- gsw_SA_from_SP(SP = data$Sal,
                 p = data$Depth,
                 longitude = data$Longitude,
                 latitude = data$Latitude)

 CT <- gsw_CT_from_t(SA,data$Temp,data$Depth)
 data$rho <- gsw_rho(SA,CT,10.1325)-1000

对第一个值执行此操作会产生结果,但当我尝试对整个数据帧执行此操作时不会:

 (SA <- gsw_SA_from_SP(SP=34.2999114990234, p=0, longitude=125.5, latitude=-48.5))

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以试试:

    Columns = c("Sal","Depth")
    Results = apply(data[Columns],MARGIN = 1,function(x){
                                                         gsw_SA_from_SP(x[1],
                                                         x[2],
                                                         site[1],
                                                         site[2])
                                                        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-26
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多