地質調査総合センター研究資料集, no. 442
GSJ Openfile Report, no. 442
2006年8月
August, 2006

地球物理データの解析処理・図化表現のためのライブラリ(2)
Library Software for Geophysical Data Processing and Representation (2)

中塚 正 (産総研 地質情報研究部門)
Tadashi Nakatsuka (Institute of Geology and Geoinformation, GSJ/AIST)

English

1.はじめに

 著者は,空中磁気探査の研究に従事してきているが, その中でデータ処理・解析・図化表示などの必要に応じて, UNIX系コンピュータ環境のもとで汎用性の高いサブプログラムを開発し, ライブラリソフトウェアとして活用してきている. 今日ではUNIX系コンピュータが広範に用いられるようになっており, このライブラリが広く有効に活用され得るものと思われるので, ここにそのソースプログラムを公開する.
 本資料は,同名の研究資料集 no.400(中塚,2003)の改訂版である. 主要な改訂点は,
  1) コンター図とカラー段彩図の描画における俯瞰図表現(斜交格子)への対応
  2) 海岸線/湖沼河川/都道府県境データの数値地図データ等利用による正確化
  3) 付録のソフトウェアの増強,とくにバッチ処理対策
  4) 発見されたバグの修正
  5) マニュアルのHTML化
などである.

2.ライブラリの概要

 このライブラリ libgm は, C言語で記述された汎用性の高いサブプログラムであり, FORTRAN言語のインターフェイスをも備えている.各サブプログラムとも, 多数のエントリ名を持つ形式となっており,多様な機能を提供するが, その各プログラムの概要一覧を下表に示す.

 なお,ここで作成したサブプログラムのいくつかは, 以前より旧地質調査所で開発利用されてきたGSJLIBと呼ばれる ライブラリソフトウェア(中塚ほか,1986, 1990)の流れをくみ, そのアイデアが生かされている. また,IGRF計算のソフトウェアは,中塚(2005)によるソフトウェアを そのまま収録してある.
 PostScript出力のサブプログラムの作成にあたっては,アドビ社発行の マニュアル(Adobe Systems Inc., 1990, 1994)を参考にした.

各ライブラリサブプログラムの機能概要
名称機能概要
PSPLOT PostScriptプリンタへの線画出力を行うためのルーチン群である. 本ルーチン群の初期化/終了化,1ページ出力の開始/終了,線分描画, 指定範囲外線分切取り,描画拡大率指定,描画線の色・幅・線種指定, 矩形描画,多角形描画,円・円弧描画 などの機能がある.
PSPAINT PostScriptプリンタへの面描画出力を行うためのルーチン群で, PSPLOTの配下で動作する.円・矩形・多角形を指定の色で塗りつぶす基本機能 のほかに,2次元配列データをモノクロ濃淡もしくはカラー段彩の形で表現したり, カラー段彩図に陰影を付加したりできる.
PTEXT 使用する字体・文字サイズ・文字の向き・文字色および背景色を指定して, 文字列(漢字可)やマークを記入する.(PSPLOT配下で動作)
CONT 2次元配列で与えられたデータ分布に対して, 連続線描画によるコンター図を描く.(PSPLOT配下で動作)
WSHORE 日本およびその周辺(北緯20〜50度,東経120〜155度) の海岸線と主要な湖沼河川および都府県境,もしくは世界の海岸線を, 指定した図法に従って描く.(PSPLOT配下で動作)
AXIS ストロークテーブルによる文字・マークの描画,座標軸の描画, 配列データのグラフ化 などの線画による作画のためのルーチンを集めたもので, 旧式の既存プログラムとの互換性を維持することを目的とする. (PSPLOT配下で動作)
XYCONV 地図投影の図法展開計算(緯度・経度と直角座標値との相互変換)を行う.
XW84T 世界測地系と旧日本測地系との間の緯度・経度・高度値の相互の変換 の計算を行う.
IGRF 国際標準地球磁場(IGRF)の各モデルによる標準磁場の計算を行う.
CALMA 単純な形状のモデルに対する磁気異常(全磁力異常)の計算を行う.
SML n元1次/2元n次/3元n次の回帰分析および回帰式の値の計算を行う.
RAND 疑似乱数を発生する.
LWKDIR 応用プログラムのコーディングを援助する機能として, 作業ディレクトリの設定支援,処理パラメータ入力支援などの機能を提供する.

