ジオイド高計算(HGEOID)


SGEOID, HGEOID関数, JHGEOID関数
1.機 能
    sgeoid ルーチンは,hgeoid関数・jhgeoid関数で計算に使用するジオイドモデル
  を,そのモデルに付した名称に相当するサブディレクトリ名によって指定する.
  現在 用意しているジオイドモデルは,北緯20-50度 東経120-150度の 米国家地球空
  間情報局による "NGA" のみで,緯度1分×経度1.5分のメッシュデータである.
    ジオイド高の計算とは言え,座標系番号が 199 の標準グリッドファイルとして与
  えられたデータの線形補間計算を行うのみであるので,ユーザ自身で 適当なデータ
  を下記の形式で所定のディレクトリに収容すれば,そのモデルによる計算を行うこと
  ができる.また.このルーチンが呼ばれない間は,"NGA" モデルが適用される.
    hgeiod 関数・jhgeoid 関数は,sgeoid ルーチンで指定されているジオイドモデル
  について,指定の緯経度におけるジオイド高を計算する.
    なお,sgeoid ルーチンで "." を指定すると,粗いが全世界(緯度 -90~+90度,
  経度 -180~+180度)の NGAモデル ジオイド高を得ることができる.
    基本となるジオイド高データは,所定のディレクトリ /home/SHARE/data/geoid/ 
  (hgeoidサブプログラムのソース中の 記号定数 DIRgeoid で指定してある)の下の
  モデル名を示すサブディレクトリ(NGA)内に UTM座標と同様のゾーン番号を示すサブ
  ディレクトリ(Z53など) に分割して,緯経度とも1度の区画ごとのファイル (北緯ii
  度,東経kkk度 を南西隅とする範囲のものを ファイル名 "NiiEkkk.hgeoid") に
  収容しており,座標系番号が 199 の標準グリッドファイル書式であるので,必要が
  あればユーザが必要なメッシュサイズのデータを追加できる.
  (南半球では Sii,西半球では Wkkk を用いるが,ファイル名基準が区画の南西隅
  である点に変わりがない.)
    なお,粗全世界モデルのデータは,同様の書式であるが,緯度10分・経度15分の
  メッシュ値(1081×1441個)の単一ファイル /home/SHARE/data/geoid/world.hgeoid
  として収容している.

2.呼出し手順と引数

      call sgeoid(model)
  model       [char]   使用するジオイドモデルの名称(20バイト以下)

      hg = hgeoid(flat, flon)
  flat, flon  [float]  世界測地系での緯度・経度を分単位で与える.
  hg          [float]  計算結果.与えられた点でのジオイド高(m単位)を得る.
          指定位置に対するジオイド高が未定義となるモデルの場合には,このサブ
          プログラムがエラー終了して,処理の続行ができない.

      k = jhgeoid(flat, flon, hg)
  flat, flon  [float]  世界測地系での緯度・経度を分単位で与える.
  k           [int]    ジオイド高が与えられた(=0)か否かのフラグ.
  hg          [float]  k=0 のとき,ジオイド高(m単位)が与えられる.
          指定位置に対するジオイド高が未定義となるモデルの場合には,k=2 が
          返され,hg の値は 0. となる.

3.補 足

  上記で NGA モデルと称しているものは,米国家地球空間情報局(National 
Geospatial-Intelligence Agency: NGA)が,EGM2008 の名で公開しているデータ
(http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/egm08_wgs84.html)
から作成したものである.
  計算プログラムは,座標系番号が 199 の標準グリッドデータファイル書式で m単位
のジオイド高が上記のファイル名で存在することだけを前提にしているので,データ
ファイルを適切に作成して所定のディレクトリツリー構成の中に設置すれば,他の
モデルを用いた計算を行うことも容易である.