師匠の散歩

きままにPerlでも

MagneticNorthLine(D2000)

磁北線(D2000) / 緯度・経度から磁北線の傾きを求める/ magneticNorthLine.cgi

国土地理院

偏角分布を緯度と経度の2次式で近似した式(2000.0年値)

1.緯度、経度を度単位にする
φ=35.68°、λ=139.70°
2.式に代入する
Δφ=35.68°-37°=-1.32°
Δλ=139.70°-138°=1.70°
<2000.0年値>
D2000.0=7°37.142'+21.622'×(-1.32)-7.672'×(1.70)+0.422'×(-1.32)**2-0.320'×(-1.32)×(1.70)-0.675'×(1.70)**2
=6°55.1'

上記では計算式および解に「度と分が混在」しているためパソコン向きではない。そこで、度で統一してPerlスクリプトで記述した

# ---------------------------------------------------------
# 国土地理院のD2000計算式で磁北線の傾きを求める
# ---------------------------------------------------------
sub alphaMagneticNorth{
  my ($lat,$lng) = @_;
  $lat -=37;               # 角度を減算する
  $lng -=138;              # 角度を減算する
  print "n $lat <> $lng \n";
  my $k1 = 7+37.142 /60;   # 計算式の分を度に直して係数にいれる
  my $k2 =   21.622 /60;
  my $k3 =   -7.672 /60;
  my $k4 =    0.422 /60;
  my $k5 =   -0.320 /60;
  my $k6 =   -0.675 /60;
  return $k1 + $k2*$lat + $k3*$lng + $k4*$lat**2 + $k5*$lat*$lng + $k6*$lng**2;
}
# ---------------------------------------------------------
# 度+分で記入されたデータを度に変換する
# ---------------------------------------------------------
sub dofun2deg {
  my ($do,$fun) = @_;
  my $deg = $do + $fun/60;
return $deg;
}
F全磁力地磁気の大きさ地球磁場の強
D偏角Fが水平面内で真北となす角度時計回りを正とする
I伏角Fが水平面となす角度水平面より下方を正とする
H水平分力水平面内での地磁気の大きさ磁北を正とする
Z鉛直分力鉛直面内での地磁気の大きさ鉛直下方を正とする
X北成分南北方向軸上での地磁気の大きさ北を正とする
Y東成分東西方向軸上での地磁気の大きさ東を正とする
傾きを求める
my $do = "36";
my $fun = "12.345";
my $kai = dofun2deg($do,$fun);
⇒
do / 12.345 / 36.20575 
φ=35.68°、λ=139.70°
alphaMagneticNprth(35.68,139.70) ⇒ 
6.91768638

magneticNorthLine.cgi // Topに戻る // indexに戻る
Copyright(C) 2009-2021 Grandmaster Last up : 2020/09/18