3.本資料の収録ファイルとその構成

 各サブプログラムのソースは,C言語で記述されており, そのファイル名には,拡張子 .c がついている. また,各サブプログラムを用いたプログラミングを行う上で必要な説明書 をHTML文書(拡張子 .html)として作成してある. それらは,下に示すツリー構造の形で CD-ROM に収容してある.
 なお,このライブラリの作成に関連して,あるいはそれと関係なく独自に 作成したユーティリティプログラムを,付録扱いでこの研究資料集に含めた.

 下記のlib, prog, data の各ディレクトリは,実利用環境においては /home/SHARE ディレクトリ下に置かれることを 想定している.

   <本研究資料集に収容しているファイルのツリー構造>
(root)
 ├ openfile0442index.html   Cover page HTML (in Japanese)
 ├ index.html       Introduction HTML in English
 ├ indexJ.html      Introduction HTML in Japanese (This document)
 ├ man.tgz          Gzipped Tar Archive of the directory 'man'
 │                    (Equivalent to whole 'man' directory)
 ├ lib.tgz          Gzipped Tar Archive of the directory 'lib'
 │                    (Equivalent to whole 'lib' directory)
 ├ prog.tgz         Gzipped Tar Archive of the directory 'prog'
 │                    (Equivalent to whole 'prog' directory)
 ├ shore.tgz        Gzipped Tar Archive of the directory 'data/shore'
 │                    (Equivalent to whole 'data/shore' directory)
 ├ igrfcf.tgz       Gzipped Tar Archive of the directory 'data/IGRFCOEF'
 │                    (Equivalent to whole 'data/IGRFCOEF' directory)
 │
 ├ man/            (Directory containing Manual HTMLs)
 │ ├ libf.html        Index to manual pages (for FORTRAN) (in Japanese)
 │ ├ libfE.html       Index to manual pages (for FORTRAN) (in English)
 │ ├ libc.html        C language prototype and summary (in Japanese)
 │ ├ libcE.html       C language prototype and summary (in English)
 │ │
 │ ├ axis.html, calma.html, cont.html, igrf.html,     ┐
 │ │  lwkdir.html, pspaint.html, psplot.html,         │ Manual pages for
 │ │   ptext.html, rand.html, sml.html,               │  each subprogram
 │ │    wshore.html, xw84t.html, xyconv.html          ┘   (in Japanese)
 │ │
 │ ├ axisE.html, calmaE.html, contE.html, igrfE.html, ┐
 │ │  lwkdirE.html, pspaintE.html, psplotE.html,      │ Manual pages for
 │ │   ptextE.html, randE.html, smlE.html,            │  each subprogram
 │ │    wshoreE.html, xw84tE.html, xyconvE.html       ┘   (in English)
 │ │
 │ ├ prog.html        Description of utility programs (in Japanese)
 │ ├ progE.html       Description of utility programs (in English)
 │ ├ samples.f        FORTRAN program to generate Manual Page illustrations
 │ └ figs/           (Directory containing Manual Page illustrations)
 │   └ axis.png, cont.png, csymbl.png,               ┐
 │      gsymbl.png, pmark.png, pspaint.png,          │ Manual page
 │       ptext1.png, ptext2.png, test.png,           │  illustrations
 │        wshore.png                                 ┘
 │
 ├ lib/            (Directory containing Library program sources)
 │ ├ @mkall           Script to make Library Archive file 'libgm.a'
 │ ├ axis.c, calma.c, cont.c, igrf.c, lwkdir.c,       ┐
 │ ├ pspaint.c, psplot.c, ptext.c, rand.c,            │Source of
 │ └ sml.c, wshore.c, xw84t.c, xyconv.c               ┘ each subprogram
 │
 ├ prog/           (Directory containing Misc.Utility program sources)
 │ ├ @mkall           Script to make all Executable files
 │ └ cats.c, cat4.c, cat8.c, euc.c, sj.c, jis.c,      ┐
 │    jisx.c, rmcr.c, addcr.c, crlf.c, onlycr.c,      │ Source of
 │     cview.c, cviewe.c, uncview.c, hdumpe.c,        │  each utility
 │      prtps.c, igrfcal.c, utmcal.c, xycal.c,        │   program
 │       cxtw84.c, cxw84t.c, cxiken.c, cxenik.c,      │
 │        job.c, job1.c                               ┘
 │
 └ data/           (Directory containing various Data)
   ├ shore/          (Directory containing Coastline data etc.)
   │ ├ SH20/, SH21/, SH22/, SH23/, SH24/,  ┐
   │ │ SH25/, SH26/, SH27/, SH28/, SH29/,  │ Directories containing
   │ │ SH30/, SH31/, SH32/, SH33/, SH34/,  │  coastlines, rivers/lakes, and
   │ │ SH35/, SH36/, SH37/, SH38/, SH39/,  │  pref.boundaries data (fine)
   │ │ SH40/, SH41/, SH42/, SH43/, SH44/,  │  in Old-TOKYO coordinates
   │ │ SH45/, SH46/, SH47/, SH48/, SH49/   ┘  for each Latitude zone.
   │ ├ SW20/, SW21/, SW22/, SW23/, SW24/,  ┐
   │ │ SW25/, SW26/, SW27/, SW28/, SW29/,  │ Directories containing
   │ │ SW30/, SW31/, SW32/, SW33/, SW34/,  │  coastlines, rivers/lakes, and
   │ │ SW35/, SW36/, SW37/, SW38/, SW39/,  │  pref.boundaries data (fine)
   │ │ SW40/, SW41/, SW42/, SW43/, SW44/,  │  in WGS-84 coordinates
   │ │ SW45/, SW46/, SW47/, SW48/, SW49/   ┘  for each Latitude zone.
   │ │
   │ ├ wcoast.jpn       Coastlines data (coarse) of Japan
   │ ├ wriver.jpn       Rivers/lakes data (coarse) of Japan
   │ └ world.cst        Coastline data of the world
   │
   └ IGRFCOEF/       (Directory containing IGRF coefficients data)
     └ igrf01.coef, igrf02.coef, igrf03.coef,    ┐
        igrf04.coef, igrf05.coef, igrf06.coef,   │ Gauss Coefficients data
         igrf07.coef, igrf08.coef, igrf09.coef   │  for each Generation
          igrf10.coef                            ┘  of IGRF

