地質調査総合センター研究資料集, no. 400 GSJ Openfile Report, no. 400
English Abstract

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

中塚 正 (産総研 地球科学情報研究部門)
Tadashi Nakatsuka (Institute of Geoscience, GSJ/AIST)


1.はじめに

著者は,空中磁気探査の研究に従事してきているが, その中でデータ処理・解析・図化表示などの必要に応じて, UNIX系コンピュータ環境のもとで汎用性の高いサブプログラムを開発し, ライブラリソフトウェアとして活用してきている. 今日ではUNIX系コンピュータが広範に用いられるようになっており, このライブラリが広く有効に活用され得るものと思われるので, ここにそのソースプログラムを公開する.

2.ライブラリの概要

今回公開するものは,C言語で記述された汎用性の高いサブプログラムであり, FORTRAN言語のインターフェイスをも備えている.機能としては,

に大別できる.

各サブプログラムとも,多数のエントリ名を持つ形式となっており, エントリ名ごとに多様な機能を提供するが, その各プログラムの概要一覧を第1表に示す.

なお,ここで作成したサブプログラムのいくつかは,以前より旧地質調査所で開発利用されてきたGSJLIBと呼ばれるライブラリソフトウェア(中塚ほか,1986, 1990)の流れをくみ,そのアイデアが生かされている.

また,IGRF計算のソフトウェアは,FORTRAN言語で書かれたプログラム(中塚,1986, 1992)を,C言語に移植し若干の機能拡張を行って,新しいガウス係数を付加したものであり,計算アルゴリズムは踏襲している.

PostScript出力のサブプログラムの作成にあたっては,アドビ社発行のマニュアル (Adobe Systems Inc., 1990, 1994)を参考にした.

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

3.ソースプログラムとそのファイル構成

各サブプログラムのソースは,C言語で記述されており, そのファイル名には,拡張子 .c がついている. また,各サブプログラムを用いたプログラミングを行う上で必要な説明書 を作成してあり,日本語説明書のファイル名には 拡張子 .euc が, 英語説明書のファイル名には,末尾に E を付し,拡張子 .txt が つけてある. それらは,第1図に示すツリー構造の形で CD-ROM に収容してある.

なお,lib/man ディレクトリの manps.euc, manxy.euc, manpsE.txt, manxyE.txt の各説明書(マニュアル)は,prog ディレクトリの prtpsなるプログラムを用いて印刷出力することができるようになっている. この prtps と同様に,ときに便利に使えるプログラムを 付録扱いでこの研究資料集に含め,prog ディレクトリに収容した. その一覧を,同じディレクトリ内の Memo.euc, MemoE.txt に記載してある.

   <第1図 本研究資料集に収容しているファイルのツリー構造>
no0400/        (Directory for this Openfile Report no.400)indexJ.html   This Web page
 ├ index.html    Web page of English abstract
 ├ of0400.doc    MS Word document same as this page
 ├ lib.tar.gz    Gzipped Tar Archive of the directory 'lib'
 │                (Equivalent to whole 'lib' directory)
 ├ prog.tar.gz   Gzipped Tar Archive of the directory 'prog'
 │                (Equivalent to whole 'prog' directory)
 ├ shore.tar.gz  Gzipped Tar Archive of the directory 'data/shore'
 │                (Equivalent to whole 'data/shore' directory)
 ├ lib/             (Directory containing Library sources)
 │ ├ @mkall        Script to make Library Archive file 'libgm.a'
 │ ├ axis.c        Source of subprogram AXIS
 │ ├ calma.c       Source of subprogram CALMA
 │ ├ cont.c        Source of subprogram CONT
 │ ├ igrf.c        Source of subprogram IGRF
 │ ├ lwkdir.c      Source of subprogram LWKDIR
 │ ├ pspaint.c     Source of subprogram PSPAINT
 │ ├ psplot.c      Source of subprogram PSPLOT
 │ ├ ptext.c       Source of subprogram PTEXT
 │ ├ rand.c        Source of subprogram RAND
 │ ├ sml.c         Source of subprogram SML
 │ ├ wshore.c      Source of subprogram WSHORE
 │ ├ xw84t.c       Source of subprogram XW84T
 │ ├ xyconv.c      Source of subprogram XYCONV
 │ └ man/             (Directory containing Manual pages)
 │   ├ @mkall        Script to make Manual Page PS files
 │   ├ axis.ps, cont.ps, gsymbl.ps,
 │   │  pspaint.ps, ptext.ps, wshore.ps   PS files for manual pages
 │   ├ cman.euc      C language prototype and summary (in Japanese)
 │   ├ cmanE.txt     C language prototype and summary (in English)
 │   ├ manps.euc     Manual for PostScript Graphics (in Japanese)
 │   ├ manps08.euc    8th page of "manps.euc"
 │   ├ manps10.euc    10th page of "manps.euc"
 │   ├ manpsE.txt    Manual for PostScript Graphics (in English)
 │   ├ manpsE6.txt    6th page of "manpsE.txt"
 │   ├ manpsE8.txt    8th page of "manpsE.txt"
 │   ├ manxy.euc     Manual for Coord.Conv. etc. (in Japanese)
 │   ├ manxyE.txt    Manual for Coord.Conv. etc. (in English)
 │   └ samples.f     FORTRAN program to generate Manual Page PS files
 ├ prog/            (Directory containing Misceraneous program)
 │ ├ @mkall        Script to make all Executable files
 │ ├ Memo.euc      Description of Programs in this directory (in Japanese)
 │ ├ MemoE.txt     Description of Programs in this directory (in English)
 │ ├ cats.c        Source of program 'cats'
 │ ├ cat4.c        Source of program 'cat4'
 │ ├ cat8.c        Source of program 'cat8'
 │ ├ euc.c         Source of program 'euc'
 │ ├ sj.c          Source of program 'sj'
 │ ├ jis.c         Source of program 'jis'
 │ ├ jisx.c        Source of program 'jisx'
 │ ├ cview.c       Source of program 'cview'
 │ ├ uncview.c     Source of program 'uncview'
 │ ├ hexdump.c     Source of program 'hexdump'
 │ ├ prtps.c       Source of program 'prtps'
 │ ├ psdivide.c    Source of program 'psdivide'
 │ ├ igrfcal.c     Source of program 'igrfcal'
 │ ├ utmcal.c      Source of program 'utmcal'
 │ ├ xycal.c       Source of program 'xycal'
 │ ├ cxtw84.c      Source of program 'cxtw84'
 │ └ cxw84t.c      Source of program 'cxw84t'
 │
 └ data/         (Directory containing various Data)
   └ shore/        (Directory containing Coastline data etc.)
     ├ SH20/, SH21/, SH22/, SH23/, SH24/,     Directories containing
     │ SH25/, SH26/, SH27/, SH28/, SH29/,      coastlines, rivers/lakes, and
     │ SH30/, SH31/, SH32/, SH33/, SH34/,      pref.boundaries data (fine)
     │ SH35/, SH36/, SH37/, SH38/, SH39/,      in Old-TOKYO coordinates
     │ SH40/, SH41/, SH42/, SH43/, SH44/,      for each Latitude zone.
     │ SH45/, SH46/, SH47/, SH48/, SH49/
     ├ SW20/, SW21/, SW22/, SW23/, SW24/,     Directories containing
     │ SW25/, SW26/, SW27/, SW28/, SW29/,      coastlines, rivers/lakes, and
     │ SW30/, SW31/, SW32/, SW33/, SW34/,      pref.boundaries data (fine)
     │ SW35/, SW36/, SW37/, SW38/, SW39/,      in WGS-84 coordinates
     │ SW40/, SW41/, SW42/, SW43/, SW44/,      for each Latitude zone.
     │ SW45/, SW46/, SW47/, SW48/, SW49/
     ├ wcoast.jpn                        Coastlines data (coarse) of Japan
     ├ wriver.jpn                        Rivers/lakes data (coarse) of Japan
     └ world.cst                         Coastline data of the world

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

