関数名: gravity_by_latitude
緯度から重力加速度を求めるR関数です。
1980年国際重力式(IGF80, GRS80楕円体に基づく標準重力式)を使用しています。
Rコード
# 緯度(度)を入力すると標準重力加速度(m/s^2)を返す関数
# 1980年国際重力式(International Gravity Formula 1980)に基づく
gravity_by_latitude <- function(lat_deg) {
phi <- lat_deg * pi / 180 # 度 → ラジアン変換
g <- 9.780327 * (1 + 0.0053024 * sin(phi)^2 - 0.0000058 * sin(2 * phi)^2)
return(g)
}
# --- サンプル計算 ---
# 札幌市: 北緯 43.0621度
# 那覇市: 北緯 26.2124度
sapporo_lat <- 43.0621
naha_lat <- 26.2124
g_sapporo <- gravity_by_latitude(sapporo_lat)
g_naha <- gravity_by_latitude(naha_lat)
cat(sprintf("札幌市(緯度 %.4f°)の重力加速度: %.6f m/s^2\n", sapporo_lat, g_sapporo))
cat(sprintf("那覇市(緯度 %.4f°)の重力加速度: %.6f m/s^2\n", naha_lat, g_naha))札幌市(緯度 43.0621°)の重力加速度: 9.804447 m/s^2
那覇市(緯度 26.2124°)の重力加速度: 9.790409 m/s^2差は約 0.014 m/s²(約 1400 mGal)で、緯度が高い(極に近い)札幌の方がわずかに重力が強いことが分かります。
これは赤道に近いほど自転による遠心力と地球の扁平形状の効果で重力がわずかに弱まるためです。
なお、この式はあくまで理想化された標準重力式で、実際の測定値には地下の地質構造による局所的な重力異常(±数十mGal程度)が加わります。
より精密な値が必要な場合は、標高補正(自由空気補正・ブーゲー補正など)や実測データを考慮する必要があります。
以上です。