4.説明書(マニュアル)

 このライブラリをFORTRAN言語から使用するにあたって必要な 説明書(マニュアル)は,HTMLドキュメントとして,本研究資料集に含めてある. また,C言語から利用する場合には,より詳細な設定等を行うことも可能であり, 機能拡張などの高度な処理を行わせることも考えられるので, 各エントリ名のプロトタイプとその概略機能を記した HTMLドキュメントも用意した. さらに,付録として収録しているユーティリティプログラムの概要説明も, HTMLドキュメントを用意した.

  ライブラリ使用説明書
(FORTRAN用)
ライブラリ概要説明
(C言語用)
付録ユーティリティ
概要説明
日本語   libf.html   libc.html   prog.html
英語   libfE.html   libcE.html   progE.html

5.海岸線等データ

 このライブラリには,海岸線等を容易に作画するためのサブプログラム WSHORE が含まれており,その処理のためには海岸線その他の座標値のデータが必要である. この目的のために,データファイル群を /home/SHARE/data/shore デレクトリ下に用意し, WSHORE ではそれを使用するようになっている.
 本資料集では,
    1) 国土地理院による「数値地図25000(空間データ基盤)」
      (http://www.gsi.go.jp/MAP/CD-ROM/25000outline/25000outline.htm)
      の水域界と行政界のデータ(*)
    2) NGDC/NOAA による世界の海岸線データ
      (http://rimmer.ngdc.noaa.gov/mgg/coast/getcoast.html)
の両者を用いて,必要な精度で再構成したデータのファイル群を, data/shore デレクトリ下に収録してあるので, ディレクトリ配置を適切に行うことにより,それらを利用できる.
 そのデータファイル群の構成は,WSHORE の説明書 wshore.html にやや詳しく説明してあるが, 座標値の分解能は,大縮尺用で緯度・経度値で0.01分,小縮尺用は1分である.

(*)
この資料の作成にあたっては,国土地理院長の承認を得て, 同院発行の数値地図25000(空間データ基盤)を使用しました. (承認番号: 平18総使 第190号)

文 献

  1. 中塚 正・宮崎光旗・安藤直行・衣笠善博・佐藤 功(1986) RIPS共用ソフトウェアGSJLIBとその原始プログラム.地調研究資料集, no.25, 156p., 地質調査所.
  2. 中塚 正・宮崎光旗・安藤直行・衣笠善博・佐藤 功(1990) RIPS共用ソフトウェアGSJLIBとその原始プログラム(第2版). 164p., 地質調査所.
  3. 中塚 正(2003)地球物理データの解析処理・図化表現のためのライブラリ. 地調研究資料集, no.400, 86p.+1 CD-ROM, 産総研地質調査総合センター.
  4. 中塚 正(2005)国際標準地球磁場IGRFとその計算ソフトウェア(4). 地調研究資料集, no.423, 39p.+1 FD, 産総研地質調査総合センター.
  5. Adobe Systems Incorporated (1990) PostScript language tutorial and cookbook. 16th printing, 244p., Addison-Wesley Publishing.
  6. Adobe Systems Incorporated (1994) PostScript language reference manual, 2nd ed. 11th printing, 765p., Addison-Wesley Publishing.