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)、 and 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 にあります。