前にも触れたように, このライブラリをFORTRAN言語から使用するにあたって必要な 説明書(マニュアル)は,manps.euc, manxy.euc, manpsE.txt, manxyE.txt のファイル名でテキストファイルとして,本研究資料集に含めてある. また,C言語から利用する場合には,より詳細な設定等を行うことも可能であり, さらに機能拡張を図るなど高度な処理を行わせる可能性もあるので, 各エントリ名のプロトタイプとその概略機能を記した cman.euc, cmanE.txt なるファイルも用意した.
1. manps.euc    2. manxy.euc    3. cman.euc   
4. manpsE.txt    5. manxyE.txt    6. cmanE.txt   

各説明書(マニュアル)は, 前記の no0400 ディレクトリ以下のすべてのファイルが, /home/SHARE ディレクトリ以下に置かれることを想定して書かれており, prtps プログラム(/home/SHARE/prog/prtps)を用いて 各説明書を印刷出力するには,
  cd /home/SHARE
  prog/prtps -p=0 lib/man/manps.euc | lpr
のようなコマンドを発行すればよい.そのコマンド形式は, manps.euc, manxy.euc, cman.euc, manpsE.txt, manxyE.txt, cmanE.txt の各ファイルの先頭に記述してある. なお,その記述に中にある 'lpr -P ph8200' は A4サイズカラープリンタへの出力を意味しており, 個々の環境によって異なるので,適切に読み替えていただきたい.

5.海岸線等データ

このライブラリには, 海岸線等を容易に作画するためのサブプログラム WSHORE が含まれており, その処理のためには海岸線その他の座標値のデータが必要である. この目的のために,従来より国土地理院で整備された国土数値情報や 世界地図をディジタイザで読み取ったデータなどを利用してきているが, それらのデータから必要な精度でデータを再構成したデータファイル群を /home/SHARE/data/shore デレクトリ下に用意し, WSHORE ではそれを使用している.

そのデータファイル群の構成は, 説明書 manxy.euc の p.4 にやや詳しく説明してあるが, 座標値の分解能は,大縮尺用で緯度・経度値で0.01分,小縮尺用は1分であり, 精度は当然それより劣る. また,元データ自体が古くその後の更新も行っていないので, 比較的最近に変化があった所では現状と異なることとなる. 従って,この海岸線等データは, あくまでも概略を示すための参考としてのみ利用されたい.

文 献

  1. 中塚 正・宮崎光旗・安藤直行・衣笠善博・佐藤 功(1986) RIPS共用ソフトウェアGSJLIBとその原始プログラム.地調研究資料集, no.25, 156p., 地質調査所.
  2. 中塚 正・宮崎光旗・安藤直行・衣笠善博・佐藤 功(1990) RIPS共用ソフトウェアGSJLIBとその原始プログラム(第2版).164p., 地質調査所.
  3. 中塚 正(1986)国際標準地球磁場IGRFとその計算ソフトウェア. 地調研究資料集,no.27, 25p., 地質調査所.
  4. 中塚 正(1992)国際標準地球磁場IGRFとその計算ソフトウェア(2). 地調研究資料集,no.184, 27p.(FD 1枚付き), 地質調査所.
  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.