TOC PREV NEXT INDEX

Put your logo here!


1.7 NetCDFの背景と発展


NetCDFの開発はUnidataの必要に迫られた控えめな目標に向かって始められました。その目標とはUnidataのアプリケーションとリアルタイムの気象データとの間に共通のインターフェースを提供することです。元々Unidataのソフトウェアは複数のハードウェアプラットフォーム上で実行され、CとFORTRANの両方からアクセスされることが前提にあったので、Unidataの目標を達成することはより広く応用できるパッケージを提供する可能性をも秘めていました。これらのパッケージを広く提供し、かつ同じような需要のある団体と協力することによって、我々は科学的なデータを取得するために作られたあるソフトウェアが他の分野ばかりではなく同じ分野の中でさえも利用されない現状を打破しようと試みました(Fulker, 1988)。

NetCDFソフトウェアの重要なコンセプトはNASA Goddard National Space Science Data Center (NSSDC)で開発されたデータアクセスソフトウェアの解説である論文、Treinish and Gough (1987)に記述されています。このソフトウェアによって提供されているインターフェースはCommon Data Format (CDF)と呼ばれ、NASA CDF は元は配列を格納するための抽象化をサポートするプラットフォーム特定型のFORTRANライブラリとして開発されました。

NASA CDFパッケージは様々な種類のデータと幅広いアプリケーションに応用されてきました。NASA CDFは単純さ(サブルーチンは13個のみ)・格納フォーマットからの独立性・汎用性・データの論理的な見方をサポートする能力・一般的なアプリケーションに対するサポートという利点を備えていました。

我々は1987年の8月にUnidataはコロラド州ボルダーでワークショップを開催しました。NASAと協力し、NASAの既存のインターフェースと互換性を持たせながらCDF FORTRANインターフェースを拡張・Cインターフェースを定義・一つのセルによるデータ集合体のアクセス許可をする可能性が追求されました。

それとは独自にNew Mexico Institute of Mining and Technologyの Dave RaymondはUNIX用にあるCソフトウェアのパッケージを開発していました。それは自己記述的データへの順次アクセスを可能にし、データの解析・分析・表示に対して「パイプとフィルター(またはデータフロー)」的なアプローチをサポートするものでした。このパッケージもまた,「Common Data Format」という名を冠しており、後にC-Based Analysis and Display System (CANDIS)へと改められました。UnidataはRaymondの成果を知り(Raymond, 1988)、名前付き次元、及び同一データオブジェクト内に形の異なる変数を使用するなどといった、彼の着眼点のいくつかをUnidata NetCDFインターフェースに採用しました。

1988年の初頭にUnidataのGlenn DavisがCで書かれXDRの上に被さったNetCDFパッケージの試作品を完成させました。この試作品は次の2点を証明しました。ひとつは単一ファイルのXDR上に実装されたCDFインターフェースの開発費用が許容内であること。そして2点目はそのようなプログラムがUNIXとVMSとの両方に実装可能であることでした。しかし、それは同時に、望まれている汎用性をもつような、小さくポータブルでNASA CDFと互換性のあるFORTRANインターフェースの開発の実現が困難であることを証明しました。NASA CDFとUnidata's NetCDFとはその後独自の発展を遂げましたが、NASA CDFの最新版は NetCDFと似たような特徴を持っています。

1988年の初頭に、1987年のUnidata CDFワークショップにも参加したSeaSpace, Inc.(カリフォルニア州サンディエゴにある商用ソフトウェア開発会)のJoe Fahleが独自にNASA CDFインターフェースをいくつか重要な点で拡張したCDFパッケージをCで開発しました(Fahle, 1989)。Raymondのパッケージと同様に、SeaSpace CDFソフトウェアは関連の無い形の変数を同一データオブジェクト内に含むことを許容し、多次元の配列に対する一般的なアクセス方法を可能にしました。Fahleの成果はSeaSpace社では、画像処理システムにおける中間的な段階での格納形態として使われていました。このインターフェースとフォーマットは後にTerascanデータフォーマットへと発展していきます。

FahleのインターフェースはNASAのインターフェースを我々の目的に応じる形に拡張しようとした際に直面した問題の大部分を解決していました。1988年8月にUnidata NetCDF用インターフェースの形式を決定し、残された問題を解決するために小規模のワークショップが開催されました。参加者はSeaSpace社のJoe Fahle、Apple社のMichael Gough(NASA CDFソフトウェアの開発者の一人)、Miami大学のAngel Li(VMSにNetCDFソフトウェアの試作品を実装し、ユーザーになりえた人)、それにUnidataのシステム開発部のスタッフ達でした。いくつか簡略できる点が指摘された後にワークショップとしての合意が得られました。Glenn DavisとRuss Rewがソフトウェアの最初のバージョンを完成させる前に、ワークショップの成果を含んだUnidata NetCDFインターフェースの仕様に関する文書が意見交換を促すために広く配布されました。他のデータアクセスインターフェースとの比較やNetCDFを使用した感想についてはRew and Davis (1990a)、Rew and Davis(1990b)、Jenter and Signell(1992)、および Brown, Folk, Goucher, and Rew(1993)で議論されています。

1991年10月にNetCDFソフトウェア2.0版の配布開始を発表しました。Cインターフェースに小さな修正を加えた(次元の長さをintではなくlongで宣言した)ことによってMS-DOSコンピューター等の安価なプラットフォーム上でのNetCDFの利便性を向上させました。さらに他のプラットフォーム上での再コンパイル作業を必要としないという利点もありました。このインターフェースへの変更は関連するファイルフォーマットの変更が必要となることもありませんでした。

1993年6月にNetCDF 2.3版がリリースされました。このバージョンではファイルフォーマットに変更はなされませんでしたが、記録への単一呼び出しアクセス・不連続なデータに関する断面へのアクセスの最適化・’stride’を使用した指定断面への部分サンプリング・‘mapped array sections’(マップされた配列断面)を使用した不連続データへのアクセス・ncdumpとncgenユーティリティの改良・試験的なC++インターフェース等が追加されました。

1996年2月にリリースされた2.4版では新たなプラットフォームやC++インターフェースへのサポートが加えられ、また、スーパーコンピューターのアーキテクチャに関しては重要な最適化がなされました。

1996年5月にNetCDFデータに高レベルなインターフェースを提供するソフトウェアのFAN(File Array Notation)の配布が開始された。FANのユーティリティーにはNetCDFのデータセットから配列指向データを抽出し操作する・NetCDF配列から特定のデータを印刷する・ASCIIデータをNetCDFデータにコピーする・NetCDF配列上で様々な統計操作(sum, mean, max, min, product,)を行う等が含まれました。FANに関する詳細はFAN Utilities document, http://www.unidata.ucar.edu/packages/NetCDF/fan_utils.htmlにあります。



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX