地質調査総合センター研究資料集, no. 442 GSJ Openfile Report, no. 442 |
2006年8月 August, 2006 |
中塚 正 (産総研 地質情報研究部門)
Tadashi Nakatsuka (Institute of Geology and Geoinformation, GSJ/AIST)
著者は,空中磁気探査の研究に従事してきているが,
その中でデータ処理・解析・図化表示などの必要に応じて,
UNIX系コンピュータ環境のもとで汎用性の高いサブプログラムを開発し,
ライブラリソフトウェアとして活用してきている.
今日ではUNIX系コンピュータが広範に用いられるようになっており,
このライブラリが広く有効に活用され得るものと思われるので,
ここにそのソースプログラムを公開する.
本資料は,同名の研究資料集 no.400(中塚,2003)の改訂版である.
主要な改訂点は,
1) コンター図とカラー段彩図の描画における俯瞰図表現(斜交格子)への対応
2) 海岸線/湖沼河川/都道府県境データの数値地図データ等利用による正確化
3) 付録のソフトウェアの増強,とくにバッチ処理対策
4) 発見されたバグの修正
5) マニュアルのHTML化
などである.
このライブラリ 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 | 応用プログラムのコーディングを援助する機能として, 作業ディレクトリの設定支援,処理パラメータ入力支援などの機能を提供する. |
各サブプログラムのソースは,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
このライブラリをFORTRAN言語から使用するにあたって必要な 説明書(マニュアル)は,HTMLドキュメントとして,本研究資料集に含めてある. また,C言語から利用する場合には,より詳細な設定等を行うことも可能であり, 機能拡張などの高度な処理を行わせることも考えられるので, 各エントリ名のプロトタイプとその概略機能を記した HTMLドキュメントも用意した. さらに,付録として収録しているユーティリティプログラムの概要説明も, HTMLドキュメントを用意した.
ライブラリ使用説明書 (FORTRAN用) |
ライブラリ概要説明 (C言語用) |
付録ユーティリティ 概要説明 | |
---|---|---|---|
日本語 | libf.html | libc.html | prog.html |
英語 | libfE.html | libcE.html | progE.html |
このライブラリには,海岸線等を容易に作画するためのサブプログラム 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分である.