メインコンテンツへスキップ

と働くdatasets.xmlファイル

\[このページは、このページの先頭へERDDAP™管理者。\]

続いた後ERDDAP™ インストール手順、編集しなければなりませんdatasets.xmlファイル トームキャット /content/erddap/ がデータセットを記述するERDDAP™取付けはサーブします。

例を確認できます。datasets.xmlGitHubでお問い合わせ


導入事例

必要なアセンブリ

データセットの設定ERDDAP™データセットのディレクトリやURLを指すのは問題ではありません。 あなたはXMLのチャンクを書く必要がありますdatasets.xmlデータセットを記述する。

  • グリッドされたデータセットのために、データセットを合わせるためにERDDAP's は、グリッドデータのデータ構造で、同じ次元を共有するデータセットの変数のサブセットを識別する必要があります。 (なぜ? お問い合わせ)
  • データセットの現在のメタデータは自動でインポートされます。 しかし、メタデータを変更したり、他のメタデータを追加したい場合は、それを指定する必要があります。datasets.xmlお問い合わせ そしてERDDAP™他のメタデータを必要とします。グローバル属性 (などinfoUrl, 機関,sourceUrl, 概要, タイトル) そして、変数属性 (などlong\_nameユニット) お問い合わせ 現在データセットに存在するメタデータとして、データセットに記述された情報を追加し、要求されるメタデータERDDAP™データセットに記述情報を付加します。 追加のメタデータは、データセットに良い追加であり、ERDDAP™慣れていないユーザーにデータを提示するより良い仕事をします。
  • ERDDAP™特別なことを行う必要があります。経度、緯度、高度 (または深さ) 変数と時間変数お問い合わせ

これらのアイデアを購入し、XMLを作成するための努力を費やすとdatasets.xml、すべての利点をの得ますERDDAP™以下を含む:

  • データセットの完全なテキスト検索
  • カテゴリでデータセットを検索
  • データアクセスフォーム ( datasetID .html拡張子) そのため、さまざまなファイル形式でデータのサブセットをリクエストできます。
  • グラフやマップをリクエストするフォーム ( datasetID .グラフ)
  • サイトマップ (WMS) グリッドデータセット用
  • RESTfulデータへのアクセス

作るdatasets.xml最初のデータセットはかなりの労力を要しますが、 それはより容易になります お問い合わせ 最初のデータセットの後、次のデータセットで多くの作業を再利用することができます。 幸いなことに、ERDDAP™2つ付属ツールデータセットごとにXMLを作成するのに役立ちますdatasets.xmlお問い合わせ あなたが立ち往生したら、私たちを参照してください追加サポートを受けるセクションお問い合わせ

データプロバイダ フォーム

データプロバイダがあなたにデータを追加しようとするとERDDAPすべてのメタデータを収集するために困難で時間がかかることがあります (データセットに関する情報) データセットを追加するために必要なERDDAPお問い合わせ 多くのデータソース (たとえば、.csv ファイル、 Excelファイル、データベース) 内部メタデータがないので、ERDDAP™データプロバイダからメタデータを収集し、広範なガイダンスを含むデータプロバイダのフォームを持っていますデータベース内のデータお問い合わせ 提出された情報は、送信された情報に変換されますdatasets.xmlフォーマットおよびそれから電子メールをERDDAP™管理者権限 (お問い合わせ) と書かれている (リクエスト) お問い合わせ bigParentディレクトリ /logs/dataProviderForm.log . したがって、フォームは半自動でデータセットを取得するプロセスを自動化しますERDDAP, しかし、ERDDAP™管理者はまだ完了しなければならないdatasets.xmlchunk とデータファイルを取得する対処 (ツイート) プロバイダーから、またはデータベースに接続します。

外部ソースからの実際のデータファイルの送信は、巨大なセキュリティリスクです。ERDDAP™それに対処するものではありません。 たとえば、メールなどのデータプロバイダやデータプロバイダで動作するソリューションを把握する必要があります。 (小さなファイルの場合) 、雲から引っ張って下さい (例えば、DropBox や Google ドライブ) , sftp サイト (パスワードで) 、またはスニーカー ログイン (USB の親指ドライブか外的なハードドライブ) お問い合わせ あなたが知っている人からファイルだけを受け入れる必要があります。 ウイルスのファイルをスキャンし、他のセキュリティ対策を講じる必要があります。

リンクがないERDDAP™データプロバイダのフォームに (例えば、ERDDAP™サイトマップ) お問い合わせ 代わりに、誰かが彼らがあなたのデータがあなたの役に立たせたいと伝えた場合ERDDAPつまり、次のようなメールを送ることができます。 はい、私たちはあなたのデータを取得することができますERDDAPお問い合わせ まずはフォームに必要事項をご記入下さい。 https://yourUrl/erddap/dataProviderForm.html (またはhttp://お問い合わせhttps://機能しない) お問い合わせ 完了後、最終確認をさせていただきます。 フォームを見たいだけなら (それを満たさないで) フォームをオンに表示することができますERDお問い合わせERDDAP: : :導入事例,パート1,パート2,パート3パート4お問い合わせ これらのリンクERD ERDDAP™あなたではなく、私に情報を送信するので、実際にデータを追加したい場合は、それらに情報を提出しないでくださいERD ERDDAPお問い合わせ

データプロバイダフォームを削除したい場合ERDDAP™, 置く

<dataProviderFormActive>false</dataProviderFormActive>  

setup.xml ファイルで。

今回のインペータスはNOAA's 2014 年研究成果公開アクセス (ログイン) ディレクティブ, 全てを要求するNOAA納税者ドルを介した環境データがデータサービスで利用可能 (ファイルだけでなく) 12ヶ月以内の制作 そのため、利用に関心が高まりますERDDAP™サービスASAPでデータセットを利用できるようにするため。 大量のデータプロバイダに対処するためのより効率的な方法が必要です。

フィードバック/提案? こちらのフォームは新品です。erd dot data at noaa dot govこの改善のためのフィードバックか提案があれば。

ツール

ERDDAP™必要なデータセットごとにXMLを作成するためのツールである2つのコマンドラインプログラムが付属していますERDDAP™お問い合わせ セットアップが完了したらERDDAP™実行する (少なくとも 1 時間) , これらのプログラムを見つけて使用することができます トームキャット /webapps/erddap/WEB-INFディレクトリ Linux/Unix シェルスクリプトがあります。 (拡張子 .sh を使って) Windowsスクリプト (拡張子 .bat を使って) 各プログラムについて\[Linux では、同じユーザーとしてこれらのツールを実行します。 (トームキャット?) Tomcatを実行します。\]各プログラムを実行すると、質問をします。 各質問に対して、応答を入力し、Enterキーを押します。 または、いつでもプログラムを終了するために ^C を押します。

プログラムが実行されませんか?

  • 未知のプログラムを入手する場合 (または類似) エラーメッセージ, 問題は、おそらく、オペレーティングシステムが見つからなかったことですJavaお問い合わせ どこを把握する必要がありますJavaお使いのコンピュータ上で、.bat または .sh ファイルで java リファレンスを編集して使用しようとしています。
  • jarファイルが見つからなかったり、エラーメッセージが見つからなかったり、Java.bat または .sh ファイルにリストされているクラスのいずれかを見つけることができません。 このソリューションは、.jarファイルがどこにあるのかを把握し、.bat または .sh ファイルに java リファレンスを編集することです。
  • バージョンを使用している場合Javaプログラムが実行されず、エラーメッセージが表示されます。 "main" java.lang.UnsupportedClassVersionError のスレッドで例外: 名/名 : サポートされていないメジャーマイナーバージョン お電話番号
    ソリューションは、最新のバージョンに更新することですJava.sh や .bat ファイルをプログラムに使用することを確認してください。

用具はさまざまな診断メッセージを印刷します:

  • 「ERROR」という言葉は、何かがうまくいかなかったときに使われます。 エラーを取得するのは迷惑ですが、エラーは問題に対処するために強制します。
  • 何かが間違っていたときに「WARNING」という言葉が使われますが、手順は完了できました。 これらはかなりまれです。
  • その他は、単なる有益なメッセージです。 \-verbose を追加できます。生成データセットXmlまたはダスDdsコマンド ラインは、問題の解決に役立ちます。

2つのツールは大きな助けです, しかし、あなたはまだ、このページ上のすべてのこれらの指示を注意深く読み、自分自身を重要な決定にしなければなりません.

生成データセットXml

  • 生成データセットXml データセットXMLのラフドラフトを生成することができるコマンドラインプログラムです。

GenerateDatasets を使用するよう強くお勧めします チャンクの作成ではなくXmldatasets.xml手で:

  • 生成データセット Xmlは秒単位で動作します。 手でこれを行うと、少なくとも1時間の仕事です。
  • 生成データセット Xml はより良い仕事をします。 手でこれを行うには、広範な知識が必要ERDDAP™作品紹介 手でより良い仕事をするということは違っています。 (Bob Simons は GenerateDatasets を使用する 最初のドラフトのためのXml、彼は書いたERDDAPお問い合わせ)
  • 生成データセット Xmlは常に有効なチャンクを生成しますdatasets.xmlお問い合わせ 任意のチャンクのdatasets.xmlあなたが書くことは、おそらく少なくともいくつかのエラーが、予防できないERDDAP™データセットの読み込みから。 多くの場合、これらの問題を診断するために時間がかかります. 時間を無駄にしないでください。 生成する データセット Xmlはハードワークを行います。 すると、 .xml を手元で refine することができます。

GenerateDatasets を使うとき Xmlプログラム:

  • Windows では、GenerateDatasetsXml を実行する初めて、GenerateDatasetsXml.bat ファイルをテキストエディタで編集して、Java へのパスを変更する必要があります。 Windowsが見つけることができるようにexeファイルJavaお問い合わせ
  • 生成データセット Xml は最初に EDDType を指定するように要求します (Erd Dapデータセット タイプ:) データセットの 詳細はこちらデータセットの種類一覧 (このドキュメント) 作業中のデータセットに適した型であることを把握します。 通常の EDDType に加えて、いくつかあります特殊/擬似データセットタイプ (例: THREDDSカタログをクロールして、チャンクを生成するdatasets.xmlカタログ内の各データセット) お問い合わせ
  • 生成データセット Xml は、その EDDType に固有の一連の質問をします。 質問は、必要な情報を収集しますERDDAP™データセットのソースへのアクセス 何かを理解するためにERDDAP™同じデータセットタイプをクリックして指定した EDDType のドキュメントを参照してください。データセットの種類一覧お問い合わせ

特別な文字で文字列を入力する必要がある場合 (例:先頭または末尾の空白文字、非ASCII文字) お問い合わせJSONスタイルの文字列 (\ 文字でエスケープされた特別な文字で) お問い合わせ たとえば、タブの文字だけを入力するには、「\t」(周囲のダブルクォートで、これは言うERDDAP™JSON スタイルの文字列です。

  • 多くの場合、回答の1つはGenerateDatasetsXmlが必要とするものではありません。 それから、 GenerateDatasets まで、質問に対する回答を改訂して、もう一度試すことができます Xml は、ソースデータを正常に見つけ、理解することができます。
  • 質問に正しく答えた場合 (または十分に正しく) , 生成データセット Xmlはデータセットのソースに接続し、基本情報を収集します (例えば変数名とメタデータ) お問い合わせ ローカルからあるデータセットの場合NetCDF .ncおよび関連するファイル、GenerateDatasets Xml は、最初にファイルを読み込みた後、ファイルの ncdump のような構造を印刷します。 これにより、GenerateDatasetsXml を通じて、その後のループでより良い質問に答える情報を得ることができます。
  • 生成データセット Xml はデータセットの XML のラフドラフトを生成します。
  • 診断情報とデータセットXMLのラフドラフトは、 bigParentディレクトリ /logs/GenerateDatasetsXml.log .
  • データセットXMLのラフドラフトが書き込まれます bigParentディレクトリ /logs/GenerateDatasetsXml.out .

"0 ファイル" エラーメッセージ

GenerateDataset を実行すると Xml またはダスDds、またはあなたがロードしようとするとEDDGridから...ファイルやEDDTableFrom ... ファイルのデータセットERDDAP™「0ファイル」エラーメッセージが表示され、ERDDAP™ディレクトリに 0 の一致するファイルが見つかりました (そのディレクトリに一致するファイルがあると思うとき) : : :

  • ディレクトリの完全な名前を指定していることを確認してください。 また、サンプルファイル名を指定した場合は、フルディレクトリ名を含むファイルのフルネームを指定してください。

  • ファイルがそのディレクトリにあることを確認してください。

  • ディレクトリ名のスペルを確認してください。

  • fileNameRegex をチェックします。 それは本当に、本当に簡単にregexesで間違いを作ることです。 テストの目的のために、すべてのファイル名に一致すべきregex .\*を試してください。 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)

  • プログラムを実行しているユーザーを確認してください (例:user=tomcat (お問い合わせ) トムキャット/ERDDAP) これらのファイルに対する'read'許可が必要です。

  • 一部のオペレーティングシステム (例えば、SELinux) システム設定に応じて、プログラムを実行したユーザーは、ファイルを持つディレクトリに導くディレクトリ全体のチェーンに対する「読み込み」権限を持つ必要があります。

  • 解決できない問題がある場合、サポートサポートできるだけ多くの情報で。 同様に、特定のデータセットの適切な EDDType が、そのデータセットで動作しないか、適切な EDDType がない場合、ファイルしてくださいGitHubでの問題点細部を使って (関連する場合のサンプルファイル) お問い合わせ  

GenerateDatasetから出力を編集する必要があります Xml がより良くなる

 

  • 免責事項: チャンクのdatasets.xml生成するデータセット Xml ISN'T パーフェクト. あなたは、そのXMLを読んで、PUBLICでそれを使う必要がありますERDDAPお問い合わせ 生成データセット RULES-OF-THUMBのロットのXmlのRELIESは、アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレント・アレン・アレント・アレン・アレン・アレント・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレント・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン・アレン あなたは、あなたが追加するXMLの信頼性を高めるために責任がありますERDDAPお問い合わせdatasets.xmlフリル

    (楽しい事実:私は叫びません。 歴史的法的理由のために、免責者はすべてのキャップに書かれなければなりません。)

GenerateDatasetsXmlの出力はラフドラフトです。 編集する必要はほとんどありません。 可能な限り出力を行なうための努力を続けてきましたが、限界があります。 多くの場合、必要な情報は単にソースメタデータから利用できません。

基本的な問題は、コンピュータプログラムを要求しているということです (生成データセットXml) 同じタスクを100人に与えた場合、100の異なる結果を得ることができます。 「右」の答えは一つありません。 明らかに、このプログラムはボブの心を読むために最も近い (あなたのものではありません) 、しかし、AIのような作業を行うために、AIプログラムのすべて理解されていないAIプログラムではありません。 (終身のAIプログラムの翌日が来るかもしれませんが、まだそうではありません。 もしかしたら、人間はより大きな問題があるかもしれません。 お問い合わせ)

  • 情報目的のために、出力は、グローバルなsourceAttributesと変数sourceAttributesをコメントとして表示します。ERDDAP™sourceAttributes を結合し、addAttributes (優先する) 結合する ユーザーに表示されている属性。 (そして他の属性は縦度、緯度、高度、深さおよび時間変数に自動的に加えられますERDDAP™実際にデータセットを作る) お問い合わせ  

  • sourceAttribute が気に入らないと、同じ名前で addAttribute を追加することで上書きしますが、異なる値 (値も削除したい場合) お問い合わせ  

  • すべてのaddAttributesコンピューター生成された提案です。 それらを編集! addAttribute が気に入らないと、変更します。  

  • その他を追加したい場合addAttributes, それらを追加.  

  • 変更したい場合destinationName変更します。 しかし、変更しないでくださいsourceNameお問い合わせ  

  • 注文を変更できますdataVariables またはそれらのいずれかを削除します。

    • それから使用することができますダスDds (詳しくはこちら) そのデータセットでXMLを繰り返しテストし、結果のデータセットが欲しいように見えるようにしますERDDAPお問い合わせ
    • 小さな変化を自由に作ろうdatasets.xml生成されたチャンク、例えば、より良い供給infoUrl, 要約, タイトル.

doNotAddStandardNames(標準名を追加しない)

実行時に\-doNotAddStandardNamesをコマンドラインパラメータとして含める場合 データセット Xmlは、発生します データセット Xmlは追加しませんstandard\_nameお問い合わせaddAttributes緯度、経度、高度、深さまたは時間という変数以外の任意の変数 (明らかであるstandard\_nameツイート) お問い合わせ 出力を生成から使用している場合は便利です データセット 直接XmlERDDAP™出力を編集することなく、生成する データセット Xmlはしばしば推測しますstandard\_name誤って。 (使用する前に、出力を編集しておくことをお勧めします。ERDDAPお問い合わせ) このパラメータを使用すると、推測されるため、他のマイナーな関連効果がありますstandard\_name他の目的のために、例えば、新しいを作成するために使用されることが多いlong\_name、colorBar の設定を作成する。

スクリプト

キーボードで対話的に質問に答え、追加のデータセットを生成するためにループする代替として、コマンドライン引数を1つのデータセットを生成するすべての質問に答えることができます。 生成データセット Xml はそれらのパラメータを処理し、出力を出力ファイルに書き、プログラムを終了します。

これを設定するには、まず、プログラムをインタラクティブモードで使用し、回答を書き留めます。 部分的な例を示します。 スクリプトを実行してみましょう: ./GenerateDatasetsXml.sh それから入る:EDDTableFromAsciiFiles それから入って下さい: /u00/data/ それから入って下さい: .\*\.asc それから入って下さい: /u00/data/sampleFile.asc それから入って下さい:ISO-8859-1

これを非対話的な方法で実行するには、このコマンドラインを使用します。 ./GenerateDatasetsXml.sh EDDTableFromAsciiFiles /u00/data/ .\.asc /u00/data/sampleFile.asc ISO-8859-1 基本的にはコマンドラインですべての回答をリストします。 これは、再実行GenerateDatasetsを必要とする方法で頻繁に変更するデータセットに便利です Xmlの (お知らせEDDGridFromThreddsカタログ) お問い合わせ

詳細:

  • パラメータにスペースや特別な文字が含まれている場合は、パラメータをパラメータとしてエンコードします。JSONスタイルの文字列、例えば、スペースと2つのmy変数\nライン。
  • パラメータとして空の文字列を指定したい場合は、: 何も
  • パラメータのデフォルト値を指定する場合は、: default を使用します。  
  • 生成データセット Xml は -i をサポート データセット Xml名前 ツイート タグ名 出力を指定した行に差し込むコマンドラインパラメータdatasets.xmlファイル (デフォルトは トームキャット /コンテンツ/erddap/datasets.xml) お問い合わせ 生成データセット Xml はデータセットの 2 行を探します XmlName:
        <!-- Begin GenerateDatasetsXml #*tagName someDatetime* -->  

そして、

        <!-- End GenerateDatasetsXml #*tagName someDatetime* -->  

これらの行間ですべてのものを新しいコンテンツに置き換え、someDatetime を変更します。

  • -i スイッチはのみ処理されます (変更と変更datasets.xml作ってみる) GenerateDataset を実行すると コマンドライン引数のXmlは、プログラムの1つのループに対するすべての質問に対するすべての回答を指定しています。 (上記「スクリプト」を参照してください。) (考えは: このパラメータはスクリプトを使って使うことです。 インタラクティブモードでプログラムを使用する場合 (キーボードの入力情報) あなたが望むものを生成する前に、XMLの誤ったチャンクを生成する可能性があります。)
  • Begin と End の行が見つからない場合は、これらの行と新しいコンテンツが直前に入力されます。</erddapDatasets>.
  • -I もあります (資本金 i) -i と同じ動作するテストの目的のために切り替えるが、呼び出されるファイルを作成するdatasets.xml 日付時間 変更を加えないdatasets.xmlお問い合わせ
  • GenerateDatasetを実行しない 一度に2つのプロセスで-iとXml。 変更の1セットのみが保存される可能性がございます。 深刻なトラブルがある (例えば、破損したファイル) お問い合わせ

"GenerateDatasetsXml -verbose" を使用する場合は、通常よりも多くの診断メッセージが表示されます。

特殊/擬似データセットタイプ

一般的に、GenerateDatasets の EDDType オプション この文書に記載されているEDDタイプのXmlマッチ (見るデータセットの種類一覧) 1 つを生成datasets.xml1つの特定のデータソースから1つのデータセットを作成するチャンク。 いくつかの例外と特別な例があります。

EDDGridErddapから

この EDDType は、すべてを生成するdatasets.xml作るために必要なチャンクEDDGridErddapからすべてのデータセットからEDDGridリモートのデータセットERDDAPお問い合わせ 元のままにするオプションがありますdatasetIDツイート (一部を複製することができるdatasetID既にあなたのERDDAP) 新しい名前を生成したり、ユニークになる (しかし、通常、人間が読めるようにはありません) お問い合わせ  

EDDTableFromErddapの特長

この EDDType は、すべてを生成するdatasets.xml作るために必要なチャンクEDDTableFromErddapの特長リモートのEDDTableデータセットからのデータセットERDDAPお問い合わせ 元のままにするオプションがありますdatasetIDツイート (一部を複製することができるdatasetID既にあなたのERDDAP) 新しい名前を生成したり、ユニークになる (しかし、通常、人間が読めるようにはありません) お問い合わせ  

EDDGridFromThreddsカタログ

この EDDType は、すべてを生成するdatasets.xmlすべてのために必要なチャンクEDDGridFromDapから再帰的にTHREDDSを介してクロールすることによって見つけることができるデータセット (サブサブ) カタログ THREDDSカタログのURLは、多くの形態があります。 このオプションは、/catalog/ の THREDDS .xml URL を、例えば、 https://oceanwatch.pfeg.noaa.gov/thredds/catalog/catalog.xml または https://oceanwatch.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/chla/catalog.xml
(関連 .html カタログはこちら) https://oceanwatch.pfeg.noaa.gov/thredds/Satellite/aggregsatMH/chla/catalog.html 、のために受け入れられませんEDDGridFromThreddsCatalogから。 問題がある場合EDDGridフォードズ カタログ:

  • 使用している URL が有効であることを確認してください。 /catalog/ と /catalog.xml で終了します。
  • 可能であれば、パブリックIPアドレスを使用する (例えば、 https://oceanwatch.pfeg.noaa.gov ) URL ではローカルの数値 IP アドレスではなく、 (例えば、 https://12.34.56.78 ) お問い合わせ THREDDSがローカルの数値IPアドレスを介してのみアクセス可能である場合は、[<変換ToPublicSourceUrl> (#converttopublicsourceurl(コンバート)) お問い合わせERDDAP™ユーザはパブリックアドレスを参照してくださいが、ERDDAP™ローカルの数値アドレスからデータを取得します。
  • 解決できない問題がある場合、トラブルシューティングのヒントをチェックお問い合わせ
  • 今の低レベルのコードは、Unidatanetcdf-javaカタログクローラコード (レッド。 カタログクラス) すべてのTHREDDSカタログを扱うことができるように (意外に複雑になる) お問い合わせUnidataそのコードについて。  
EDDGridLonPM180ErddapCatalogより

この EDDType は、datasets.xml作るEDDGridロンPM180すべてのデータセットからEDDGridデータセットERDDAP任意の経度値が180以上の値を持っている。

  • 可能であれば、パブリックIPアドレスを使用する (例えば、 https://oceanwatch.pfeg.noaa.gov ) URL ではローカルの数値 IP アドレスではなく、 (例えば、 https://12.34.56.78 ) お問い合わせ もし、ERDDAP™ローカルの数値 IP アドレス経由でのみアクセス可能です。 [<変換ToPublicSourceUrl> (#converttopublicsourceurl(コンバート)) お問い合わせERDDAP™ユーザはパブリックアドレスを参照してくださいが、ERDDAP™ローカルの数値アドレスからデータを取得します。  
EDDGridLon0360ErddapCatalogより

この EDDType は、datasets.xml作るEDDGridロン0360すべてのデータセットからEDDGridデータセットERDDAP任意の経度値が0未満である。

  • 可能であれば、パブリックIPアドレスを使用する (例えば、 https://oceanwatch.pfeg.noaa.gov ) URL ではローカルの数値 IP アドレスではなく、 (例えば、 https://12.34.56.78 ) お問い合わせ もし、ERDDAP™ローカルの数値 IP アドレス経由でのみアクセス可能です。 [<変換ToPublicSourceUrl> (#converttopublicsourceurl(コンバート)) お問い合わせERDDAP™ユーザはパブリックアドレスを参照してくださいが、ERDDAP™ローカルの数値アドレスからデータを取得します。  
EDDsFromFiles(ファイル)

スタートディレクトリに、ディレクトリとすべてのサブディレクトリを横断し、各グループが見つけたデータファイルのデータセットを作成します。

  • データセットが見つかった場合、データセットにはすべてのサブディレクトリが含まれます。
  • データセットが見つかられば、類似の兄弟のディレクトリは別のデータセットとして扱われます (たとえば、1990年代のディレクトリ、2000年代、2010年代は別々のデータセットを生成します。) お問い合わせ それらは手作業でコンバインするのは簡単です。最初のデータセットを変更するだけです。<fileDir> は、親ディレクトリに、その後のすべての兄弟データセットを削除します。
  • チャンクを生成しようとするだけdatasets.xmlディレクトリ内のファイル拡張子の最も一般的なタイプ (無視される .md5 をカウントしない) お問い合わせ つまり、10 のディレクトリを指定した.ncファイルと5 .txtファイル、データセットが生成されます。.ncファイルだけ。
  • これは、同じ拡張子を持つディレクトリ内のすべてのファイルが同じデータセットにあると仮定します。 ディレクトリがいくつかある場合.ncSSTデータといくつかのファイル.ncクロロフィルデータ付きのファイル、1つのサンプル.ncファイルが読み込まれる (SSTとは? クロロフィル?) そのタイプのファイルで1つのデータセットが作成されます。 そのデータセットは、おそらく同じデータセットに2種類のファイルをロードしようとすると合併症のせいでロードできません。
  • ディレクトリに最もよくある拡張子を持つファイルが4つ未満の場合、これはデータファイルではなく、ディレクトリをスキップしていると仮定します。
  • ディレクトリに4つ以上のファイルがある場合が、これは正常にディレクトリのチャンクを生成することができませんdatasets.xmlファイルの場合 (例えば、サポートされていないファイルタイプ) , これは生成しますEDDTableFromFileNames(ファイル名)ファイルのデータセット。
  • これがログファイルに書き込む診断の最後に、直前にdatasets.xmlチャンク, これは、すべてのサブディレクトリを横断することによって収集された情報の概要とテーブルを印刷します. 表は、すべてのサブディレクトリを一覧表示し、最も一般的な種類のファイル拡張子、ファイルの総数、およびこれらのファイル用に作成されたデータセットの種類を示します。 (お問い合わせ) お問い合わせ 複雑で深くネストされたファイル構造に直面している場合は、GenerateDatasetsの実行を検討してください。 EDDType=EDDsFromFiles と Xml でこの情報を生成します。
  • このオプションは、与えられたデータファイルのグループで最高の EDDType を推測する素晴らしい仕事をしないかもしれませんが、それは迅速で簡単で、試してみる価値があります。 ソースファイルが適している場合は、うまく機能し、生成するのに良い最初のステップですdatasets.xmlサブディレクトリの多いファイルシステムでは、それぞれ異なるデータセットからのデータファイルがあります。  
EDDTableFromEML と EDDTableFromEMLBatch

これらの特別な EDDType は、datasets.xml作るEDDTableFromAsciiFiles (EDDTableFromAsciiFiles) からの投稿表のそれぞれからのデータセットエコロジカルメタデータ言語XMLファイル。 "Batch" バリアントは、ローカルまたはリモートディレクトリ内のすべての EML ファイルで動作します。 別途ご確認ください。EDDTableFromEML のドキュメントお問い合わせ  

EDDTableFromInポート

この特別な EDDType は、datasets.xml作るEDDTableFromAsciiFiles (EDDTableFromAsciiFiles) からの投稿情報からのデータセットinport-xml ディレクティブファイル。 ソースデータファイルにアクセスできる場合 (inport-xml ファイルには、どこに探すべきかがわかります。) 作業データセットを作ることができます。ERDDAPお問い合わせ

次の手順では、GenerateDatasets を使用する方法について説明します。 作業中のデータセットを取得するには、inport-xml ファイルで XmlERDDAPお問い合わせ

  1. inport-xmlファイルにアクセスしたら (URL またはローカルファイルのいずれか) : GenerateDatasetを実行 Xml は、EDDType=EDDTableFromInPort を指定し、inport-xml URL またはフルファイル名を指定し、どのChild=0 を指定し、その他の要求された情報を指定する (知られている場合) お問い合わせ (この時点で、ソースデータファイルや名前を指定する必要はありません。) whatChild=0 の設定は GenerateDatasets を記述します。 Xml が情報を書き出す すべて お問い合わせ<実体属性情報><entity> の inport-xml ファイル (もしあれば) お問い合わせ また、inport-xml ファイルにリストされているすべてのダウンロード URL を含む背景情報要約を印刷します。
  2. 情報をすべて見る (データセットを生成する背景情報を含む Xmlプリント) ダウンロードURLにアクセスして (ツイート) ソースデータファイルを見つけるために (ツイート) お問い合わせ お問い合わせ (お問い合わせ) ダウンロード (お問い合わせ) アクセス可能なディレクトリにERDDAPお問い合わせ (ソースデータファイルが見つからない場合は、進行中のポイントはありません。)
  3. Generateを実行 データセット 再びXml。 ソースデータファイルがinport-xmlファイルのいずれかに該当する場合<実体属性情報><entity>'s を指定すると、 itEntityの番号 (例: 1, 2, 3, 3) お問い合わせERDDAP™ソース・データ・ファイル内の列名をエンティティティ情報に名前を付けて、任意の矛盾を承諾/拒否/修正するように試みます。 または、inport-xml ファイルが存在しない場合<実体属性情報><entity>'s は、どのChild=0 を指定します。
  4. チャンクでdatasets.xmlGenerateDatasets で作られたもの Xmlは[グローバル]を復活させます<addAttributes>> (#グローバルアトリビュート) 必要に応じて/望ましい。
  5. チャンクでdatasets.xmlGenerateDatasetsXml で作られたこと、Add/revise<dataVariable>> (#データ変数) 各変数を記述するために必要/desired として情報。 各変数を適切に識別することを確認してください ツイート<sourceName>> (#ソース名) (ソースに表示されるように) , ツイート<destinationName>> (#目的地名) (許可された文字よりも制限が大きいsourceName) , ツイート<ユニット> (#ユニット) (特にそれがである場合時間またはタイムスタンプ変数単位がフォーマットを指定する必要がある場合) と ツイート<missing\_value>> (#missing_value ディレクティブ) ,
  6. 仕上げが近い場合、繰り返し使用して下さいダスDdsデータセットの説明が有効で、データセットが表示されるかどうかをすぐに確認するツールERDDAP™お問い合わせ  

InPortを使用してデータセットを文書化するためにグループが使用すると、それは素晴らしいでしょうERDDAP™実際のデータを利用できるようにするため:

  • ERDDAP™今使うことができるソリューションなので、NOAAお問い合わせ研究成果公開アクセス (ログイン) 要件今は、将来的にいくつかの漠然とした時間ではありません。
  • ERDDAP™実際のデータは、メタデータだけでなく、ユーザーに利用できるようにします。 (メタデータはデータなしで何が良いですか?)
  • ERDDAP™メタデータのサポート (明らかに、変数の単位) , 考慮されている他のデータサーバソフトウェアとは異なります。. (メタデータなしのデータは何ですか?) メタデータがサポートしていないソフトウェアを使用するには、誤って使用したデータを招待することです。
  • ERDDAP™他のソフトウェアとは異なり、フリーでオープンソースソフトウェアは考慮されています。 受託開発ERDDAP™既に有料です。 サポートERDDAP™ご利用者は無料です。
  • ERDDAPあなたのグループを反映し、強調するために「出現は容易にカスタマイズすることができます (コメントはありませんERDまたはERDDAP) お問い合わせ
  • ERDDAP™すべてのデータセットにアクセスするための一貫した方法を提供します。
  • ERDDAP™さまざまな種類のデータファイルやリレーショナルデータベースからデータを読み込みます。
  • ERDDAP™ソースデータが多くのデータファイルにあるデータセットを含む大量のデータセットを扱うことができます。
  • ERDDAP™netCDF、ESRI .csv などの科学的なデータファイルタイプを含む、ユーザーの要求で、多くの種類のデータファイルにデータを書き込むことができます。ODV .txtお問い合わせ
  • ERDDAP™ユーザーの仕様に基づいて、データのサブセットのカスタムグラフとマップを作成できます。
  • ERDDAP™画像、ビデオ、またはオーディオファイルのコレクションなどの非データデータセットを扱うことができます。
  • ERDDAP™取付けられ、使用されて世界の60以上の機関お問い合わせ
  • ERDDAP™内で使用するために推奨されるデータサーバーの1つとしてリストされていますNOAAお問い合わせNOAAデータアクセス手続き型指令, 考慮されている他のソフトウェアとは異なります.
  • ERDDAP™はプロダクトのですNMFS/ / / /NOAAなので、NMFSそして、NOAA誇りのポイントであるべきNMFSそして、NOAAお問い合わせ

お問い合わせERDDAP™お問い合わせ 助けが必要な場合は、メッセージをメールでお送りください。ERDDAP™Googleグループ。  

addFillValue属性

この特別な EDDType オプションはデータセットタイプではありません。 いくつかのデータセットで \_FillValue 属性をいくつかの変数に追加できるツールです。 お問い合わせaddFillValue属性お問い合わせ  

findDuplicateの検索 タイムタイム

この特別な EDDType オプションはデータセットタイプではありません。 代わりに、GenerateDatasets を伝えます。 グリッドされたコレクションを調べるXml.nc (と関連) 重複した時間値でファイルのリストを見つけて印刷するファイル。 時間値を見ると、元の単位から元の単位へ変換します。"seconds since 1970-01-01"異なるファイルでは、異なる単位の文字列を使用します。 開始ディレクトリを提供する必要があります。 (か、または追跡のスラッシュなしで) ファイル名正規表現 (例:.\*\.nc ) ファイル内の時間変数の名前。  

ログイン

この特別な EDDType オプションはデータセットタイプではありません。 代わりに、GenerateDatasets を伝えます。 Xml を印刷するログイン\ のようなプリントアウト.nc,.ncml、または.hdfファイル。 これは実際にnetcdf-javaのNCダンプNCdumpのCバージョンよりも限られたツールです。 このオプションを使用する場合、GenerateDatasetsXml はオプションの 1 つを使用するように要求します。 (ヘッダー) , "-c" (調整変数) , "-vall" (デフォルト) , "-v var1;var2", "-v var1 (0,0:10,0:20) お問い合わせ これは、ncdumpなしで、それが何であるかを知ることは難しいので、これは便利です.nc,.ncml、または.hdfそのため、GenerateDataset に指定する EDDType を指定します。 Xml。 お問い合わせ.ncmlファイル、これは結果のncdump出力を印刷します.ncml ファイルがアンダーリングに適用される変更.ncまたは.hdfファイル。  

ダスDds

  • ダスDds コマンド・ライン・プログラムで、新しいデータセットでXMLで最初の試みを作成した後に使用できるdatasets.xmlお問い合わせ DasDds では、XML を繰り返しテストし、精製することができます。 DasDdsプログラムを使用する場合:
    1. Windowsでは、DasDdsを実行する初めて、DasDdsを編集する必要があります。 java へのパスを変更するテキストエディタでファイルをバットします。 Windowsが見つけることができるようにexeファイルJavaお問い合わせ
    2. DasDds は、datasetID作業中のデータセット
    3. DasDds は、そのデータセットを作成するdatasetIDお問い合わせ
      • DasDdsは、常に多くの診断メッセージを印刷します。 "DasDds -verbose" を使うと、DasDds は通常のものよりも多くの診断メッセージを出力します。
      • 安全のために、DasDdsは常にキャッシュされたデータセット情報をすべて削除します (ファイル) データセットを作成する前にデータセットのために。 これは、設定の同等です堅い旗集計したデータセットでは、データコンストラクタが見つけたファイル数を制限するために、fileNameRegex を一時的に調整したい場合があります。
      • データセットがロードできなかった場合 (何らかの理由で) , DasDds は、見つかった最初のエラーに対するエラーメッセージを停止し、表示します。 問題が何であるかを推測しようとしないでください。 ERROR のメッセージを注意深く読んで下さい。
        必要に応じて、前述の診断メッセージを読んで、より多くの手がかりや情報を見つけます。
      • データセットのXMLに変更してTHATの問題を解決しよう
        DasDds がデータセットを再度作成しようとします。
      • 各問題を繰り返し解決すると、最終的にすべての問題を解決します。
        データセットが読み込まれます。
    4. すべての DasDds 出力 (診断および結果) 画面に書かれ、 bigParentディレクトリ /logs/DasDds.log . .
    5. DasDds がデータセットを作成することができれば、DasDds は、.ダス (データセット属性構造) ,ログイン (データセット記述子 コンテンツ) .timeギャップ (時間ギャップ) 画面上のデータセットの情報は、それらに書き込む bigParentディレクトリ /logs/DasDds.out .
    6. 多くの場合、データセットのメタデータをクリーンアップし、DasDdsを再実行するために、データセットのXMLにいくつかの小さな変更をしたいです。

ボーナス サードパーティツール:ERDDAP-リント

ERDDAP-lintは、あなたのメタデータを改善するために使用できるアイリッシュ・マリン・インスティテュートのロブ・フラーとアダム・リードベッターのプログラムですERDDAP™データセット。ERDDAP-lint "ルールと簡単な静的Webアプリケーションが含まれているため、検証テストを強制的に実行できます。ERDDAP™サーバ。 すべてのテストは、Webブラウザで実行されます。 いいね!Unix/Linux lint ツール 既存のルールを編集したり、新しいルールを追加したりすることができます。 お問い合わせERDDAP-リント詳しくはこちら

このツールは、以前に作成したデータセットに特に便利です。現在のメタデータ設定を最新のものにしたいです。 たとえば、GenerateDatasetの初期バージョン Xmlは、グローバルに創造する努力を払っていなかったcreator\_name,creator\_email, 作成者\_type, またはcreator\_urlメタデータ。 利用するERDDAP-lint は、メタデータ属性が欠けているデータセットを識別します。

このツールを作成するためのロブとアダムのおかげで、利用可能なツールを作るERDDAP™コミュニティ。  

基本構成datasets.xmlファイル

必須タグとオプションタグは、datasets.xmlファイル (表示される回数) 以下が表示されます。 練習では、datasets.xmlたくさんあります<dataset> のタグと、他のタグのみを内部で使用<erddapDatasets> 必要に応じて。

 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <erddapDatasets>
   <angularDegreeUnits>...</angularDegreeUnits> <!-- 0 or 1 -->
   <angularDegreeTrueUnits>...</angularDegreeTrueUnits> <!-- 0 or 1 -->
   <cacheMinutes>...</cacheMinutes> <!-- 0 or 1 -->
   <commonStandardNames>...</commonStandardNames> <!-- 0 or 1 -->
   <convertInterpolateRequestCSVExample /> <!-- 0 or more -->
   <convertInterpolateDatasetIDVariableList /> <!-- 0 or more -->
   <convertToPublicSourceUrl /> <!-- 0 or more -->
   <decompressedCacheMaxGB>...</decompressedCacheMaxGB> <!-- 0 or 1 -->
   <decompressedCacheMaxMinutesOld>...</decompressedCacheMaxMinutesOld> <!-- 0 or 1 -->
   <drawLandMask>...</drawLandMask> <!-- 0 or 1 -->
   <emailDiagnosticsToErdData>...</emailDiagnosticsToErdData> <!-- 0 or 1 -->
   <graphBackgroundColor>...</graphBackgroundColor> <!-- 0 or 1 -->
   <ipAddressMaxRequests>...</ipAddressMaxRequests> <!-- 0 or 1 -->
   <ipAddressMaxRequestsActive>...<ipAddressMaxRequestsActive> <!-- 0 or 1 -->
   <ipAddressUnlimited>...<ipAddressUnlimited> <!-- 0 or 1 -->
   <loadDatasetsMinMinutes>...</loadDatasetsMinMinutes> <!-- 0 or 1 -->
   <loadDatasetsMaxMinutes>...</loadDatasetsMaxMinutes> <!-- 0 or 1 -->
   <logLevel>...</logLevel> <!-- 0 or 1 -->
   <nGridThreads>...</nGridThreads> <!-- 0 or 1 -->
   <nTableThreads>...</nTableThreads> <!-- 0 or 1 -->
   <palettes>...</palettes> <!-- 0 or 1 -->
   <partialRequestMaxBytes>...</partialRequestMaxBytes> <!-- 0 or 1 -->
   <partialRequestMaxCells>...</partialRequestMaxCells> <!-- 0 or 1 -->
   <requestBlacklist>...</requestBlacklist> <!-- 0 or 1 -->
   <slowDownTroubleMillis>...</slowDownTroubleMillis> <!-- 0 or 1 -->
   <subscriptionEmailBlacklist>...</subscriptionEmailBlacklist> <!-- 0 or 1 -->
   <unusualActivity>...</unusualActivity> <!-- 0 or 1 -->
   <updateMaxEvents>...</updateMaxEvents> <!-- 0 or 1 -->

   <standardLicense>...</standardLicense> <!-- 0 or 1 -->
   <standardContact>...</standardContact> <!-- 0 or 1 -->
   <standardDataLicenses>...</standardDataLicenses> <!-- 0 or 1 -->
   <standardDisclaimerOfEndorsement>...</standardDisclaimerOfEndorsement> <!-- 0 or 1 -->
   <standardDisclaimerOfExternalLinks>...</standardDisclaimerOfExternalLinks> <!-- 0 or 1 -->
   <standardGeneralDisclaimer>...</standardGeneralDisclaimer> <!-- 0 or 1 -->
   <standardPrivacyPolicy>...</standardPrivacyPolicy> <!-- 0 or 1 -->
   <startHeadHtml5>...</startHeadHtml5> <!-- 0 or 1 -->
   <startBodyHtml5>...</startBodyHtml5> <!-- 0 or 1 -->
   <theShortDescriptionHtml>...</theShortDescriptionHtml> <!-- 0 or 1 -->
   <endBodyHtml5>...</endBodyHtml5> <!-- 0 or 1 -->

   <user username="..." password="..." roles="..." /> <!-- 0 or more -->

   <dataset>...</dataset> <!-- 1 or more -->
 </erddapDatasets>

今後、他のエンコーディングが許可される可能性はありますが、今ではISO-8859-1のみが推奨されます。  

Xincludeの特長

バージョン 2.25 の新機能は Xinclude のサポートです。 これは、SAXパーサーを使用する必要があります<使用SaxParser>true</useSaxParser> を setup.xml で指定します。 これにより、各データセットを独自のファイルに書き込むことができます。datasets.xml, データセット定義の部分を再利用, または両方. 例えば、EDDTestDataset.java の使い方変数定義を再利用するためにXincludeを設定します。  


インフォメーション

と働くdatasets.xmlfile は非トリバイアルプロジェクトです。 注意してお読みください。 ピックアップ後データセットのタイプ詳しくはこちらをご覧ください。  

データセットタイプの選択

ほとんどの場合、1つだけありますERDDAP™特定のデータソースに適したデータセットタイプ。 少数の場合 (例:.ncファイル) , いくつかの可能性があります。, しかし、通常、それらの一つは間違いなく最善です. あなたがしなければならない第一と最大の決定は次のとおりです。多次元配列のグループとしてデータセットを扱うのは適切です (もしそうなら、EDDGridデータセットの種類) またはデータベースのようなデータのテーブルとして (もしそうなら、EDDTable データセットタイプ) お問い合わせ  

データをそのまま活用

通常、データソースを変更する必要はありません (例えば、ファイルを他のファイルタイプに変換する) そのためにERDDAP™お問い合わせ 前提の1つERDDAP™データソースはそのまま利用します。 通常、この作品はうまくいきます。 いくつかの例外は:

  • 地域データベースとカサンドラ お問い合わせERDDAP™リレーショナルデータベースやCassandraから直接データを配信できます。 しかし、セキュリティ、バランシング、およびパフォーマンスの問題については、同じデータで別のデータベースを設定するか、データを保存するかを選択できます。NetCDFv3の.ncファイルとERDDAP™新しいデータソースからデータを配信します。 お問い合わせEDDTableFromデータベースそして、EDDTableFromCassandraさんお問い合わせ
  • データソースをサポートしていません。ERDDAP™大量のデータソースに対応できますが、1000年代に世界が満たされています (数百万?) 異なるデータソースの (同様に、データファイル構造) お問い合わせ お問い合わせERDDAP™データソースをサポートしていません。
    • データソースがNetCDF .ncファイル、使用することができますログインデータをオンザフライで変更したり、使用するNCOデータを永続的に変更する。
    • データをデータソースタイプに書き込むことができます。ERDDAP™サポートNetCDF3.ncファイルがバイナリファイルなので、一般的な推奨事項です。ERDDAP™すぐに読むことができます。 表データの場合、データの収集にデータを保存することを検討してください.nc使用するファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 一貫性のあるレイド配列のデータ構造なので、ERDDAPお問い合わせEDDTableFromNcCFファイル)。 論理的に整理されている場合 (スペースと時間のチャンクのためのデータとそれぞれ) ,ERDDAP™データを素早く抽出することができます。
    • そのデータソースのサポートをリクエストすることができます。ERDDAP™Chrisにメールを送る noaaa.govのジョン
    • 処理するコードを書くことで、そのデータソースのサポートを追加できます。 お問い合わせお問い合わせERDDAP™プログラマガイド
  • 速度 --ERDDAP™他の人よりもはるかに高速なデータソースからデータを読むことができます。 例えば、読み込みNetCDFv3の.ncファイルは高速で、ASCIIファイルを読み込みが遅くなります。 大きい場合 (>1000の) または巨大 (>10,000円) ソースデータファイル数、ERDDAP™一部のデータリクエストは、ゆっくり対応いたします。 通常、違いは人間に気づくことができません。 しかし、そう考えるとERDDAP™特定のデータセットでは、データをより効率的な設定に書き込むことで問題を解決する場合があります。 (通常: 少数、よく構造化される、NetCDFv3の.ncファイル) お問い合わせ 表データについては、このアドバイスお問い合わせ  

ログイン

多くの場合、dataset.xml で作業データセットの説明のコピーを作成し、それを変更することで、データセット用の XML を生成することが容易です。

特殊キャラクターのエンコーディング

お問い合わせdatasets.xmlXMLファイルです。・エンコードお問い合わせ<"&"、"<と ">" 間違った:<タイトル> タイム&ティデス</タイトル> 右:<タイトル> 時間 & ティデス</タイトル>  

XML は構文エラーを許容しません

dataset.xml ファイルを編集した後、結果が正しいかを検証するのは良い考えです。よく形成されたXMLXMLテキストをXMLチェッカーに貼り付けるxmlvalidationのお問い合わせ  

トラブルシューティングのヒント

特別な変数

  • 経緯、緯度、高度 (または深さ) 、および時間 (ログイン) 変数 destinationNamesは特別です。
  • 一般:
    • LLAT 変数は、ERDDAP™軸変数の (お問い合わせEDDGridデータセット) データ変数 (EDDTable データセット用) destinationName"longitude", "latitude", "altitude", "depth",""time"お問い合わせ
    • 可能な限りこれらの変数にこれらの標準名を使用するように強くお勧めします。 どれも必要です。 これらの特別な変数名を使用しない場合、ERDDAP™彼らの意義を認識しません。 例えば、LLAT 変数はグラフを作成することによって特に扱われます ( datasetID .グラフ) : X軸変数が "longitude" で Y 軸変数が "latitude" の場合、マップを取得します。 (標準的な投影を使用して、そして土地のマスク、政治の境界、等と。) グラフの代わりに。
    • ERDDAP™LLAT 変数にメタデータの多くを自動的に追加します。 (例えば "ioos\_categoryお問い合わせユニット"、"\_CoordinateAxisType" のような複数の標準関連属性) お問い合わせ
    • ERDDAP™自動的に、オンザフライ、選択したデータサブセットのLLAT値に関連する多くのグローバルメタデータを追加します。 (たとえば "geospatial\_lon\_min") お問い合わせ
    • これらのメタデータ規格をサポートするクライアントは、時間と空間のデータを配置するために、追加したメタデータを活用することができます。
    • クライアントは、変数の名前が関連するすべてのデータセットで同じであるため、LLAT 変数を含むクエリを簡単に生成できます。
  • "longitude" 変数と "latitude" 変数の場合:
    • 利用するdestinationNames 「経度」と「緯度」のみユニットそれぞれ、度\_eastと度\_northです。 データがこれらの要件を満たしていない場合、異なる変数名を使用する (例えば、x、y、lonRadians、latRadians) お問い合わせ
    • 経度と緯度データが異なる単位で表現されているため、異なる場合destinationNames、例えば、lonRadiansとlatRadiansは、グラフを作る ( datasetID .グラフ) グラフを作る (例えば、時系列) マップではなく。
  • 「高度」変数および「深さ」変数のため:
    • 利用するdestinationName標高上のデータ距離を識別する「高度」 (肯定的な="up" 値) お問い合わせ 必要に応じて、海底に値がマイナスである場合(または使用する場合など)、海底の下の距離に対して「高度」を使うことができます。 ツイート<att 名称scale\_factor"type="int"> - 1</att> (#scale_factor(スケールファクター)) 深さ値を高度の値に変換します。
    • 利用するdestinationName海レベル以下のデータ距離を識別するための「深さ」 (肯定的な="ダウン" 値) お問い合わせ
    • データセットには「高度」と「深さ」の両方の変数が存在しません。
    • これらの変数名については、ユニット"m", "m", "m" でなければなりません。 ユニットが異なる場合 (例えば, fathoms) 、使用することができます ツイート<att 名称scale\_factorツイート 詳しくはこちら バリュー </att> (#scale_factor(スケールファクター)) と [<att name="units">メーター</att> (#ユニット) 単位をメートルに変えるために。
    • データがこれらの要件を満たしていない場合は、異なるdestinationName (例えば、上向き、距離 トーボトム) お問い合わせ
    • 縦型CRSを知っている場合は、メタデータに「EPSG:5829」を指定してください。 (海のレベルの上の即時の高さ) , "EPSG:5831" (海のレベルの下の即時の深さ) , または "EPSG:5703" (NAVD88の高さ) お問い合わせ
  • お問い合わせ"time"変数:
    • 利用するdestinationName "time"date+time 全体を含む変数のみ (または日付、それがすべてある場合) お問い合わせ 例えば、日付とtimeOfDayの別のカラムがある場合、変数名は使用しません。"time"お問い合わせ
    • お問い合わせユニットtime と timeStamp 変数の unit 属性に関する詳細情報
    • 時間変数および関連タイムタイム スタンプ変数ソースの時刻形式からデータを常に変換するという点でユニークです。 (それが何か) 数値値に (1970-01-01T00:00:00Z以来の秒) または 文字列の値 (ISO 8601の:2004年 (Eメール) フォーマット) , 状況に応じて.
    • ユーザがタイムデータをリクエストする場合、数値として時刻を指定することでリクエストできます。 (1970-01-01T00:00:00Z以来の秒) または 文字列の値 (ISO 8601の:2004年 (Eメール) フォーマット) お問い合わせ
    • ERDDAP™ユーティリティを持っている数値変換 文字列の時間から/までの時間お問い合わせ
    • お問い合わせ使い方ERDDAP時間とともにお得な情報お問い合わせ

なぜ2つの基本データ構造?

  • 人間クライアントやコンピュータクライアントがデータセット構造の複雑なセットに対処するのは難しいので、ERDDAP™2つの基本的なデータ構造だけを使用して下さい:
  • 確かに、これらの構造ではすべてのデータが表現できるわけではありませんが、その多くは可能です。 特にテーブルは、非常に柔軟なデータ構造です (リレーショナルデータベースプログラムの成功を見る) お問い合わせ
  • これにより、データクエリを簡単に構築できます。
  • これにより、データ応答は単純な構造を持ち、より広範囲な標準ファイルタイプでデータをより簡単に配信できます。 (シンプルなデータ構造をサポートすることが多い) お問い合わせ これは私たちが設定した主な理由ですERDDAP™この方法。
  • これは、順番に、私たちにとって非常に簡単です (誰にも) クライアントソフトウェアを全て書き込むERDDAP™データセット。
  • これにより、異なるソースからデータを比較しやすくなります。
  • 他のデータ構造でデータを操作するために使用している場合、このアプローチは単純であるか、不十分であると考えることは非常に認識しています。 しかし、すべてのデータ構造はトレードオフを持っています。 どれも完璧です。 do-it-all構造体でさえ、その欠点を持っています。それらと一緒に作業することは複雑であり、ファイルは特別なソフトウェアライブラリでのみ書き込みまたは読み込むことができます。 ご了承の程ERDDAP's はそれに対処するのに十分なアプローチ、それがその利点を持っていることを見つけるかもしれません (データ応答を保持できる複数のファイルタイプのサポート) お問い合わせ ザ・オブ・ザ・ERDDAP™スライドショー (特にデータ構造のスライド) これらの問題についてたくさん話します。
  • そして、このアプローチがあなたに奇妙に聞こえても、ほとんどERDDAP™クライアントは気付くことはありません - それらは単にすべてのデータセットが素敵なシンプルな構造を持っていることを見て、彼らは彼らが様々なファイル形式で返された様々なソースからデータを得ることができます感謝されます。  

サイズ:

  • ソースデータセット DON'T のグリッド変数が同じ軸変数を共有するとどうなりますか?
    インスタグラムEDDGridデータセット、すべてのデータ変数は使用しなければ (シェア) 軸変数のすべて。 そのため、ソースデータセットが1セットの寸法と異なる種類の変数を持ついくつかの変数がある場合、あなたは2つのデータセットを作る必要がありますERDDAPお問い合わせ 例えば、ERDDAP™「Some Title」と題するデータセット (表面で) " 使用する変数を保持する\[タイムタイム\]\[最近の投稿\]\[経緯\]次元および別の作って下さいERDDAP™「Some Title」と題するデータセット (深さで) " 使用する変数を保持する\[タイムタイム\]\[高度の高度\]\[最近の投稿\]\[経緯\]お問い合わせ または、データソースを変更して、単一の値で次元を追加することができます (例えば、altitude=0) 変数を一貫したものにするため。

ERDDAP™複雑なデータセットを扱いません (例えば、三角形のメッシュを使用するモデル) お問い合わせ これらのデータセットは、ERDDAP™2 つ以上のデータセットを作成するERDDAP™ (各新しいデータセット内のすべてのデータ変数が同じ軸変数のセットを共有するように) しかし、それはユーザーが望むものではありません。 一部のデータセットでは、データセットの定期的なグリッドバージョンの作成を検討し、元のデータに加えてそれを提供する可能性があります。 一部のクライアントソフトウェアは、通常のグリッドのみに対処することができるため、これを行うことで、追加のクライアントに到達します。  

グリッドデータ

一部のグリッドデータには複雑な構造があります。 例えば、衛星レベル2 (「空中トラック」) 単純な投影は使用しません。 モデラー (その他) 多くの場合、さまざまな非円筒形の投影に関するグリッドデータを扱う (例えば、conic、極端のステレオグラフィック、tripolar) または未構造のグリッドで (より複雑なデータ構造) お問い合わせ 一部のエンドユーザーは、このデータをそのまま望んでいるので、情報を失うことはありません。 お客様には、ERDDAP™つまり、データを扱うことができます。ERDDAP™管理者は、元のデータセットを複数のデータセットに分割し、同じ軸変数を共有する変数を含む各部分を分割します。 はい、それは関係者と異なり、ほとんどとは違うようですOPeNDAPサーバ。 しかし、ERDDAP™さまざまなフォーマットで利用可能なデータを作成することを強調します。 だからこそできるERDDAP™より均一なデータ構造を使用する/要求します。 それは少し厄介ですが (i.e., 予想以上に異なる) ,ERDDAP™プロジェクトのデータを配布することができます。

\[はい、ERDDAP™データ構造のためのより緩い条件が、出力フォーマットのための条件を保つことができます。 しかし、それは、データがファイルタイプに収まらないので、さまざまな構造を持つデータに対する有効な要求が異なるため、多くのユーザー、特に初心者の間で混乱につながるだろう。 現在のシステムの設計に戻り続けます。\]

一部のエンドユーザーは、さまざまな状況で簡単に使用できるため、Equirectangular / plate carrée や Mercator などのラロン円筒形の投影でデータを望む人もいます。 これらの状況では、ERDDAP™他のソフトウェアを使用する管理者 (NCOお問い合わせMatlabお問い合わせ ログイン IDVとは? お問い合わせ) データをジオグラフィックに再プロジェクトする (長方形の映写/版のCarrée) またはその他の円筒状投影およびその形態のデータをERDDAP™別のデータセットとして。 これは、衛星レベル2データをレベル3データに変換したときに何をすべきかに似ています。 そのようなツールは、NCOデータを登録するための拡張オプションを提供しています。

GISとデータの再構築

GISの世界は、しばしば指向マップであるため、GISプログラムは、通常、異なる投影でマップ上のデータをプロットするためのサポートを提供しています。

現在、ERDDAP™データを再プロジェクトするツールはありません。 代わりに、外部ツールを使用して、データセットのバリエーションを作成することをお勧めします。元のフォームから、データを長方形にリプロジェクションしています。 (緯度経度) 配列 のために適したERDDAPお問い合わせ

私たちの意見では、CF/DAP世界はGISの世界とは少し異なり、少し下がるレベルで動作します。ERDDAP™それを反映させます。 一般的には、ERDDAP™主にデータを扱うように設計されています (地図ではなく) 変更したくない (例:リプロジェクト) そのデータ。 お問い合わせERDDAP™, グリッドされたデータは、多くの場合/通常/できればlat lon 値と円筒形の投影と関連しています。, いくつかの投影のx,y値ではありません。. どんな場合でも、ERDDAP™データの投影で何もしません。 つまり、現在の投影で、リプロジェクションがデータへの大きな変化であり、ERDDAP™重要な変更に関与したくない。 また、その後のユーザーは、再びデータを処理し直す可能性があるため、たったひとつのリプロジェクションを行わないと良いでしょう。 (ですから、ERDDAP™管理者は、異なる投影でデータを提供したい、罰金; データをオフラインで再プロジェクトし、異なるデータセットとして提供したいERDDAPお問い合わせ 衛星ベースのデータセットの多くは、NASAがレベル2を呼び出しているものとして提供されています (スワス) レベル3として (長方形の投射) バージョン。) いつかERDDAP™地図を作る (直接またはWMSまたは KML) ,ERDDAP™現在、Equirectangular / plate carrée のプロジェクションで地図を作るだけを提供しています。幸いにも、ほとんどのマッピングプログラムで受け入れられています。

お問い合わせERDDAP™他のソフトウェアを使用する管理者 (NCOお問い合わせMatlabお問い合わせ ログイン IDVとは? お問い合わせ) データをジオグラフィックに再プロジェクトする (長方形の映写/版のCarrée) またはその他の円筒状投影およびその形態のデータをERDDAP™別のデータセットとして。 これは、衛星レベル2データをレベル3データに変換したときに何をすべきかに似ています。 そのようなツールは、NCOデータを登録するための拡張オプションを提供しています。

お問い合わせERDDAP™将来的には他の投影で地図を提供するための組み込みツールがあります。 今後、GISの世界へのより良いつながりを持つことを願っています。 (現在のもの以外WMSサービス) お問い合わせ この「モダン」の世界では、CF/間のリンクがひどいDAP世界とGISの世界はまだ弱い。 どちらのものが To Do リストにあります。 (あなたが助けたいなら、特に接続してERDDAP™MapServer に、Chris にメールを送ってください。 noaaa.gov のジョン。)

データの種類

ERDDAP™以下のデータ型をサポートしています。 (名前は場合の敏感です;'u'prefix は "unsigned" を表します。他のシステムの名前の多くはビット数です。) : : :

バイト

  • バイト -128〜127の範囲で整数値を署名しました。 他のシステムでは、int8と呼ばれることもあります。 これは SQL と Cassandra によって "tinyint" と呼ばれます。 ERDDAP™コンバーターログインいくつかのソースから (例:SQLとCasandra) バイトにERDDAP™0=false, 1=true, 127=の値でmissing\_valueお問い合わせ

uバイト

  • uバイト 0 から 255 の範囲で整数値を符号化しました。 他のシステムでは、これは時々uint8と呼ばれます。

ショート

  • ショート -32768 から 32767 の範囲で整数値を署名しました。 他のシステムでは、int16 と呼ばれることもあります。 SQL と Cassandra の「smallint」と呼ばれます。

ushortショート

  • ushortショート 0〜65535の範囲で整数値を符号化しました。 他のシステムでは、これは時々uint16と呼ばれます。

ログイン

  • ログイン -2147483648 から 2147483647 の範囲で整数値を署名しました。 他のシステムでは、int32と呼ばれることもあります。 これは「整数」と呼ばれます|インフォメーション (お問い合わせ) 「Cassandra による SQL と "int" による。

ログイン

  • ログイン 0〜4294967295の範囲で整数値を符号化しました。 他のシステムでは、これは時々uint32と呼ばれます。

ロング

  • ロング -9223372036854775808 から 9223372036854775807 の範囲で整数値を署名しました。 他のシステムでは、int64と呼ばれることもあります。 これは "bigint" と呼ばれます|インフォメーション (お問い合わせ) 「Cassandra による SQL と "bigint" による。 多くのファイルタイプが長いデータをサポートしていないため、使用は推奨されません。 可能であれば、代わりに2倍を使う (詳しくはこちら) お問い合わせ

ログイン

  • ログイン 0から18446744073709551615の範囲の符号なし整数値 他のシステムでは、これは時々uint64と呼ばれます。 複数のファイルタイプが ulong データをサポートしていないため、使用は推奨されません。 可能であれば、代わりに2倍を使う (詳しくはこちら) お問い合わせ

フローティング

  • フローティング 約+/- 3.402823466e+38の範囲のIEEE 754フロートです。 他のシステムでは、これはfloat32と呼ばれます。 これは「本物」と呼ばれます|フローティング (お問い合わせ) |デシマル (お問い合わせ) |インフォメーション (お問い合わせ) 「CassandraのSQLとfloatによる」 NaN は、No-a-Number を意味します。 ERDDAP™正味値と負の無限値をNaNに変換します。

ダブル

  • ダブル IEEE 754のダブルサイズで、 +/- 1.7976931348623157E+308。 他のシステムでは、これはfloat64と呼ばれます。 これは「二重精密」と呼ばれます|フローティング (お問い合わせ) |デシマル (お問い合わせ) |インフォメーション (お問い合わせ) 「Cassandra による SQL と "double" による。 NaN は、No-a-Number を意味します。 ERDDAP™正味値と負の無限値をNaNに変換します。

チャート

  • チャート シングル、2バイト (16ビット) Unicode UCS-2 文字から\u0000 (#0) コース\uffff (番号65535) お問い合わせ \uffff's の定義は NaN の二重価値に類似する Not-a-Character です。 char の使用は、複数のファイルタイプがcharsをサポートしていないか、1バイトのcharsをサポートしていないため、推奨されるものではありません。 (詳しくはこちら) お問い合わせ 代わりに String を使用して検討してください。 char 変数を使用してグラフを作成できます。ERDDAP™文字をUnicodeのコードポイント番号に変換し、数値データとして使用できる。

ストリング

  • ストリング 0 以上のシーケンス、2 バイト (16ビット) Unicode UCS-2 文字お問い合わせ ERDDAP™0 の長さの文字列を欠落値として使用/解釈します。ERDDAP™真の null 文字列をサポートしません。 理論的最大弦長は2147483647文字ですが、やや短い弦でも様々な場所では様々な問題があります。 使用条件ERDDAPSQL の文字、varchar、文字が変化する、バイナリ、varbinary、インターバル、配列、マルチセット、xml などの文字列。他のどのデータベースもクリーンに収まらないERDDAP™データ型。 使用条件ERDDAP'Cassandra's "text" の文字列と、他のどのCassandraのデータタイプでもきれいに収まらないERDDAP™データ型。  

新着情報ERDDAP™v2.10,ERDDAP™符号なし整数型を内部でサポートし、データリーダーやライターの限られたサポートを提供していません。

データの種類制限

お問い合わせERDDAP™仮想データセットを持つシステムとして、データセットのソースからデータを内部データモデルに読み込み、さまざまなサービスにデータを書き込みすることにより動作します(例:(OPeN)DAP,WMS) ユーザリクエストに対応するファイルタイプ。

  • 各入力リーダーは、データタイプのサブセットをサポートしていますERDDAP™サポート データを読み込むERDDAP'内部データ構造は問題ではありません。
  • 各出力ライターは、データタイプのサブセットにも対応しています。 それが問題だからERDDAPたとえば、長いデータをサポートしていないファイルタイプに長いデータがスクイーズする必要があります。  

以下は制限の説明です。 (どれも) さまざまな出力ライターとどのようにERDDAP™問題に対処する。 このような合併症は、固有の部分ですERDDAP「システムを相互運用可能にするという目標」

アスキー

  • アスキー (.csvの.tsv等。) テキストファイル -
    • すべての数値データは文字列表現で書かれています (0 の長さの文字列として表示されていないデータ値で) お問い合わせ

    • しかし、ERDDAP™長い値と ulong 値を ASCII テキストファイル、多くの読者に正しく書きます (例:スプレッドシートプログラム) 長い値とulong値に正しく対処できず、代わりにそれらを二重値に変換できます (場合によっては精密の損失と) お問い合わせ

    • 全Unicode文字を扱うJSON 文字列で、Char と String のデータが書かれています。 (当然のことながら、ASCII #127 を超える「珍しい」文字は「\u20ac」としてユーロ文字が現れます。) お問い合わせ

ジェイソン

  • ジェイソン (.json,.jsonlCSV等。) テキストファイル -
    • すべての数値データは文字列表現で書かれています。
    • 全Unicode文字を扱うJSON 文字列として、Char と String のデータが書かれています。 (当然のことながら、ASCII #127 を超える「珍しい」文字は「\u20ac」としてユーロ文字が現れます。) お問い合わせ
    • すべての数値データ型の値がnullとして表示されます。  

.nc3ファイル

  • .nc3つのファイルは、署名されていない整数データ型をサポートしていません。 CF v1.9 以前は、CF は署名されていない整数型をサポートしていませんでした。 これに対処するため、ERDDAP™2.10+ は NUG 標準に従い、常に "true" または "false" の値を "\_Unsigned" 属性を追加し、データを符号化されていないか、署名された変数からあるかを示す。 すべての整数属性は署名された属性として書かれています (例:バイト) 署名された値(例えば、uバイト)actual\_range値 0 から 255 までの属性は、値 0 から -1 までのバイト属性として表示されます。(2 の補完値の逆)。 (署名された)整数属性が符号化されていない属性として読み取るべきでない方法はありません。ERDDAP™読み込み時に "\_Unsigned" 属性をサポート.nc3ファイル。
  • .nc3つのファイルは、長いデータ型やulongデータ型をサポートしていません。ERDDAP™それらを一時的に変換することにより、これを二重変数に引き出す。 倍は正確に+/- 9,007,199,254,740,992まですべての値を表すことができます 2^53 です。 これは不完全な解決です。Unidataマイナーなアップグレードを行うことを拒否.nc3 この問題と関連の問題に対処するため、引用.nc3 (主な変更点) ソリューションとして。
  • CF仕様 (v1.9の前に) char のデータ型をサポートしていますが、 char が char 配列のビルディングブロックとしてのみ意図されている場合は、 char が char 配列のブロックとして有効に 文字列 である場合、それは不明です。 メーリングリストへの質問は、回答を混乱させるだけです。 これらの合併症のせいで、char変数を避けるのが最善ですERDDAP™可能な限り文字列変数を使う。
  • 伝統的に、.nc3 ファイルは ASCII-encoded でサポートされている文字列のみ (7ビット、 #0 - #127) 文字。 ログイン (そして、ERDDAP) それを拡張する (開始 ~2017年) "ISO-8859-1" の値で "\_Encoding" という属性を含む (ASCIIの拡張子は、各8ビット文字の256値を定義します。) または "UTF-8" で文字列データがエンコードされるかを示します。 その他のエンコーディングは法的ですが、不法です。  

.nc4 ファイル

  • .nc全4ファイルに対応ERDDAPデータ型

NCCSVファイル

NCCSV 1.0 ファイルは、署名されていない整数データ型をサポートしていません。 NCCSV 1.1+ファイルすべての署名されていない整数データ型をサポート。  

DAP

  • (OPeN)DAP (.das、.dds、.asc ASCIIファイル、.dods バイナリファイル) ・
    • (OPeN)DAP短い、ushort、int、uint、浮遊物および二重価値を正しく扱う。
    • (OPeN)DAP「バイト」のデータタイプは、その名前が署名されていないと定義されています。ERDDAP™署名として「バイト」を処理しました(OPeN)DAPサービス。 これに対処するために、ERDDAP™2.10+ は NUG 標準に従い、常に "true" または "false" の値で "\_Unsigned" 属性を追加します。ERDDAP™バイトまたは ubyte を呼び出します。 バイト属性と ubyte 属性は、署名された値を持つ "バイト" 属性として書かれています(例えば、 uバイトactual\_range値 0 から 255 までの属性は、値 0 から -1 までのバイト属性として表示されます。(2 の補完値の逆)。 "byte" 属性が ubyte 属性として読み込まれるべきか分かりやすい方法はありません。
    • (OPeN)DAP署名されたか、署名されていない長さをサポートしません。ERDDAP™それらを一時的に変換することにより、これを二重変数と属性に扱います。 倍は正確に9,007,199,254,740,992まですべての値を表すことができます 2^53 です。 これは不完全な解決です。OPeNDAP (組織について) マイナーなアップグレードを行うことを拒否DAP引用するこのおよび関連の問題に対処する2.0DAP3 (主な変更点) ソリューションとして。
    • なので(OPeN)DAPchar のデータ型を別々にし、技術的に 1 バイトの ASCII 文字のみをサポートしていません。 (#0 - #127) 文字列では、char のデータ変数は 1 文字の長さの文字列として表示されます。(OPeN)DAP.das、.dds、および.dodsの応答。
    • 技術的に、(OPeN)DAP仕様は、ASCIIエンコードされた文字でのみ文字列をサポートしています (#0 - #127) お問い合わせ ログイン (そして、ERDDAP) それを拡張する (開始 ~2017年) "ISO-8859-1" の値で "\_Encoding" という属性を含む (ASCIIの拡張子は、各8ビット文字の256値を定義します。) または "UTF-8" で文字列データがエンコードされるかを示します。 その他のエンコーディングは法的ですが、不法です。  

データ型コメント

  • 多くのファイルタイプにおいて、長く、ulong、およびcharデータに対するサポートが悪いため、これらのデータ型の使用を開示します。ERDDAPお問い合わせ 可能であれば、長くてulongの代わりに2倍を使うと、charの代わりに String を使う。  
  • メタデータ - なぜなら(OPeN)DAP's .das と .dds の応答は、長い属性や ulong 属性やデータ型をサポートしていない (代わりにそれらをダブルスとして表示) 代わりに使用したいかもしれませんERDDAP's はメタデータの表的表現をhttp.../erddap/ インフォメーション / / / / datasetID .html ウェブページ (例えば、 https://coastwatch.pfeg.noaa.gov/erddap/info/cwwcNDBCMet/index.html ) (他のファイルタイプ、例えば、.csv で取得できるもの.htmlTable,.itx,.json,.jsonlCSV1,.jsonlCSV,.jsonlKVP,.mat,.nc,.nccsv,.tsv,.xhtml) または.nccsvメタデータ応答 (例えば、 https://coastwatch.pfeg.noaa.gov/erddap/tabledap/cwwcNDBCMet.nccsvMetadata しかし、.nccsvMetadataは、表形式のデータセットにのみ使用可能です。) , 両方のデータ型をサポート (確かに、長い、ulong、およびchar) お問い合わせ  

メディアファイル

すべてのデータは数字やテキストの配列ではありません。 一部のデータセットは、画像、音声、ビデオファイルなどのメディアファイルから構成または含んでいます。ERDDAP™ユーザーがメディアファイルにアクセスできるように、特別な機能があります。 それは2つのステップ プロセスです:  

  1. 各ファイルは、バイト範囲のリクエストをサポートするシステムを介して、独自のURLを介してアクセスできるようにします。 これを行う最も簡単な方法は、そのディレクトリにファイルを置くことですERDDAP™アクセス (コンテナの中にいる場合.zipファイル、それらを解凍します、あなたが提供したいかもしれないが、.zipユーザへのファイルも。) すると、EDDTableFromFileNames(ファイル名)データセットは、これらのファイルをアクセス可能にするERDDAP™著しくERDDAPお問い合わせ"files"システムお問い合わせ

EDDTableFromFileNames からアクセスできる全てのファイルERDDAPお問い合わせ"files"システムサポートバイト範囲のリクエストお問い合わせ 通常、クライアントの場合 (例:ブラウザ) URL をリクエストし、レスポンスとしてファイル全体を取得します。 しかし、バイト範囲のリクエストでは、ファイルからバイトの範囲を指定し、サーバーはそれらのバイトのみを返します。 これは、ブラウザのオーディオとビデオプレーヤーがバイト範囲のリクエストを介してファイルにアクセスできる場合にのみ機能するため、ここに関連しています。

オプション: 関連するメディアファイルと複数のデータセットがある場合、各ファイルのサブフォルダを持つ1つのEDDTableFromFileNamesだけを作ることができます。 利点は、新しいデータセット用の新しいメディアファイルを追加したい場合、新しいフォルダーを作成し、そのフォルダにファイルを置きます。 フォルダとファイルが EDDTableFromFileNames のデータセットに自動的に追加されます。

  1. オプション: メディアファイルへの参照を含むデータセットがある場合、ERDDAPお問い合わせ たとえば、 .csv ファイルには、 whale と その視覚に関連するイメージファイルの名前を含む列を見たたびに行が含まれている場合があります。 画像ファイルの名前がファイル名だけである場合、例えば、Img20141024T192403Z、完全なURLではなく、追加する必要がありますファイルアクセスベース ウルとファイルアクセスサフィックスそのメタデータに対する属性dataVariableこれらのファイル名の baseURL と suffix を指定します。 EDDTableFromFileNames 経由でファイルにアクセスできる場合は、URL がフォームに表示されます。 ベースUrl /erddap/ファイル/ datasetID / / / / 例えば、
        <att name="fileAccessBaseUrl">*someBaseURL*</a>  
<att name="fileAccessSuffix">.png</a>

もしあれば.zipまたはデータ変数に関連するすべてのメディアファイルを含む他のコンテナファイルでは、そのファイルをユーザーにアクセスできるようにすることをお勧めします。 (上記のステップ1を参照してください) そしてそれを識別して下さいfileAccessアーカイブ ウルル属性。

\[はじめにERDDAP™v1.82の\]上記の第一歩を踏み出せば (または両方のステップ) ユーザがビューしたときに、ERDDAP™ "files"そのデータセットのためのシステム (または、データセットのサブセットを経由して参照するように要求する.htmlTable2番目のステップを要求した場合、) ,ERDDAP™ファイル名の左にある '?' アイコンが表示されます。 ユーザーがそのアイコンの上にカーソルを合わせると、それらは、画像、またはオーディオプレーヤー、またはビデオプレーヤーを示すポップアップが表示されます。 ブラウザは、限られた種類のタイプのみをサポート

  • サイトマップ (通常 .gif、.jpg、および .png) ,
  • オーディオ (通常 .mp3, .ogg, .wav) と
  • ビデオファイル (通常 .mp4、.ogv、および。 サイトマップ) お問い合わせ

サポートは、異なるオペレーティングシステム上の異なるブラウザの異なるバージョンによって異なります。 そのため、どのファイルタイプが提供できるかを選択すると、これらのタイプを提供するのは理にかなっています。

または、ユーザーが表示されているファイル名をクリックした場合ERDDAP™ウェブページ、ブラウザは、別のWebページとして画像、オーディオ、ビデオファイルを表示します。 これは、ポップアップではなく、非常に大きな画像やフルスクリーンにスケールされたビデオを見るのにほとんど便利です。

AWS S3ファイルと連携

Amazon Webサービス (ツイート) 売り手はクラウドコンピューティングサービス。S3シリーズAWSが提供するオブジェクトストレージシステムです。 ディレクトリの階層的なシステムではなく、伝統的なファイルシステムのファイル (PCでハードドライブのように) , S3は "objects" を保持する "buckets" だけを提供しています (お問い合わせ"files") お問い合わせ

ASCIIファイルの場合 (例:.csv) ,ERDDAP™ Bucket 内のファイルを直接操作できます。 必要なのは、<fileDir> AWS バケットの特定の形式を使用してデータセットの https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ お問い合わせ 使用しない<cacheFromUrl> . 詳しくはこちらをご覧ください。

しかし、バイナリファイルの場合 (例:.nc.grib、.bufr、および.hdfファイル) 、使用する必要があります<cacheFromUrl> システムは以下のとおりです。ERDDAP、netcdf-java (お問い合わせERDDAP™これらのファイルからデータを読み込むために使用します) 、および他の科学的なデータ ソフトウェアは提供する従来のファイル システムでファイルを扱うように設計されていますブロックレベルファイルへのアクセス (ファイルのチャンクの読み込みを許可する) S3のみ提供ファイルレベル (オブジェクト) ファイルへのアクセス (ファイルの読み込みのみを許可する) お問い合わせ AWS は S3 に代わり、弾性ブロックストア (EBSについて) )、ブロックレベルのファイルへのアクセスをサポートしているが、S3よりも高価であるため、大量のデータファイルの大量保存にはほとんど使われません。 (そのため、クラウドにデータを格納すると言うとき (S3シリーズ) 安い、それは通常、オレンジの比較にリンゴです。)

S3 バケツ

バケツの内容。 キー。 オブジェクト。 デリミター。
技術的には、S3 バケットは、コンピュータ上のファイルシステムのような階層的なファイル構造で編成されていません。 代わりに、バケットには「オブジェクト」のみが含まれています。 (ファイル) それぞれが「キー」を持っている (名前) お問い合わせ noaa-goes17 バケットのキーの例

ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc

そのオブジェクトに対応するURlは

https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/2019/235/22/OR\_ABI-L1b-RadC-M6C01\_G17\_s20192352201196\_e20192352203569\_c20192352204013.nc

AWS は URL の構成方法の若干のバリエーションをサポートしていますが、ERDDAP™この1つの特定のフォーマットを要求して下さい:    https://bucketName.s3.region.amazonaws.com/key
一般的な練習は、この例のように、キー名を階層的なパスとファイル名のように見えるようにするが、技術的にはそうではありません。 それは一般的で有用であるので、ERDDAP™/'s でキーを扱います。もし階層のパスとファイル名で、このドキュメントは以下のように参照します。 Bucket のキーが /'s を使わない場合 (例: キーのような) ABI-Lib.2018052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_s20180522247575、その後、ERDDAP™鍵全体を長ファイル名として扱います。

プライベート対パブリックバケット お問い合わせ S3 Bucket の管理者は、 Bucket とその内容をパブリックまたはプライベートにすることができます。 公開する場合は、ファイル用のURLを使用して、バケット内の任意のファイルが誰でもダウンロードできます。 Amazonは、データを開くパブリックデータセットをホストするプログラム (データを含むNOAA、 NASA、USGS) それらのバケットからファイルをダウンロードするために、誰にでも無料で、充電しません。 Bucket がプライベートの場合、 Bucket 内のファイルは認証されたユーザーと AWS が料金を請求するのみアクセス可能です。 (通常はバケツの所有者によって支払われる) ファイルを非AWS S3 コンピュータにダウンロードするにはERDDAP™パブリックとプライベートの Bucket のデータを扱うことができます。

AWS認証

そのためにERDDAP™プライベートの Bucket の内容を読み込み、AWS の資格情報が必要で、標準的な場所に認証情報ファイルを保存する必要があります。ERDDAP™情報を検索できます。 AWS SDK を参照してください。Java2.x ドキュメント:デフォルト資格情報を設定するお問い合わせ (値を保存するオプションJavaコマンドラインパラメータのコマンド\[トームキャット\]/bin/setenv.sh は良いオプションです。)

AWS /ファイル/

  • /files/ システム -- ザ・オブ・ザ・ERDDAP™ /files/システムユーザーは、データセット用のソースファイルをダウンロードすることができます。 元のソースファイルを多くのユーザーがダウンロードしたいため、ソースファイルのすべてのデータセットのためにこれをオンにすることをお勧めします。
    • ファイルがプライベートS3バケットにある場合、ファイルのダウンロードのリクエストは、ERDDAP™, ファイルからデータを読み込み、それをユーザーに送信するので、負荷を増加させますERDDAP™、着信および発信の帯域幅を使用して、および作ります (お問い合わせERDDAP™管理者権限) データを AWS に渡します。
    • ファイルが公開のS3バケットにある場合、そのファイル用のAWS S3 URLにファイルをダウンロードするユーザのリクエストがリダイレクトされるため、データが流れません。ERDDAP™従って負荷を上の減らすことERDDAPお問い合わせ ファイルがAmazon Open Dataにある場合 (無料) 公共のバケツ、それからあなた (お問い合わせERDDAP™管理者権限) AWSにデータエグレス料を払う必要はありません。 そのため、パブリックからのデータを提供する大きな利点があります (プライベート) S3 バケット、Amazon Open Data からデータを提供する巨大な利点 (無料) バケツ。

ERDDAP™そしてAWS S3のバケツ

ERDDAP™そしてAWS S3のバケツ
幸いに、多くの努力の後で、ERDDAP™S3のブロックレベルアクセスで動作する固有の問題に対処することを可能にする多くの機能があります。

  • \[免責事項: AWS S3 バケットを使用した作業は、多くの作業です。 AWSは、サービスと機能の巨大なエコシステムです。 たくさんあります。 それは時間と労力がかかりますが、それは可能です。 患者になり、物事を働かせます。 助けのための見る/ask ( )AWSドキュメント、ウェブサイトのようなスタックオーバーフローおよび規則 ERDDAP™サポートオプション) あなたが立ち往生する時/時。\]
     
  • S3 バケット内のファイルのディレクトリ構造とファイル名を調べるのは難しいです。ERDDAP™この問題に対する解決策があります:EDDTableFromFileNamesには特別なものがあります\\\*fromOnTheFlyからEDDTableFromFileNames のデータセットを作成できるオプションで、ユーザーは S3 バケットの内容を閲覧できます。 (ファイルのダウンロード) データセットによる"files"オプション。 そこにあります以下の例お問い合わせ  
  • ERDDAP™データを読み込む外部に圧縮されたデータファイルなので、S3のファイルがそのまま保存されていれば結構です。.gz,.gzip,.bz2, .Z, または外部に圧縮されたデータファイルの種類, これは劇的にすることができます (2 - 20Xの) ファイルの保存コストを削減します。 S3から小さいファイルを転送することによって保存された時間以来、外部に圧縮されたファイルを使用する時間ペナルティはしばしばありませんERDDAP余計な時間に必要なバランスをとるERDDAP™ファイルを解凍します。 この機能を使用するには、データセットのことを確かめるだけです<fileNameRegex> 圧縮されたファイルタイプを使用可能 (例:追加することで (|.gz) 正規表現の最後に) お問い合わせ  
  • あなたが持っている最も一般的なケースのために、ERDDAP™テスト/開発用のPCにインストールされ、データセットがS3バケットのオブジェクトとして保存されるバイナリデータファイルがある場合、データセットを取得する1つのアプローチERDDAP™は:
    1. いくつかのテストデータファイルを保持するために、PC上でディレクトリを作成します。

    2. ソースから作成したディレクトリに2つのデータファイルをダウンロードします。

    3. 使用条件生成データセットXmlチャンクを生成するdatasets.xml2つのローカルデータファイルに基づいてデータセットの場合。

    4. データセットが希望どおりに機能することを確認してくださいダスDdsローカルERDDAPお問い合わせ

      次の手順では、そのデータセットのコピーを作成します。 (S3バケットからデータを取得する) パブリックERDDAPお問い合わせ

    5. チャンクのコピーdatasets.xmlデータセットをdatasets.xml公共のためERDDAP™データを配信します。

    6. 公開するディレクトリを作成するERDDAPローカルハードドライブは、一時的なファイルのキャッシュを保持します。 ディレクトリはディスク容量の多くを使用しない (cacheSizeGB を参照してください。) お問い合わせ

    7. データセットの値を変更する<fileDir> タグが作成したディレクトリにポイントするようにしました (ディレクトリが空いているにもかかわらず) お問い合わせ

    8. 追加するキャッシュFromUrldataset の Bucket 名とオプションの prefix を指定するタグ (ディレクトリ) 具体的にAws S3 URL フォーマットERDDAP™お問い合わせお問い合わせ

    9. [追加]<キャッシュサイズGB> (パスワード) dataset の xml にタグ (例えば、10はほとんどのデータセットに良い値です) お問い合わせERDDAP™ローカルキャッシュのサイズを制限する (i.e.、リモートファイルのすべてをキャッシュしようとしないでください) お問い合わせ

    10. パブリックで働くかどうかを見るERDDAPお問い合わせ 初めての方へERDDAP™データセットをロードすると、ロードする時間が長くなります。ERDDAP™すべてのデータファイルをダウンロードして読み込む必要があります。

データセットが巨大な格子されたデータファイルの巨大なコレクションである場合、これは非常に長い時間をとり、実用的です。 場合によっては、グリッドされたデータファイルの場合、ERDDAP™必要な情報を抽出することができます (例えば、グリッドされたデータファイル内のデータのタイムポイント) ファイル名からこの問題を回避します。 お問い合わせ集約による ファイル名お問い合わせ

  1. オプション (しかし、特にEDDTableFromFilesデータセットの場合) , あなたは追加することができますnスレッドデータセットにタグを付けて、ERDDAPユーザーのデータリクエストに対応するため、1 スレッド以上を使用する。 これは、ときに発生する遅延の影響を最小限に抑えますERDDAP™データファイルを読み込む (リモート) AWS S3 はローカルのキャッシュにバケツを置き、 (おそらく) それらを解凍する。

AWS S3 オープンデータ

一部についてNOAAお問い合わせビッグデータプログラム,NOAAAWS を含む 5 つの組織とパートナーシップを組んで、「クラウド内の主要な観察とモデル出力のコピーを格納する潜在的な利点を探求し、さらなる分布を必要としずにデータを直接計算できるようにします。」 AWS には、取得するデータセットが含まれています。NOAA大規模なコレクションへのパブリックアクセスを提供するプログラムの一環としてAWS S3でデータを開く任意のコンピュータから、Amazonの計算インスタンスであるかどうか (レンタルコンピューター) AWSネットワークまたはPC上で任意のネットワーク上で。 以下は、パブリックアクセス可能なデータセットで作業していると仮定します。

AWS S3 バケットのファイルへのアクセス

プライベートS3データバケットの場合、バケットの所有者はバケットにアクセスする必要があります。 (AWS ドキュメントを参照してください。)

AWS SDKはAWSアカウントが必要です。Java (お問い合わせERDDAP™Bucket の内容に関する情報を取得する) AWSアカウント認証が必要です。 (詳しくはこちら)

ERDDAP™AWS S3 の Bucket にアクセスできるのは、[[] を指定した場合のみです。<キャッシュFromUrl> (パスワード) (または)<fileDir>) は特定のフォーマットで指定します。 https://bucketName.s3.aws-region.amazonaws.com/prefix/
どこまでも

  • BucketName は、noaa-goes17 などの Bucket の名前の短い形式です。
  • aws-region は、例: us-east-1 は、テーブルの 1 つにある "Region" 列からAWSサービスエンドポイントバケットが実際に配置されている場所。
  • プレフィックスはオプションです。 現時点では、'/'お問い合わせ

例えば、 https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
このURLフォーマットはAWS S3の推奨事項の1つです: 参照バケットへのアクセスそして、プレフィックスのこの説明お問い合わせERDDAP™バケット URL とオプションのプレフィックスを 1 つの URL に結合して指定する<cacheFromUrl> (または)<fileDir>) ファイルが配置されている場所。

パブリックAWS S3バケットをテストする

公開 Bucket の場合、ブラウザーの AWS S3 ディレクトリの Bucket URL をテストできます。 https://noaa-goes17.s3.us-east-1.amazonaws.com バケット URL が正しい場合と適切な場合ERDDAP, 持っているXML文書を返す (部分的な) バケットの内容の一覧です。 残念ながら、完全なURL (i.e.、バケットURLとプレフィックス) ということERDDAP™特定のデータセットがブラウザで動作しません。 AWSは、ブラウザで簡単にバケットの階層を閲覧するためのシステムを提供していません。 (誤りがある場合は、Chrisにメールしてください。 noaaa.govのジョン それ以外の場合は、アマゾン、このサポートを追加してください!)

バケットの内容を見る

S3 バケットには、数種類のファイルが含まれています。偽のサブディレクトリのカップルで、カップルになることができます。ERDDAP™データセット。 作るためにERDDAP™datasets は、先頭ディレクトリを知りたい<cacheFromUrl> (または)<fileDir>) と、ファイルのサブセットを識別するファイル名の形式。 ブラウザ内の Bucket のコンテンツ全体を表示しようとすると、S3 は最初の 1000 個のファイルを表示するだけです。 現在、バケットの全てのコンテンツを閲覧するための最良の方法は、EDDTableFromFileNames(ファイル名)データセット (お使いのPCでERDDAP™またはあなたの公共ERDDAP) また、ディレクトリ構造を閲覧し、ファイルをダウンロードするための簡単な方法を提供します。 ザ・オブ・ザ・<fileDir> は、上記のURLになります。 https://noaa-goes17.s3.us-east-1.amazonaws.com お問い合わせ\[なぜ AWS S3 が AWS アカウントなしでこれを行うための迅速かつ簡単な方法を提供していないのですか?\]Amazon以外のネットワークでPC上でこれを行うと、Amazonがトリクルに対する応答を遅くする可能性があることに注意してください。 (100について (お問い合わせ) チャンクごとのファイル) 最初の少数のチャンクの後 (チャンクあたりのファイルの1000) ダウンロード バケットは膨大な数のファイルが存在する可能性があるため (Noaaa-goes17 に 26 百万) , バケットのすべてのコンテンツを取得するには、EDDTableFromFileNames を数時間かかる場合があります。 (例:12) 終わりに。\[アマゾン、そうですね!\]

EDDTableを作る FromFileNames AWS S3 バケットを使用したデータセット

バケット名がある場合、S3 バケットのファイルのリストや、バケット内の関連するファイルの場所を識別するプレフィックスがある場合は、以下の手順を使用して EDDTableFromFileNames データセットを作るため、S3 バケットのディレクトリ階層を経由して閲覧できます。ERDDAPお問い合わせ"files"システム。

  1. AWSアカウントを開く ERDDAP™利用するAWS SDK用JavaAWSからバケット情報を取得するため、AWSアカウントの作成とアクティベートお問い合わせ それはかなり大きな仕事です。, 学ぶために多くのこと.  
  2. AWS 認証をどこに置くかERDDAP™それらを見つけることができます。 指示に従ってくださいAWS 認証と開発地域の設定お問い合わせERDDAP™ (具体的にはAWS SDK forJava) AWS の認証情報を検索して利用することができます。 お問い合わせERDDAP™資格情報が見つからない場合、 java.lang. は、 IllegalArgumentException: プロファイルファイルでは、nullエラーできませんERDDAP's log.txt ファイル。

Linux と Mac OS 用のヒント: 認証ファイルは、Tomcat を実行しているユーザーのホームディレクトリにある必要があります。 (そして、ERDDAP) (この段落では user=tomcat を想定します。) ~/.aws/credentials というファイルで ~ は /home/tomcat だと仮定しないでください。 実際に cd ~ を使用して、 オペレーティングシステムが user=tomcat の 〜 と考える場所を見つけます。 存在しないディレクトリを作成します。 また、認証ファイルを所定の場所に置いた後、ファイルに対するユーザーとグループがtomcatであることを確認し、chmod 400の認証情報を使用して、ファイルがuser=tomcatの読み取り専用であることを確認します。

  1. バケット URL を作成するフォーマットERDDAP™お問い合わせ、例えば、 https://noaa-goes17.s3.us-east-1.amazonaws.com と (公共のバケツのため) ブラウザでテストして、その Bucket の内容を部分的にリストしている XML ドキュメントを返すようにします。  
  2. 使用条件生成データセットXml作成するEDDTableFromFileNames(ファイル名)データセット:
    • 起動ディレクトリには、この構文を使用します。 \\ツイート からOnTheFly、 あなたのBucketUrl 例えば、 \\*\*fromOnTheFlyから、 https://noaa-goes17.s3.us-east-1.amazonaws.com/

    • ファイル名 regex? お問い合わせ

    • 再帰的? ログイン

    • リロード みんな? 10080の

    • infoUrlお問い合わせ https://registry.opendata.aws/noaa-goes/

    • 機関?NOAA

    • 概要? 何もない (ERDDAP™まともなまとめを自動的に作成します。)

    • タイトル? 何もない (ERDDAP™まともなタイトルを自動的に作成します。) 通常のように、結果のXMLを編集して、それを使用してデータセットのチャンクの前に正しい確認と改善を行う必要がありますdatasets.xmlお問い合わせ

  3. 上記の指示に従ってデータセットをロードする場合ERDDAPEDDTableFromFiles データセットを作成しました。 例として、AWS Open Data Bucket からファイルを閲覧・ダウンロードしやすくするために、EDDTableFromFileNames データセットを作成しました(リストを参照してください) https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) ほとんどすべてのAWS S3 オープンデータバケットお問い合わせ \[ルートディレクトリに多数のファイルが存在しなかったバケット (合理的な時間内にダウンロードできるもの) 公共アクセスを許可しない (誰が公開されているのか?) 、または要求者の支払のバケツです (例:センチネル) お問い合わせ\]
    クリックすると"files"これらのデータセットの1つにリンクして、S3バケットのディレクトリツリーとファイルを閲覧できます。 道のため\\\*fromOnTheFly EDDTableFromFiles は、これらのディレクトリリストは、常に最新です。ERDDAP™それらをオンザフライを取得します。 ディレクトリツリーを実際のファイル名にクリックし、ファイル名をクリックします。ERDDAP™リクエストをAWS S3にリダイレクトし、ファイルを直接AWSからダウンロードできます。 そのファイルを調べることができます。

トラブル? EDDTableFromFiles がロードされていない場合ERDDAP™ (または DasDds) , エラーメッセージの log.txt ファイルを見てみましょう。 見ると java.lang. は、 IllegalArgumentException: プロファイルファイルは、nullエラーではなく、問題はAWS SDK forJava (によって使用されるERDDAP) 資格情報ファイルが見つかりません。 上記の資格情報の説明を参照してください。  

AWSが単にブラウザを使ってパブリックバケットの内容を閲覧できないことは残念です。

すると、ERDDAP™ユーザーがファイル内のデータにアクセスするデータセット。
指示を参照してください。ERDDAP™そしてS3のバケツ (詳しくはこちら) お問い合わせ 上記のサンプルEDDTableFromFileNamesデータセットの場合、ディレクトリツリー内のディレクトリとファイル名を少しだけポークすると、トップレベルのディレクトリ名が明確になります。 (例:ABI-L1b-RadC) 何かに対応ERDDAP™別のデータセットを呼び出します。 作業中の Bucket は似ています。 別のデータセットを作成するために、ERDDAP™それぞれのデータセット、使用例、 https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
として<cacheFromUrl>. 残念ながら、この例では、バケット内のデータセットはすべてレベル1かレベル2のデータセットであるように見えます。ERDDAP™ 特に得意ではありませんデータセットは、異なる寸法を使用する変数のより複雑なコレクションであるため。  

NcMLファイル

NcMLファイルでは、元のソースへのオンザフライ変更を指定できますNetCDF (v3 または v4) .nc, .grib, .bufr, または.hdf (v4 または v5) それからファイルがあり、ERDDAP™治療する.ncソースファイルとして ml ファイル。ERDDAP™データセットは受け入れます.ncいつでも ml ファイル.ncファイルが期待されます。 NcMLファイルは拡張子を持っている必要があります.ncml。 詳細はこちらUnidataNcML ドキュメントお問い合わせ NcMLは、それでいくつかのことをすることができますので便利です (たとえば、異なるファイルをコレクションに異なる変更を加えるなど、特定の値に特定の値をファイルに追加する) とはいえ、ERDDAPお問い合わせdatasets.xmlお問い合わせ

  • 変更する.ncml ファイルの lastModified 時刻は、データセットが再ロードされるたびに再読み込みするファイルが引き起こされますが、下書きに変更されます。.ncデータファイルが直接通知されません。
  • ヒント: NcML は\*お問い合わせ\*NcML ファイルのいくつかの項目の順序に敏感。 指定した順序で一連の指示を指定するようにNcMLを考えると、ソースファイルを変更する意図 (NcMLファイルの先頭/上にある状態) 宛先ファイルへ (NcMLファイルの末尾/下方にある状態) お問い合わせ

NcMLの代替手段はNetCDFオペレータ (NCO) お問い合わせ 大きな違いは、NcMLがオンザフライの変化を作るためのシステムであるということです (ソースファイルが変更されていないため) 、whereasNCO変更を加えるために使用することができます (または新しいバージョン) ファイル。 両方ともNCOそして、NcMLは非常に柔軟であり、あなたがファイルを考えることができるほとんどすべての変更を作ることを可能にします。 両方とも、あなたが何をしたいのかを正確に把握することに挑戦することができます。同様の例については、Webをチェックしてください。 両方ともnetCDFの準備に役立つツールです。HDF使用するファイルERDDAP, 注目すべき, 変化は、ERDDAP's の操作システムはできます。

例1:単一値で時間寸法を追加する 詳細はこちら.nc新しい外形寸法を作成するmlファイル (1つの価値との時間、:1041379200) A2003001.L3m\_DAY\_PIC\_pic\_4km という名前のファイル内の pic 変数にその次元を追加します。.nc: : :

    <netcdf xmlns='https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'>
<variable name='time' type='int' shape='time' />
<aggregation dimName='time' type='joinNew'>
<variableAgg name='pic'/>
<netcdf location='A2003001.L3m\\_DAY\\_PIC\\_pic\\_4km.nc' coordValue='1041379200'/>
</aggregation>
</netcdf>

例2:既存の時間値を変更する 時々 ソース.nc既に時間寸法と時間値を持っていますが、値が間違っています (あなたの目的のため) お問い合わせ お問い合わせ.ncmlファイル: "19810825230030-NCEI" という名前のデータファイルの場合、寸法変数"time"1970-01-01T00:00:00Z' 以降、単位属性を 'seconds に設定し、値が 367588800 になるように設定します。

    <netcdf xmlns='https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'
location="19810825230030-NCEI-L3C\\_GHRSST-SSTskin-AVHRR\\_Pathfinder-PFV5.3\\_NOAA07\\_G\\_1981237\\_day-v02.0-fv01.0.nc">
<variable name="time">
<attribute name='units' value='seconds since 1970-01-01T00:00:00Z' />
<values>367588800</values>
</variable>
</netcdf>

NetCDFオペレータ (NCO)

「netCDFオペレーター」 (NCO) netCDF をとるコマンド・ライン・プログラムである dozen standalone を構成する\[v3 または v4\],HDF \[v4 または v5\],\[.grib、.bufr、\]および/またはDAP入力としてファイル、そして操作して下さい (e.g.、決定的な新しいデータ、計算の統計、印刷物、hyperslabはメタデータを操作します) 結果をテキスト、バイナリ、またはnetCDF形式で表示またはファイルを出力します。NCOグリッド化された科学データの分析を支援します。 シェルコマンドスタイルNCOユーザーは、ファイルをインタラクティブに操作し、分析したり、より高レベルのプログラミング環境のいくつかのオーバーヘッドを回避する高速スクリプトで行うことができます。 (お問い合わせNCOサイトマップ) お問い合わせ

代替手段NCOお問い合わせログインお問い合わせ 大きな違いは、NcMLがオンザフライの変化を作るためのシステムであるということです (ソースファイルが変更されていないため) 、whereasNCO変更を加えるために使用することができます (または新しいバージョン) ファイル。 両方ともNCOそして、NcMLは非常に柔軟であり、あなたがファイルを考えることができるほとんどすべての変更を作ることを可能にします。 両方とも、あなたが何をしたいのかを正確に把握することに挑戦することができます。同様の例については、Webをチェックしてください。 両方ともnetCDFの準備に役立つツールです。HDF使用するファイルERDDAP, 注目すべき, 変化は、ERDDAP's の操作システムはできます。

例えば、NCOもともと一貫していなかったファイルのグループで、時刻変数の単位を一貫して作る。 または、使用することができますNCO申し込みscale\_factorそして、add\_offsetファイルのグループでは、scale\_factorそして、add\_offset異なるソースファイルで異なる値を持っています。 (または、あなたは今、それらの問題に対処することができますERDDAP™お問い合わせEDDGridFromNcFiles解凍の変異体であるEDDGridパックされたデータをアンパックし、異なるコレクションファイルに対処するために、低レベルで時間値を標準化するNcFilesscale\_factors とadd\_offset、または別の時間単位。)

NCO自由でオープンソースソフトウェアです。GPL 3.0の特長ライセンス

例1:ユニットの一貫性を作る EDDGridファイルとEDDTable ファイルから、指定した変数の単位がすべてのファイルに同一であることを主張します。 ファイルの一部が些細な場合 (機能的ではない) 他とは異なる(例えば、時間単位) 1970-01-01 00:00:00 UTC 以降秒 "seconds since 1970-01-01T00:00:00Z"、使用することができますNCOお問い合わせメニュー. すべてのファイル内の単位を同一と変更するため nco/ncatted -a単位、時間、o、c、1970-01-01T00:00:00Z'以来の秒\*.nc
\[EDDTableFrom のような多くの問題... ファイルデータセット, 今使用することができます標準化 新着情報お問い合わせERDDAPソースファイルを読み込まれているように標準化するERDDAPお問い合わせ\]

データセットのサイズ制限

以下に「2億」の参考文献が多数表示されます。 より正確に、それは2,147,483,647への参照です (2^31-1の) 32ビット署名整数の最大値である。 一部のコンピュータ言語では、例えばJava (お問い合わせERDDAP™で書かれている) 多くのデータ構造に使用できる最大のデータ型です。 (例えば配列のサイズ) お問い合わせ

文字列の値の場合 (例えば、変数名、属性名、文字列属性値、文字列データ値など) 文字列内の文字の最大文字数ERDDAP™約2億円 しかし、ほとんどすべてのケースでは、文字列が合理的なサイズを超えた場合、小さな問題や大きな問題があります (例: 変数名と属性名の 80 文字、ほとんどの文字列属性の値とデータ値の 255 文字) お問い合わせ たとえば、長い変数名を表示するWebページは、応答ファイルタイプの制限を超えると、幅が広く、長い変数名が切り離されます。

グリッドデータセットの場合:

  • 上限数axisVariables は ~2 億. 上限数dataVariables は ~2 億. しかし、データセットに>100変数がある場合、ユーザーが使用するために面倒になります。 また、データセットに1万個の変数がある場合、サーバは物理メモリを多く必要とし、他の問題が発生します。
  • 各次元の最大サイズ (axisVariable) 約2億の価値がある。
  • 細胞の総数の最大数だと思います (すべての次元のサイズのプロダクト) 無制限ですが、~9e18 になる可能性があります。

表形式のデータセットの場合:

  • 上限数dataVariables は ~2 億. しかし、データセットに>100変数がある場合、ユーザーが使用するために面倒になります。 また、データセットに1万個の変数がある場合、サーバは物理メモリを多く必要とし、他の問題が発生します。
  • ソースの最大数 (例えば、ファイル) 集計できるのは、約2億円です。
  • 場合によっては、個々のソースからの行の最大数 (例えば、ファイルではなくデータベースではなく、) 約2億行。
  • 他にも限界があるとは思えません。

グリッドと表形式のデータセットの両方の場合、サブセットのサイズに内部制限がいくつかあります。 (多くの場合、何かの >2 億、または ~9e18 に関連するもの) 、しかし、ユーザーがファイル型固有の制限をヒットする可能性ははるかに高まっています。

  • NetCDFバージョン3.ncファイルは2GBバイトに制限されます。 (誰かが本当に問題であるなら、私に知らせてください。 サポートを追加できます。NetCDFバージョン3.nc64ビット延長またはNetCDFバージョン4、限界を大幅に増加させるが、無限に。)
  • ブラウザは、データのみで約500MBをクラッシュするので、ERDDAP™応答を制限する.htmlTable~400MBのデータをリクエスト
  • 多くのデータ分析プログラムに類似した制限があります (例えば、次元の最大サイズは、多くの場合〜2億値です。) なので、ファイル型固有の制限を回避するために苦労する理由はありません。
  • ファイル型固有の制限は、真に膨大な量のデータを要求するのを防ぐのに役立ちます。 (たとえば、データセットに20TBのデータがある場合、 "give me all this dataset") 、ダウンロードする数週間または数か月かかります。 ダウンロードが長いほど、さまざまな理由で失敗する可能性が高い。
  • file-type-specific 制限は、ユーザが合理的にサイズのサブセットを扱うように強制するので便利です。 (たとえば、それぞれ1つのタイムポイントからデータを持つファイルを介して大きなグリッドデータセットを扱う) お問い合わせ  

ACDD-1.3 への切り替え

お問い合わせ (お知らせ生成データセットXml) 現在推奨していますACDDバージョン 1.32015年初頭に批准され、グローバル・コンベンション・属性の「ACDD-1.3」と呼ばれています。 前のページへERDDAP™バージョン 1.62 (2015年6月発売) ,ERDDAP™元の、版 1.0 を、使用/推薦しましたNetCDFデータセットのディスカバリーのための属性条約と称されるUnidataグローバル・コンベンションとMetadata\_Conventions属性。

データセットが ACDD の以前のバージョンを使用している場合は、 ACDD-1.3 に切り替えることをお勧めします。 難しいことではありません。 ACDD-1.3 はバージョン 1.0 と非常に後方互換性があります。 すべてのデータセットの切り替え (その他EDDGridFromErddap と EDDTable FromErddap データセット) : : :

  1. 新しく非推奨されたグローバルを削除Metadata\_Conventions追加することで属性 (または既存の変更によってMetadata\_Conventions属性属性)
        <att name="Metadata\\_Conventions">null</att>  

データセットのグローバルへ<addAttributes>。   2. dataset が、グローバルにConferences属性を持っている場合<addAttributes> 全部変更Unidata「ACDD-1.3」へのDataset Discovery v1.0」参照。 グローバルなデータセットにConferences属性がない場合<addAttributes> すると ACDD-1.3 を参照する 1 つを追加します。 例えば、

        <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>  

  3. データセットがグローバルの場合standard\_name\_vocabulary属性は、値の形式を例えば変更してください。

        <att name="standard\\_name\\_vocabulary">CF Standard Name Table v65</att>  

参照が古いバージョンの場合CF標準名表お問い合わせ 現在のバージョンに切り替えることはおそらく良い考えです (65 書きますと) , 新しい標準名は、その後のバージョンでそのテーブルに追加されるので, しかし、古い標準名はまれに非推奨であり、決して削除されません.   4. ACDD-1.0 にはグローバル属性が含まれていますが、creator\_name,creator\_email,creator\_url,生成データセットXmlしばらくの間、自動的に追加しなかったERDDAP™v1.50. これは重要な情報です。

  • creator\_nameユーザがデータセットの作成者を知らせる。
  • creator\_emailデータセットに関する質問がある場合は、たとえば、データセットの作成者に連絡するための優先メールアドレスをユーザーに伝えます。
  • creator\_urlユーザーが作成者についての詳細を見つける方法を与えます。
  • ERDDAP™FGDC および ISO 19115-2/19139 の各データセットのメタデータ文書を生成するときに、このすべての情報を使用します。 これらの文書は、外部検索サービスによって頻繁に使用されます。

データセットのグローバルにこれらの属性を追加してください<addAttributes>。

        <att name="creator\\_name">NOAA NMFS SWFSC ERD</att>  
<att name="creator\\_email">erd.data@noaa.gov</att>
<att name="creator\\_url">https://www.pfeg.noaa.gov</att>

です。 難しすぎなかったことを願っています。  

ザラー

バージョン 2.25 としてERDDAP™ローカルを読むことができます Zarrファイルを使用してEDDTableFromNcFiles (EDDTableFromNcFiles) は、そして、EDDGridからNcFilesお問い合わせ

(2019年8月現在) 我々は簡単に間違っている可能性がありますが、我々はまだ確信していないザラーデータファイルをより小さいチャンクに分割する、または同じようなシステムは問題に大きい解決ですERDDAP™Amazon AWS S3 などのクラウドサービスに保存されたデータを読み込みます。 Zarrは、さまざまな状況でその有用性を示す素晴らしい技術です。ERDDAP+S3はこれらの状況の1つになります。 ほとんどの場合、私たちは次のように述べています。Zarrですべてのデータを保存する努力を急いでいる前に、実際により良い解決策であるかどうかを確認するいくつかのテストをしてみましょう。

クラウド内のデータにアクセスする問題は遅延 (最初にデータを取得するラグ) ファイルレベルのアクセス (ブロックレベルのアクセスではなく) お問い合わせ Zarrはファイルレベルのアクセスの問題を解決しますが、レイテンシについては何もしません。 ファイルをダウンロードするだけで比較 (ブロックレベルのアクセスでローカルファイルとして読み込むことができます) 、Zarrは、Zarrでは、ファイルを読み込むことにより、レイテンシーの問題を悪化させる可能性があります。 (それぞれ独自のラグで) お問い合わせ レイテンシの問題は、リクエストの並列化によって解決できますが、Zarrに依存しないより高いレベルのソリューションです。

そしてザラーと (関連データベースと同様に) データのファイルを持つ利便性は、単純で単一ファイルであり、簡単に整合性を検証したり、コピーを作成/ダウンロードしたりすることができます。

ERDDAP™ (v2 の) URLソースからファイルのローカルキャッシュを維持するためのシステムを持っています (例:S3) (参照)<cacheFromUrl> と<キャッシュマックスGB> (パスワード) )。 新しい [<nスレッド> (#nthreadsさん) レイテンシの問題を最小限に抑えるには、データ検索を高レベルで並列化する必要があります。<cacheFromUrl> は多くのシナリオで非常にうまく機能しているようです。 (私たちは、どのように有益なのかわからない<nThreads> はテストを行わない。 AWS インスタンスのタイミングテストをうまく行っていないことを認めていますが、さまざまなリモート URL ソースファイルでテストを成功させました。 そしてERDDAPお問い合わせ<cacheFromUrl> はあらゆる種類のデータファイルで動作します。 (例:.nc,.hdf, .csv,.jsonlCSV) 外部圧縮しても (例:.gz) ファイルの変更なし (例えば、Zarrコレクションに書き換える) お問い合わせ

異なるシナリオは、異なるソリューションを好む可能性があります。例えば、ファイルの一部を一度だけ読み込む必要があります。 (Zarrが勝つ) , 対. 一度すべてのファイルを読む必要があります。, 対. 部分を読む必要があります。 またはすべてのファイルを繰り返し ()<cacheFromUrl> は勝ちます。

ほとんどの場合、私たちは次のように述べています。Zarrですべてのデータを保存する努力を急いでいる前に、実際により良い解決策であるかどうかを確認するいくつかのテストをしてみましょう。


型データセットのリスト

適切なデータセットタイプを選択する必要がある場合は、データセットタイプの選択お問い合わせ

データセットの種類は2つのカテゴリに分類されます。 (なぜ?)

EDDGrid

  • EDDGrid データセットは、グリッドデータを処理します。
    • インスタグラムEDDGridデータセット、データ変数は多次元データ配列です。
    • 各次元の軸線変数である必要があります。 軸変数は、データ変数がそれらを使用する順番で指定される必要があります。
    • インスタグラムEDDGridデータセット、すべてのデータ変数は使用しなければ (シェア) 軸変数のすべて。 (なぜ? 彼らがそうでないならば?)
    • ソートされた寸法値 - すべてでEDDGridデータセット、各次元は分類された順序でであって下さい (昇降または降下) お問い合わせ それぞれ不規則にスペースを置くことができます。 何もない。 これはの条件ですCFメタデータ規格お問い合わせ 次元の値はソート順でない場合、データセットはロードされず、ERDDAP™ログファイルの最初の無ソート値を特定します。 bigParentディレクトリ /logs/log.txt ディレクティブ

いくつかのサブクラスには、追加の制限があります(特に、EDDGridAggregateExistingDimensionは、外側(左端、最初の)寸法が昇順であることを要求します。

未ソートの寸法は、ほぼ常にソースのデータセットの問題を示しています。 これは、誤名または不適切なファイルが集計に含まれているときに最も一般的に起こります。これは、ソートされていない時間次元につながる。 この問題を解決するには、エラーメッセージを参照してください。ERDDAP™log.txt ファイルがオフエンディング時間値を見つけます。 次に、ソースファイルを見て、対応するファイルを見つけます (または 1 つ前後) 集計に所属しない。

  • 詳細な説明を参照してください。EDDGridデータモデルお問い合わせ
  • ザ・オブ・ザ・EDDGridデータセットのタイプは:
    • EDDGridFromAudioFilesからローカルオーディオファイルのグループからデータを集計します。
    • EDDGridFromDapからグリッドデータを処理するDAPサーバ。
    • EDDGridからEDDTable表形式のデータセットをグリッドデータセットに変換できます。
    • EDDGridErddapからリモートからグリッドされたデータを処理しますERDDAPお問い合わせ
    • EDDGridトピックス組み込みのETOPOトポグラフィデータを処理します。
    • EDDGridファイルからすべてのスーパークラスですEDDGridから...ファイルクラス。
    • EDDGridFromMergeIRFilesからローカルMergeIRのグループからデータを集計.gzファイル。
    • EDDGridからNcFilesローカルのグループからデータを集計NetCDF (v3 または v4) .nc関連するファイル。
    • EDDGridFromNcFiles解凍バリアントの場合EDDGridローカルのグループからデータを集約するFromNcFilesNetCDF (v3 または v4) .nc関連するファイルERDDAP™低いレベルのアンパック。
    • EDDGridロンPM180子供の経度値を変更EDDGrid-180 から 180 の範囲にいるように。
    • EDDGridロン0360子供の経度値を変更EDDGrid範囲 0 から 360 の範囲内にあるため。
    • EDDGridサイドバイサイド2つ以上の集計EDDGridサイドバイサイドのデータセット
    • EDDGridAggregateExistingディメンション2つ以上の集計EDDGridデータセットは、それぞれが最初の次元の異なる値の範囲を持っていますが、他の次元の同じ値です。
    • EDDGridコピー別のローカルコピーを作ることができますEDDGrid's のデータはローカルコピーからデータを提供し、  
  • すべてEDDGriddatasets は nThreads の設定をサポートしており、ERDDAP™リクエストに応答する際に使用するスレッド数 詳細はこちらnスレッド詳細はドキュメントを参照してください。  

EDDTableの特長


データセットタイプの詳細な説明

EDDGridFromDapから

EDDGridFromDapから からグリッド変数を処理しますDAPサーバ。

  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 必要な情報を収集したり、独自のXMLを作成したりすることができます。EDDGridお使いのブラウザのソースデータセットのDDSとDASファイルを見て、Dapデータセット (.das と .dds をsourceUrl例えば、 https://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day.dds ) お問い合わせ  
  • EDDGridFromDap は、任意の多次元変数からデータを得ることができます。DAPデータサーバ。 (以前は、EDDGridFromDap は "grid" に指定された変数に制限されていましたが、それはもはや要件ではありません。)
     
  • ソートされた寸法値 - 各次元の値はソート順にする必要があります (昇降または降下) お問い合わせ 値が不規則にスペース化できます。 何もない。 これはの条件ですCFメタデータ規格お問い合わせ 次元の値はソート順でない場合、データセットはロードされず、ERDDAP™ログファイルの最初の無ソート値を特定します。 bigParentディレクトリ /logs/log.txt ディレクティブ

未ソートの寸法は、ほぼ常にソースのデータセットの問題を示しています。 これは、誤名または不適切なファイルが集計に含まれているときに最も一般的に起こります。これは、ソートされていない時間次元につながる。 この問題を解決するには、エラーメッセージを参照してください。ERDDAP™log.txt ファイルがオフエンディング時間値を見つけます。 次に、ソースファイルを見て、対応するファイルを見つけます (または 1 つ前後) 集計に所属しない。

EDDGridFromDap スケルトン ログイン

    <dataset type="EDDGridFromDap" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
        For EDDGridFromDap, this gets the remote .dds and then gets the new
        leftmost (first) dimension values. -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <axisVariable>...</axisVariable> <!-- 1 or more -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
    </dataset>

 

EDDGridからEDDTable

EDDGridからEDDTable EDDTable の表データセットを EDDTable に変換するEDDGridグリッドされたデータセット。 それを忘れないでくださいERDDAP™いずれかのデータセットを扱いますグリッドデータセット (サブクラスEDDGrid) または集計データセット (EDDTableのサブクラス) お問い合わせ

  • 通常、グリッドデータがある場合、あなたはちょうどセットアップEDDGrid直接データセット。 たとえば、リレーショナルデータベースに保存されたデータがある場合、これは不可能です。ERDDAP™EDDTableFromDatabase 経由でのみアクセスできます。EDDGridFromEDDTable クラスでは、その状況を救済することができます。  
  • 明らかに、根本的なEDDTableデータセット内のデータは、 (基本的には) グリッドされたデータが、表形式のデータです。 たとえば、EDDTable のデータセットは、CTD のデータがあるかもしれません。東方および北方電流の測定は、いくつかの深さで数回行われます。 深さは毎回同じなので、EDDGridFromEDDTable は、埋め込まれた EDDTable データセットを介してデータにアクセスする時間と深さの次元でグリッド化されたデータセットを作成できます。  
  • 生成データセット Xml - Xml の 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 ラフドラフトを改善するために必要な情報を収集することができます。  
  • ソース属性 -- 他のデータセットと同様に、EDDGridFromTable には、グローバルソース属性やグローバルaddAttributes (で指定されるdatasets.xml) , グローバルな組み合わせを作るために結合される ユーザーが見るものである属性。 グローバルなソース属性のために、EDDGridFromEDDTable は、グローバルに組み合わせる EDDTable の基底データセットの属性。 (分かって考えてみると、感覚になります。)

同様に、それぞれaxisVariableお問い合わせdataVariableお問い合わせaddAttributes,EDDGridFromEDDTable は変数の結合を使用します 地下EDDTableデータセットからの属性EDDGridFromEDDTable 変数の sourceAttributes から。 (分かって考えてみると、感覚になります。)

その結果として、EDDTable に良いメタデータがある場合、EDDGridFromEDDTableは、多くの場合、非常に少ない必要がありますaddAttributesメタデータ -- ここにいくつかの微調整があります。

  • dataVariables 対パスaxisVariableお問い合わせ 根本的なEDDTableは、唯一のdataVariableお問い合わせ ログインEDDGridFromEDDTable データセットには、axisVariableツイート (EDDTable の一部から作成dataVariableツイート) そして、いくつかdataVariableツイート (残りのEDDTableから作成dataVariableツイート) お問い合わせ生成データセットXmlEDDTable がdataVariables はEDDGridからEDDTableaxisVariables, しかし、それはちょうど推測です. GenerateDatasetsXml の出力を変更して、どの値を指定する必要があります。dataVariablesはなりますaxisVariables、および順序で。  

  • 軸線値 -- 言うために根本的なEDDTableについての何もありませんEDDGridFromEDDTable の可能な値axisVariableデータセットのグリッド化されたバージョンの s は、それぞれにその情報を提供する必要がありますaxisVariableこれらの属性の1つを使って:

    • axisValues -- 値のリストを指定できます。 例えば、 <att 名前="axisValues"タイプ="doubleList"\>2,2.5,3,3.5,4</att> 注意:データ型単語リスト また、リストの種類 (例えば、ダブル) , データを一致させる必要があります EDDTable の変数のタイプおよびEDDGridFromEDDTable データセット。
    • axisValuesStartStrideStop -- では、スタート、ストライド、ストップ値を指定することで、定期的にスペース化された値のシーケンスを指定できます。 上記の axisValues に等しい例を示します。 <att 名前="axisValuesStartStrideStop"タイプ="doubleList"\>2,0.5,4</att> 繰り返しますが、リストデータ型の使用に注意して下さい。 また、リストの種類 (例えば、ダブル) , データを一致させる必要があります EDDTable の変数のタイプおよびEDDGridFromEDDTable データセット。  

アップデート -- 方法がないのでEDDGridEDDTable から EDDTable から axisValue を最初から決定するため、信頼できる方法はありません。EDDGridaxisValues が変更されたときに EDDTable から決定 (特に、時間変数の新しい値がある場合) お問い合わせ 現在、唯一のソリューションは、axisValues 属性を in に変更することです。datasets.xmlデータセットをリロードします。 たとえば、スクリプトを書くことができます。

  1. インフォメーションdatasets.xmlお問い合わせ datasetIDツイート データセットID ツイート そのため、正しいデータセットで動作します。
  2. インフォメーションdatasets.xml次回の発生について 変数名
    そのため、正しい変数で動作します。
  3. インフォメーションdatasets.xml次回の発生について
        <att name="axisValuesStartStrideStop" type="doubleList">  

なので、タグの開始位置を知ることができます。 4. インフォメーションdatasets.xml次回の発生について

        </att>  

そのため、軸値の終端位置を知ることができます。 5. 古い開始、stride を置換し、新しい値で値を停止します。 6. お問い合わせフラグ URLデータセットについてERDDAP™データセットをリロードします。

これは理想ではありませんが、それは働きます。  

  • 精密 -- いつかEDDGridFromEDDTable は、データに対するユーザーのリクエストに応答し、EDDTable 応答テーブルからデータ列を EDDTable 応答テーブルに移動します。EDDGrid応答グリッド。 これを行うには、テーブル内の特定の行の「軸」値がグリッド内の軸値の組み合わせと一致するかどうかを把握する必要があります。 整数データ型の場合、2つの値が等しいかどうかを判断するのは簡単です。 しかし、浮動小数と倍数のために、これは浮動小数点数の恐ろしい問題をもたらします正確に一致しないお問い合わせ (例:0.2 対 0.199999999999996) お問い合わせ お問い合わせ (お問い合わせ) これに対処する、EDDGridFromTable では、どんなものでも精密属性を指定できます。axisVariables は、同一の小数桁の総数を指定します。
    • 例えば、<att name="精密"タイプ="int">5</att>
    • 異なる種類のデータ変数の場合、異なるデフォルト精度値があります。 デフォルトは通常適切です。 もしそうでなければ、異なる値を指定する必要があります。
    • お問い合わせaxisVariables は時間または時間 スタンプ変数、デフォルトは完全な精密です (正確なマッチ) お問い合わせ
    • お問い合わせaxisVariable浮遊物であるsは、デフォルトの精密5です。
    • お問い合わせaxisVariablesはダブルスで、デフォルトの精度は9です。
    • お問い合わせaxisVariable整数データ型を持っているs,EDDGridFromEDDTable は精密属性を無視し、常に完全な精密を使用します (正確なマッチ) お問い合わせ  
    • 警告! 集計したデータのチャンクをグリッドされたデータのチャンクに変換するとき、EDDGridFromEDDTable は、EDDTable の "axis" 値と期待値の 1 つに一致できません。EDDGridFromEDDTable 軸値,EDDGridFromEDDTable サイレント (エラーなし) テーブルの行からデータを捨てます。 たとえば、他のデータがある (グリッドにない) EDDTable データセット (そしてstrideなら> 1、それは明らかではありませんEDDGridどの軸値が望ましい値であり、その値が stride のせいでスキップされるべきかを fromTable から。) そのため、精度値が高すぎると、有効なデータ値が実際に存在するときに、データ応答の欠如値が表示されるようになります。

逆に、精度値が低すぎる場合、一致しないEDDTable "axis"値EDDGridEDDTable 軸値から (誤って) マッチ。

これらの潜在的な問題は、ユーザーが誤ったデータを取得しているため、恐ろしいです (または不足している値) 適切なデータを取得する場合 (少なくともエラーメッセージ) お問い合わせ これは欠陥ではありませんEDDGridからテーブル。EDDGridFromTableはこの問題を解決できません。 問題は、表データをグリッドデータに変換する際に固有のものです。 (他の前提が作れる限り、ここで作れない) お問い合わせ それはあなた次第です、ERDDAP™管理者, へ あなたのテストEDDGrid徹底的にEDDTable これらの潜在的な問題を回避するために、精度値が設定されていることを確認してください。

ギャップ閾値

  • ギャップ閾値お問い合わせ これは非常に珍しいタイプのデータセットです。 作れるクエリの種類から (取扱分野) ログインEDDGridデータセット (範囲および strides に関連するaxisVariableツイート) 作ることができるクエリの種類と非常に異なります (取扱分野) EDDTable データセット (いくつかの変数の範囲に関連しただけ) のパフォーマンスEDDGridFromEDDTable データセットは、生成された正確なリクエストと、EDDTable のデータセットの速度によって大きく異なります。 stride 値を持つリクエスト > 1,100円EDDGridFromEDDTable は、データが比較的大きいチャンクに対して、EDDTable の根本的な要求をすることができます。 (stride=1 の場合) そして、結果を通してシフトし、いくつかの行からデータを保存し、他の人からデータを捨てます。 必要なデータを取得するために多くのデータを通過する必要がある場合は、リクエストは記入する必要があります。

お問い合わせEDDGridFromEDDTableは大きなギャップがあることを伝えることができます (不要なデータの行) 行間で目的のデータ,EDDGridFromEDDTable は、複数のサブリクエストを 1 つの大きなリクエストの代わりに EDDTable にすることで、大きなギャップで不要なデータの行をスキップすることができます。 この決定に対する感度は、gepThreshold 値で指定された値で制御されます。<タグギャップThreshold> タグギャップ (ソースデータの default=1000 行) お問い合わせ より小さな番号にギャップThreshold を設定すると、データセットの作成につながります (一般的に) さらなるサブリクエスト。 より大きい数へのギャップThreshold の設定はデータセットの作成につながります (一般的に) 少数のサブリクエスト。

ギャップが小さい場合、EDDGridFromEDDTable は、複数のリクエストのオーバーヘッドが複数のデータを取得することで保存された時間よりも大きいため、よりゆっくりと動作します。 ギャップが大きい場合は、EDDGridEDDTable は、EDDTable から取り出されるデータが多く、廃棄されるため、よりゆっくりと動作します。 (Goldilocksが発見したように、中央は「ちょうど右」です。) EDDTable データセットの異なるタイプのオーバーヘッドは大きく異なりますので、データセットの実際のベスト設定を知る唯一の方法は、実験を介して行われます。 しかし、あなたは、デフォルトに固執しすぎて行くことはありません。

簡単な例は: 想像してみてくださいEDDGridFromTable と 1 つだけaxisVariable (時間、100000のサイズの) , 1dataVariable (温度) , デフォルトギャップ1000の閾値。

  • ユーザがリクエスト温度を要求する場合\[0💯5000\]、strideは100です従ってギャップのサイズは99です、ギャップの境界より少しです。 お問い合わせEDDGridFromTable は、リクエストに必要なすべてのデータに対して 1 つだけリクエストを EDDTable にします。 (温度に等しい\[0:5000の\]) 必要なデータのすべての行を捨てます。
  • ユーザがリクエスト温度を要求する場合\[0:2500:5000\]2500 なので、ギャップサイズは 2499 で、これはギャップよりも大きい。 お問い合わせEDDGridFromTable は温度に等しい EDDTable への別の要求を作ります\[0 の 0\]、温度\[2500円\]、温度\[5000万円\]お問い合わせ

複数の軸がある場合、ギャップサイズの計算はより複雑です。

各ユーザーの要求のため、EDDGridFromEDDTableはこれに関連する診断メッセージを印刷しますログインファイル。

  • もし [<ログレベル> (ログレベル) お問い合わせdatasets.xmlinfo にセットされているので、このようなメッセージを出力します。 \* nOuterAxes=1 の 4 nOuterRequests=22 nOuterAxes=0 の場合、ギャップThreshold が超過されず、1 つのリクエストのみが EDDTable に作成されます。 nOuterAxes>0 の場合、ギャップThreshold が超過され、nOuterRequests は EDDTable に行なわれ、左の nOuterAxes の各リクエストされた組み合わせに対応する。 たとえば、データセットが4を持っている場合axisVariables とdataVariableイーストワードのようなs\[タイムタイム\]\[最近の投稿\]\[経緯\]\[深さ:\]一番左端 (はじめて) 軸変数は時間です。
  • お問い合わせ<ログレベル> お問い合わせdatasets.xmllog.txt ファイルに追加の情報が書かれています。  

EDDGridFromEDDTable スケルトン ログイン

 <dataset type="EDDGridFromEDDTable" datasetID\="..." active\="..." >
    <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
    <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
    <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
    <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
    <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
     For EDDGridFromEDDTable, this only works if the underlying EDDTable
     supports updateEveryNMillis. -->
    <gapThreshold>...</gapThreshold> <!-- 0 or 1. The default is 1000. >
    <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
    <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
    <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
    <iso19115File>...</iso19115File> <!-- 0 or 1 -->
    <onChange>...</onChange> <!-- 0 or more -->
    <addAttributes>...</addAttributes> <!-- 0 or 1 -->
    <axisVariable>...</axisVariable> <!-- 1 or more -->
    <dataVariable>...</dataVariable> <!-- 1 or more -->
    <dataset>...</dataset> <!-- The underlying source EDDTable dataset. -->
 </dataset>

EDD*FromからERDDAP

EDDGridErddapから リモートからグリッドされたデータを処理しますERDDAP™サーバ。 EDDTableFromErddapの特長 リモートからタプルデータを処理しますERDDAP™サーバ。

  • EDDGridFromErddap と EDDTableFromErddap は、他のすべての種類のデータセットとは異なる動作をします。ERDDAPお問い合わせ
    • 他の種類のデータセットと同様に、これらのデータセットはソースからデータセットに関する情報を取得し、メモリに保存します。
    • 他の種類のデータセットと同様に、ERDDAP™データセットの検索、データアクセスフォームの表示 ( datasetID .html拡張子) グラフフォームを作成するか、または表示します ( datasetID .グラフ) ,ERDDAP™メモリ内のデータセットに関する情報を使用します。
    • EDDGridFromErddap と EDDTable FromErddapは、グリッド/クラスター/フェデレーションインフォメーションERDDAPCPU使用量を効率的に分散するs (主に地図を作るため) 大規模なデータセンターのメモリ使用量、データセットストレージ、および帯域幅の使用量。

リダイレクト

  • 他の種類のデータセットとは異なり、ERDDAP™これらのデータセットからデータや画像のリクエストを受信します。ERDDAP リダイレクトリモートへのリクエストERDDAP™サーバ。 結果は:
    • これは非常に有効です (CPU、メモリ、帯域幅) , その他
      1. コンポジットERDDAP™リクエストを他の人に送信しなければならないERDDAP™ (所要時間) お問い合わせ
      2. その他ERDDAP™データを取得し、それを再フォーマットし、データをコンポジットに送信しますERDDAPお問い合わせ
      3. コンポジットERDDAP™データの受け取り (帯域幅の使用) 、それを再フォーマットして下さい (CPUとメモリの使用) データをユーザに送信する (帯域幅の使用) お問い合わせ リクエストをリダイレクトし、他のリクエストを許可することでERDDAP™ユーザーに直接応答を送信するには、コンポジットERDDAP™要求の CPU 時間、メモリ、または帯域幅を基本的に使用しません。
    • リダイレクトは、クライアントソフトウェアに関係なくユーザーに透明です (ブラウザまたはその他のソフトウェアまたはコマンドラインツール) お問い合わせ
  • 教えてくださいERDDAP™設定で任意のユーザーリクエストをリダイレクトしない<リダイレクト>false</redirect> ですが、これは...FromErddap データセットタイプの利点のほとんどを無視します (確かに、フロントエンドの負荷を分散させるERDDAP™リモート/バックエンドへERDDAP) お問い合わせ    

サブスクリプション

通常、いつEDDGridFromErddap と EDDTable FromErddap は (リリース) あなたの上にロードERDDAPリモートでリモートデータセットにサブスクリプションを追加するERDDAP'email/URL サブスクリプションシステム。 つまり、リモートデータセットが変更されるたびに、リモートERDDAP™コンタクトセットデータセット フラグ URLお問い合わせERDDAP™ローカルデータセットが ASAP を再ロードされるため、ローカルデータセットが常に最新かつリモートデータセットを移行できるようにします。 ですから、これが初めて、サブスクリプションを検証するメールリクエストを取得する必要があります。 但し、現地の場合ERDDAP™電子メールやリモートが送信できない場合ERDDAP'email/URL サブスクリプションシステムがアクティブでない、リモートをメールする必要がありますERDDAP™管理者と s/he を手動で追加するリクエスト<変更> (#onchangeさん) ・・・</onChange> 関連するすべてのデータセットにタグを付けて、データセットの呼び出しを行います。セットデータセット フラグ URLお問い合わせ お問い合わせERDDAP™setDataset のリストの毎日レポート フラグ URL が、 一つだけ送信するEDDGridFromErddapとEDDTableFromErddapデータセットをリモートへERDDAP™管理者。

これは機能していませんか? ローカルデータセットはリモートデータセットと同期していなくてもよいですか? データセットが最新の状態に保たれるように、このシステムが正常に動作する必要はいくつかあります。 それぞれのことを順番にチェックしてください。

  1. お問い合わせERDDAP™メールでのお問い合わせ setup.xml のメール設定を参照してください。
  2. 全般について (しかし、常に) お問い合わせERDDAPお問い合わせ<baseUrl> と<baseHttpsUrl> ポート番号がないので (例:8080、:8443) お問い合わせ もしそうしたら、プロキシパスウルからポートを外す。
  3. setup.xml では、<subscribeToRemoteErddapDataset> は true に設定する必要があります。
  4. ローカルのEDDが... FromErddap データセットはリロードされます、それはリモートに要求を送るべきですERDDAP™リモートデータセットを購読します。 これが起こっているかどうかを確認するためにlog.txtを見てみましょう。
  5. サブスクリプションリクエストを検証するために、電子メールを要求する必要があります。
  6. サブスクリプションリクエストを検証するには、そのメールのリンクをクリックする必要があります。
  7. リモートERDDAP™検証が成功したと言わなければならない。 いつでも、リモートからの電子メールを要求できますERDDAP™保留および有効なサブスクリプションのリストを使って。 フォームを見る リモートErddapBase ウルル /erddap/subscriptions/list.html 。
  8. リモートデータセットの変更時 (例: 追加のデータを取得します。) 、リモートERDDAP™フラグ URL にご連絡ください。ERDDAPお問い合わせ これをチェックすることはできませんが、リモートの管理者に尋ねることができますERDDAP™お問い合わせ
  9. お問い合わせERDDAP™flagURL を設定するためのリクエストを受け取る必要があります。 "setDatasetFlag.txt?" の log.txt を探します。 (ツイート) リクエストに関連したエラーメッセージがある場合に参照してください。
  10. お問い合わせERDDAP™データセットを再ロードしようとする (おそらくすぐにではなく、できるだけ早くASAP) お問い合わせ  

最新最大 (タイムタイム) お問い合わせ

EDDGrid/TableFromErddap データセットは、ソースデータセットが行われるときに、各ソースデータセットに関する保存された情報のみを変更します。「リロード」メタデータの変更の一部 (例:変数の時刻actual\_range) サブスクリプション通知を生成します。 ソースデータセットに頻繁に変更するデータがある場合 (例えば、毎秒新しいデータ) そして使用して下さい「更新」基礎データへの頻繁な変化に気づくシステム、EDDGrid/TableFromErddapは、次のデータセット「リロード」まで、これらの頻繁な変更について通知されません。EDDGrid/TableFromErddap は最新ではありません。 ソースデータセットを変更することで、この問題を最小限に抑えることができます<reloadEveryNMinutes> より小さい値へ (60? 15?) より多くのサブスクリプション通知があるように、EDDGrid/TableFromErddap は、ソースデータセットに関する情報を更新します。

または、ソースのデータセットが新しいデータを持っているときにデータ管理システムが知っている場合 (例えば、データファイルをコピーするスクリプトを使って、) 、そしてそれが極度の頻繁でなければ (例:5分ごとに、または頻度が少ない) 、よりよい解決があります:

  1. 使用しないでください<updateEveryNMillis> は、ソースのデータを最新の状態に保ちます。
  2. ソースデータセットの設定<reloadEveryNMinutes> より大きい数に (1440?) お問い合わせ
  3. スクリプトがソースのデータセットに問い合わせるフラグ URL新しいデータファイルをコピーして配置する直後に。  

これにより、ソースデータセットが完全に最新になり、サブスクリプション通知を生成し、それに送信されるようになります。EDDGrid/TableFromErddap データセット。 それは導きますEDDGrid/TableFromErddap のデータセットを完全に更新する (5秒以内に新しいデータを追加) お問い合わせ そして、そのすべてが効率的に行われる (不要なデータセットリロードなし) お問い合わせ  

なしaddAttributes,axisVariableまたはdataVariable

他の種類のデータセットとは異なり、EDDTableFromErddap とEDDGridFromErddap データセットはグローバルを許可しません<addAttributes>,<axisVariable>、または<dataVariable>セクションdatasets.xmlそのデータセットのため。 問題は、これらが矛盾につながる可能性があることです。

  1. 許可され、新しいグローバル属性を追加したとします。
  2. ユーザーがあなたの質問をするときERDDAP™グローバルな属性では、新しい属性が現れます。
  3. しかし、ユーザーがあなたの質問をするときERDDAP™データファイルの場合、ERDDAP™リクエストをソースにリダイレクトするERDDAPお問い合わせ お問い合わせERDDAP™新しい属性の unaware です。 そのため、メタデータでデータファイルを作成する場合、例えば、.ncメタデータは新しい属性を持たない。

2つの回避策があります。

  1. ソースの管理者を説得ERDDAP™メタデータにしたい変更を加える。
  2. EDDTableFromErddap の代わりに、EDDTableFromDapSequence (EDDTableFromDapSequence) の使い方お問い合わせ または代わりにEDDGridFromErddap, 使用EDDGridFromDapからお問い合わせ これらのEDDタイプを使用すると、リモートでデータセットに効率的に接続できますERDDAP™ (データリクエストをリダイレクトすることなく) そして、グローバルに含めることを可能にします<addAttributes>,<axisVariable>、または<dataVariable>セクションdatasets.xmlお問い合わせ もう一つの違い: リモート・データセットに手動で登録する必要があります。ERDDAP™通知されます (お問い合わせフラグ URL) リモートデータセットの変更がある場合。 そのため、リモートデータセットへのリンクではなく、新しいデータセットを作成します。  

その他の注意事項

  • セキュリティ上の理由から、EDDGridFromErddap と EDDTable FromErddap はサポートしていません [<にアクセスする> (#アクセス可能) タグは、ロギングが必要なリモートデータセットで使用できません。(ただし、それらは[<にアクセスする> (#アクセス可能) .... お問い合わせERDDAPお問い合わせセキュリティシステム一部のユーザーへのデータセットへのアクセス制限  
  • まずはERDDAP™v2.10,EDDGridFromErddap と EDDTableFromErddap のサポート [<アクセス可能なViaFiles> (#accessibleviaファイル) タグ。 他のタイプのデータセットとは異なり、デフォルトは真ですが、データセットのファイルはソースデータセットも持っている場合にのみアクセス可能になります。<accessViaFiles> true に設定します。  
  • 使うことができます。生成データセット Xmlプログラム作るためにdatasets.xmlこのタイプのデータセットのチャンク。 しかし、これらのタイプのデータセットを手作業で簡単に行うことができます。  

EDDGridFromErddap スケルトン ログイン

  • EDDGridFromErddap スケルトン XML のデータセットは非常に簡単です。意図は、既に使用するのに適しているリモート データセットを模倣することです。ERDDAP: : :

  <dataset type="EDDGridFromErddap" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>...</accessibleViaFiles> <!-- 0 or 1, default=true. -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1
        For EDDGridFromErddap, this gets the remote .dds and then gets
        the new leftmost (first) dimension values. -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <redirect>true(default)|false</redirect> <!-- 0 or 1; -->
  </dataset>

EDDTableFromErddap スケルトン ログイン

  • EDDTableFromErddap のデータセット用の skeleton XML は非常に簡単です。 意図はリモートデータセットを移行するだけなので、既に使用に適しています。ERDDAP: : :

  <dataset type="EDDTableFromErddap" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <redirect>true(default)|false</redirect> <!-- 0 or 1; -->
  </dataset>

EDDGridトピックス

EDDGridトピックス ちょうど役立つETOPO1 グローバル1-分グリッド関連データセット (氷面、グリッド登録、バイナリ、2バイトのint: etopo1\_ice\_g\_i2.zip) と配布されるERDDAPお問い合わせ

  • 2人のみdatasetIDs はサポートされますEDDGridFromEtopoは、経度値 -180から180、経度値0から360までのデータにアクセスできるようにします。
  • 既にデータが記述されているので、サブタグは存在しません。ERDDAPお問い合わせ
  • 2つのオプションEDDGridFromEtopo データセットは (文字通り) : : :
      <!-- etopo180 serves the data from longitude -180 to 180 -->
<dataset type="EDDGridFromEtopo" datasetID="etopo180" />
<!-- etopo360 serves the data from longitude 0 to 360 -->
<dataset type="EDDGridFromEtopo" datasetID="etopo360" />

EDDGridファイルから

EDDGridファイルから すべてのスーパークラスですEDDGridから...ファイルクラス。 使えないEDDGridFromFilesから直接。 代わりに、サブクラスを使用するEDDGridFromFiles は特定のファイルタイプを処理する:

現在、他のファイルタイプは対応しておりません。 しかし、他のファイルタイプのサポートを追加するのは比較的簡単です。 リクエストがあればご連絡ください。 または、データが古いファイルフォーマットにある場合は、ファイルを変換することをお勧めします。NetCDFv3の.ncファイル。NetCDF広くサポートされています。バイナリ形式は、データへの高速ランダムアクセスを可能にし、既にサポートされています。ERDDAPお問い合わせ

ファイルの詳細から

以下の情報は、すべてのサブクラスに適用されますEDDGridファイルから。

既存の次元の集計

すべてのバリエーションEDDGridFromFilesは、各ファイルが1つあるローカルファイルからデータを集計できます。 (以上) 左端の異なる値 (はじめて) 次元、通常\[タイムタイム\]集計されます。 例えば、寸法は\[タイムタイム\]\[高度の高度\]\[最近の投稿\]\[経緯\], ファイルには 1 つのデータがあるかもしれません (または数) 時間値 (ツイート) ファイルごと 結果データセットは、すべてのファイルのデータが組み合わされたかのように表示されます。 集計の大きな利点は次のとおりです。

  • 集計されたデータセットのサイズは、単一のファイルよりもはるかに大きくなる可能性があります。 (〜2GB) お問い合わせ
  • リアルタイムデータの場合、最新のチャンクデータで新しいファイルを簡単に追加できます。 データセット全体を書き換える必要はありません。

集計の要件は次のとおりです。

  • ローカルファイルは同じを持っていませんdataVariableツイート (dataset の定義datasets.xml) お問い合わせ データセットには、dataVariables で定義されるdatasets.xmlお問い合わせ 指定したファイルが存在しない場合dataVariable,ERDDAP™必要に応じて、不足している値を追加します。
  • すべてのdataVariables は同じを使用する必要がありますaxisVariables/次元 (dataset の定義datasets.xml) お問い合わせ ファイルは最初のファイルに基づいて集計されます (一番左端) 次元、昇順で分類される。
  • 各ファイル MAYは、最初の次元の1つ以上の値のデータを持っていますが、ファイル間で重複することができません。 ファイルが最初の次元の1つ以上の値がある場合、値が昇順でソートされる必要があります。
  • すべてのファイルは、他のすべての寸法の同じ値を持つ必要があります。 テストの精度は、MatchAxisNDigits, オーストラリアお問い合わせ
  • すべてのファイルは正確に同じを持っている必要がありますユニットすべてのメタデータaxisVariables とdataVariableお問い合わせ 問題が起きた場合は、ログインまたはNCO問題を解決するため。  
ファイル名またはグローバルメタデータによる集計

すべてのバリエーションEDDGridFromFilesは、新しい左端を追加することによって、ファイルのグループを集計することもできます (はじめて) 各ファイル名から派生した値または各ファイルにあるグローバル属性の値に基づいて、通常、時間。 たとえば、ファイル名には、ファイル内のデータに対する時間値が含まれる場合があります。ERDDAP™その後、新しい時間次元を作成します。

THREDDSの類似機能とは異なり、ERDDAP™常に作成するaxisVariable数値値で (CFの要求に応じて) , 決して文字列の値 (CFで許可されていないもの) お問い合わせ また、ERDDAP™数値に基づいて集計中のファイルをソートしますaxisVariableそれぞれのファイルに割り当てられた値なので、軸変数が常にCFで要求される値がソートされます。 ファイル名に基づいてlexicographicソートを行うTHREDDSアプローチは、軸値がソートされていない集計につながります (CFで許可されていないもの) ファイル名が派生したものと異なる場合axisVariable値。

これらの集計の1つを設定するERDDAP™新しい左端を定義します。 (はじめて) axisVariable特別な、擬似と<sourceName> と伝えますERDDAP™それぞれのファイルから新しい次元の値を探し出す方法

  • 擬似のフォーマットsourceNameファイル名から値を取得する (filename.ext のみ) お問い合わせ \*\ツイート ファイル名, データデータ タイプ: , エキストラRegex , キャプチャグループ番号
  • 擬似のフォーマットsourceNameファイルの絶対パス名から値を取得するのは \*\ツイート pathName, データデータ タイプ: , エキストラRegex , キャプチャグループ番号 \[そのためには、常にパス名を使う'/'ディレクトリの区切り文字として、'' は決してありません。\]
  • 擬似のフォーマットsourceNameグローバルな属性から値を取得する \*\ツイート グローバル: 属性属性 お名前 (必須) , データデータ タイプ: , エキストラRegex , キャプチャグループ番号
  • この擬似sourceNameオプションは、他の人と異なる機能します。代わりに新しい左端を作成する (はじめて) axisVariable、これは現在の価値を取り替えますaxisVariablefilename から抽出された値で (filename.ext のみ) お問い合わせ フォーマットは \*\ツイート 交換する FromFileName, データデータ タイプ: , エキストラRegex , キャプチャグループ番号  

提供する必要がある部品の説明は次のとおりです。

  • 属性属性 お名前 (必須) -- 各ファイルに含まれるグローバル属性の名前と、次元値を含む。
  • データデータ タイプ: お問い合わせ 値を保存するために使われるデータ型を指定します。 標準リストを見るデータデータ タイプということERDDAP™サポートは、 文字列が axis 変数として axis 変数として 許可されていないことを除いてERDDAP™String 変数は指定できません。

追加の擬似データタイプ、timeFormat= キーワード 時間形式 , 伝えますERDDAP™値が文字列 timeStamp であること文字列時間に適した単位お問い合わせ ほとんどの場合、必要な stringTimeFormat は、これらのフォーマットの1つのバリエーションになります。

  • yyyy-MM-ddISO 8601:2004の「T'H:mm:ss.SSSZ --」 (Eメール) 日付時刻形式。 短縮版が必要な場合があります。yyyy-MM-dd'T'H:mm:ss かyyyy-MM-ddお問い合わせ
  • yyyyMMddHHHmms.SSS - ISO 8601日付フォーマットのコンパクトなバージョンです。 つまり、yyyMMddHmms や yyyMMdd など、このバージョンを短くする必要があるかもしれません。
  • M・d・yyy H:mm:ss.SSS -- 米国のスラッシュ日付フォーマットです。 M/d/yyy などの短縮版が必要な場合があります。
  • yyyyddDHHmmsSSS - 今年のゼロパッド入り日と (例:001 = 1月1日、365 = 12月31日、非飛躍年。これは、ジュリアンの日付と呼ばれることもあります。) お問い合わせ つまり、yyyDDD などの短縮版が必要な場合があります。

この擬似 dataType を使用する場合は、この値を新しい変数に追加します。<addAttributes>:

        <att name="units">seconds since 1970-01-01T00:00:00Z</att>  

すべての時間値をシフトしたい場合は、単位内の時間値をシフトします。例えば、 1970-01-01T12:00:00Z.

  • エキストラRegex お問い合わせ これは、正規表現 (チュートリアル) キャプチャグループを含む (括弧で) これは、ファイル名またはグローバル属性の値から値を抽出する方法を記述します。 例えば、S19980011998031.L3b\_MO\_CHL のようなファイル名を指定.nc, キャプチャグループ #1, "\dチュートリアル"、正規表現ではS (ツイート\dチュートリアル) ツイート\dチュートリアル\.L3b.\* は、'S': 1998001 以降の最初の 7 桁をキャプチャします。
  • キャプチャグループ番号 お問い合わせ キャプチャグループ数です。 (ペアの括弧内) 関心のある情報を含む正規表現。 通常1、最初のキャプチャグループです。 時々、regex の他の目的のためにキャプチャグループを使用する必要があるので、重要なキャプチャグループ番号は 2 になります (2番目のキャプチャグループ) または 3 (第3項) 等。

完全な例axisVariableこれは、各ファイルのファイル名から時間値を取得する新しい時間軸で集計されたデータセットを作る

      <axisVariable>
<sourceName>\\*\\*\\*fileName,timeFormat=yyyyDDD,S(\\d{7})\\.L3m.\\*,1</sourceName>
<destinationName>time</destinationName>
</axisVariable>

"timeFormat="擬似データを使用するとき タイプ、ERDDAP™に 2 つの属性を追加します。axisVariableソースから来るように見えるように:

    <att name="standard\\_name">time</att>  
<att name="units">seconds since 1970-01-01T00:00:00Z</att>

この場合、ERDDAP™という名前の新しい軸を作成します。"time"二重値で (1970-01-01T00:00:00Z以来の秒) ファイル名の「S」と「.L3m」の前後の7桁を抽出し、yyyDDDとしてフォーマットされた時間値として解釈することによって。

デフォルトベース時間をオーバーライドできます (1970-01-01T00:00:00Z) 追加することでadd属性異なるベースタイムで異なるユニット属性を指定します。 一般的な状況は次のとおりです。衛星データセットの1日コンポジットを持つデータファイルのグループがあります。ファイル名に言及した日の正午になる時間値が欲しい (一日中集中した時間) 変数のlong\_name「カレンダー」になる。 これを行う例:

      <axisVariable>
<sourceName>\\*\\*\\*fileName,timeFormat=yyyyDDD,S(\\d{7})\\.L3m.\\*,1</sourceName>
<destinationName>time</destinationName>
<addAttributes>
<att name="long\\_name">Centered Time</att>
<att name="units">seconds since 1970-01-01T12:00:00Z</att>
</addAttributes>
</axisVariable>

1970-01-01T00:00:00Zの元のベース時間に12時間を追加し、ベース時間に時間= 12。

完全な例axisVariable新しい「実行」軸で集計したデータセットを作る (int の値で) 各ファイルに「runID」グローバル属性から実行値を取得する ("r17\_global" のような値で、17 は実行番号です。) お問い合わせ

      <axisVariable> 
<sourceName>\\*\\*\\*global:runID,int,(r|s)(\\d+)\\_global,2</sourceName>
<destinationName>run</destinationName>
<addAttributes>
<att name="ioos\\_category">Other</att>
<att name="units">count</att>
</addAttributes>
</axisVariable>

キャプチャグループ番号 2 を使用して、 'r' または 's' の後に発生した数字をキャプチャし、「\_global」の前に使用してください。 この例では、追加の属性を追加する方法も示しています (例:ioos\_categoryユニット) 軸変数へ。  

外部圧縮されたファイル

  • サブセットであるデータセットEDDGridファイルとEDDTable FromFilesは、外部に圧縮されたデータファイルから直接データを配信できます。.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2.Z ファイル  

  • 意外にうまくいく作品です!
    ほとんどの場合、小型データファイルや中型データファイルを取り戻すための減速はマイナーです。 ディスクスペースを節約する必要がある場合は、特にアクセスされていない古いファイルについては、この機能を使用することを強くお勧めします。  

  • お金を節約!
    これは、いくつかの機能の1つですERDDAP™たくさんのお金を節約するチャンスを提供する (若干のパフォーマンスが低下するが) お問い合わせ 圧縮比が等の場合、6:1 (時々それははるかに高い) データセットのデータファイルがディスク容量の1/6だけ必要になります。 それから多分1 RAIDで得ることができます (与えられたサイズの) 6 RAIDSの代わりに (同じサイズの) お問い合わせ それは巨大なコスト節約です。 うまくいけば、いくつかのファイルをコレクションに圧縮する能力 (古いもの?) 他の人を圧縮しない (新しいもの?) いつでも変更するには、ファイルの一部を圧縮するために、ダウンサイドを最小限に抑えましょう (遅いアクセス) お問い合わせ 選択がテープにファイルを格納する間にある場合 (リクエスト時にのみアクセス可能で、遅延後) それらを RAID に保存する対 (経由してアクセス可能ERDDAP) 、そしてユーザーが相互に得るように圧縮を使用することに巨大な利点があります (比較的) データの迅速なアクセス また、追加 RAID を購入して保存すると、この機能は約 $30,000 を保存できます。  

  • お問い合わせEDDGridFromFiles サブクラスは、データファイルが外部に圧縮されたファイルであることを示す拡張子を持っている場合 (現在:.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2または .Z) ,ERDDAP™ファイルを読み込むときに、データセットのキャッシュディレクトリに解凍します。 (すでにキャッシュされていない場合) お問い合わせ バイナリファイルでは同じです (例:.nc) EDDTableFromFiles のサブクラス。  

  • EDDTableFromFiles のサブクラスは非バイナリファイルに対して (例:.csv) , 外部に圧縮されたファイルであることを示す拡張子を持つデータファイルは、ファイルが読み込まれるようにオンザフライを解除されます。  

  • 要件: 外部に圧縮されたファイルの種類が使用される場合 (例:.tgzまたは.zip) 圧縮されたファイル内の1つ以上のファイルをサポートし、圧縮されたファイルは1つのファイルだけを含む必要があります。  

  • 要件: この機能は、外部に圧縮されたファイルの内容を変更しないと仮定し、キャッシュされた非圧縮されたファイルが再使用できるようにします。 データセットのデータファイルの一部または全部が変更される場合、それらのファイルを圧縮しないでください。 これは、通常、変更が必要なファイルを圧縮しないため、一般的な使用と一貫性があります。  

  • <fileNameRegex> この作業を行うには、データセットの<fileNameRegex> は圧縮されたファイルの名前と一致しなければなりません。 明らかに、 .\すべてのファイル名にマッチします。 特定のファイルタイプを指定すると、例えば、.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.nc, 圧縮拡張も含むregexを変更する必要があります, 例えば, .\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.nc\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.gz(全てのファイルがファイルの場合) お問い合わせ.nc.gzファイル) .  

  • データセットに圧縮されたファイルと圧縮されていないファイルのミックスが含まれる場合、それは良いです。 ファイルがいくつかあると信じると便利です (例:古いファイル) ディスク容量を圧縮することで、ディスク容量を節約するのに便利です。 この作品を作るために、<fileNameRegex> は、圧縮されたファイルの名前と一致してはならない。例えば、.\または。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.nc (|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.gz) (その最後にキャプチャグループが指定する場所.gzオプションです。  

  • 特定のファイルをいつでもコレクションに圧縮または解凍する場合、それは良いです。 データセットが使用しない場合 [<更新EveryNMillis> (#updateeverynmillis, オーストラリア) データセットの設定ログインお問い合わせERDDAP™データセットをリロードし、変更を通知します。 興味深いことに、同じデータセットで異なるファイル用の異なる圧縮アルゴリズムと設定を使用できます (例:.bz2まれに使用したファイルのために、.gz頻繁に使用されるファイルではなく、頻繁に使用されるファイルのための圧縮無し) , regex は .\*\\ など、使用中のすべてのファイル拡張子をサポートしていることを確認してください.nc (|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.gz|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.bz2) お問い合わせ  

  • もちろん、異なる圧縮アルゴリズムの圧縮比と速度は、ソースファイルと設定によって異なります (例:圧縮レベル) お問い合わせ ファイルを最適化したい場合は、ファイルと圧縮設定の範囲の異なる圧縮方法のテストを実行します。 確実に良いものが必要な場合 (必ずしも最善ではありません) セットアップ、私達は少し推薦しますgzip (.gz) お問い合わせgzip最小圧縮ファイルを作ることができません (それは合理的に閉じます) , しかし、それは非常に迅速にファイルを圧縮し、 (より重要なのはERDDAP™ユーザー) ファイルを素早く解凍します。 プラス,gzipソフトウェアは、すべてのLinuxとMac OSのインストールで標準装備されており、7ZipやGit BashなどのLinuxアドオンなどの無料のツールを使用してWindowsのためにすぐに利用できます。 たとえば、ソースファイルを圧縮する.gzファイルのバージョン (同じファイル名ですが、.gzリクエスト) 、使用して下さい (Linux、Mac OS、およびGit Bashで)
    gzip sourceName
    解凍するために.gz元のファイルに戻る、使用 ガンジップ sourceName.gz
    ディレクトリとサブディレクトリの各ソースファイルを圧縮するには、再帰的に使用してください。 gzipログイン ディレクター名
    それぞれを解凍するために.gzディレクトリ内のファイルとそのサブディレクトリ、再帰的に、使用 ガンジップ -r ディレクター名
     

  • 警告: 外部に圧縮しないでください (gzip) 既に内部に圧縮されているファイル! 既に多くのファイルが内部に圧縮されたデータを持っています。 お問い合わせgzipこれらのファイルでは、結果のファイルがそれほど小さくありません()<5% およびERDDAP™読む必要があるときにそれらを解凍する時間を無駄にします。 例えば:

    • データファイル:例、.nc4、および.hdf5 ファイル: 一部のファイルは内部圧縮を使用します。 一部は使用しません。 変数を圧縮する方法は "\_ChunkSize" 属性です。 また、グリッドのグループの場合.ncまたは.hdfファイルはすべて異なるサイズで、内部的に圧縮される可能性があります。 同じサイズであれば、内部的に圧縮されません。

    • .gif, .jpg, .png などのイメージファイル

    • オーディオファイル:例、.mp3、および.ogg。

    • ビデオファイル:例、.mp4、.ogv、および.webm。

不幸なオッズケース: .wav オーディオファイルが巨大で内部的に圧縮されていない。 圧縮するのがいいでしょう (gzip) それらは、一般的には、あなたがそうならなければ、ユーザーは自分のブラウザで圧縮されたファイルを再生できません。  

  • テスト ケース: 圧縮 (お問い合わせgzip) 1523 グリッド付きデータセット.ncファイル。

    • ソースファイル内のデータはスパースでした (たくさんの不足している値) お問い合わせ
    • ディスク容量の合計は57 GBから、圧縮から7 GBまで続きます。
    • 1つのポイントから大量のデータを要求する<圧縮前後1秒。
    • 365タイムポイントの1つのデータリクエストポイント (最悪の場合の状況) 4 s から 71 s へ。  

どんなデータセットでも合理的なトレードオフであり、偽りなく使用しているデータセットについては確かに私にとって。  

  • 内部対外的な圧縮 -- 提供されている内部ファイルの圧縮と比較して.nc4と4.hdf5ファイル、ERDDAP'外部に圧縮されたバイナリファイルに対するアプローチは、利点と欠点を持っています。 欠点は: 1 つのファイルの小さな部分の 1 つの時間の読み込みのため、内部圧縮はより良いのでEDDGridFromFilesは、いくつかのチャンクを解凍する必要があるだけ (ツイート) ファイルがファイル全体ではなく、 しかし、ERDDAP's アプローチにはいくつかの利点があります。

    • ERDDAP™すべての種類のデータファイルの圧縮をサポート (バイナリと非バイナリ、例えば、.nc3と.csv) だけでなく、.nc4と4.hdf4。
    • ファイルのバルクが短時間で一度以上読む必要がある場合は、一度ファイルを解凍して何度も読み込む時間を節約します。 これは、ERDDAP™ユーザーがデータセットに Make-A-Graph を使用し、一連の小さな変更をグラフにします。
    • 圧縮されたファイルを圧縮し、同じコレクションでファイルを圧縮しない機能により、圧縮されたファイルと圧縮されていないファイルをより制御できます。 そして、この追加制御は、本当にソースファイルを変更することなく来ます (ファイルを例えば圧縮できるので、.gzそして元のファイルを得るためにそれを解凍して下さい) お問い合わせ
    • 特定のファイルが圧縮され、どのように圧縮されるか、いつでも変更する能力 (異なるアルゴリズムと設定) システムのパフォーマンスをさらに制御できます。 元の非圧縮ファイルをいつでも簡単に回復できます。

すべての状況で勝者であるアプローチは決してありませんが、ERDDAP' 外部圧縮ファイルからデータを配信する機能により、外部圧縮が提供される内部圧縮に合理的な代替.nc4と4.hdf5。 それは内部の圧縮が使用することを選ぶ主な理由の1つである場合非常に重要です.nc4と4.hdf5。  

分解されたキャッシュ

ERDDAP™圧縮されたバイナリの分解バージョンを作る (例:.nc) ファイルが読み込まれる必要がある場合のデータファイル。 解凍したファイルは内部のデータセットのディレクトリに保存されます bigParentディレクトリ /decompressed/ 。 最近使用されていない非圧縮ファイルは、累積ファイルサイズが>10GBであるときにスペースを解放するために削除されます。 設定で変更できます<decompressedCacheMaxGB> (デフォルト=10) データセット Xml.xml、例えば、

        <decompressedCacheMaxGB>40</decompressedCacheMaxGB>  

また、過去15分で使用されていないファイルの解凍は、各メジャーデータセットのリロード開始時に削除されます。 設定で変更できます<decompressedCacheMaxMinutes古い> (デフォルト=15) データセット Xml.xml、例えば、

        <decompressedCacheMaxMinutesOld>60</decompressedCacheMaxMinutesOld>  

数値が大きいが、解凍したファイルの累積サイズが原因となる bigParentディレクトリ ディスクスペースを外すために、深刻な問題を引き起こします。  

  • ファイルの解凍は時間のかなりの量を取ることができるので (0.1〜10秒) , 圧縮されたファイルを含むデータセットは、データセットの [<nスレッド> (#nthreadsさん) より高い数に設定 (2? 3 4?) お問い合わせ さらなる高数の欠点 (例:5? 6? 7?) ユーザの要求がシステムリソースの割合が高いため、他のユーザの要求の処理を著しく遅くすることができます。 したがって、異なる設定で異なる状況では、理想的なnThreads設定はありません。  

ソートされた寸法値

各次元の値はソート順にする必要があります (昇降または降下、先頭を除く (一番左端) 終わるべき次元) お問い合わせ 値が不規則にスペース化できます。 どんなことでもできません。 これはの条件ですCFメタデータ規格お問い合わせ 次元の値はソート順でない場合、データセットはロードされず、ERDDAP™ログファイルの最初の無ソート値を特定します。 bigParentディレクトリ /logs/log.txt ディレクティブ

未ソートの寸法は、ほぼ常にソースのデータセットの問題を示しています。 これは、誤名または不適切なファイルが集計に含まれているときに最も一般的に起こります。これは、ソートされていない時間次元につながる。 この問題を解決するには、エラーメッセージを参照してください。ERDDAP™log.txt ファイルがオフエンディング時間値を見つけます。 次に、ソースファイルを見て、対応するファイルを見つけます (または 1 つ前後) 集計に所属しない。

ディレクター

MAY は 1 つのディレクトリ、またはディレクトリとそのサブディレクトリに (再帰的に) お問い合わせ 多数のファイルがある場合 (例:>1,000) 、オペレーティング システム (こうしてEDDGridファイルから) サブディレクトリの一連のファイルを保存すると、より効率的に動作します (1 年 1 回、または 1 ヶ月あたりのデータセットに非常に頻繁なファイル) , 与えられたディレクトリに膨大な数のファイルが存在しないので.  

<キャッシュFromUrl>

すべてEDDGridFromFiles と EDDTableFromFiles のデータセットは、タグのセットをサポートERDDAP™リモート・データセットの全てのファイルのコピーをダウンロードし、維持するため、またはいくつかのファイルのキャッシュ (必要に応じてダウンロード) お問い合わせ 大変便利です。 詳細はこちらキャッシュ FromUrl ドキュメントお問い合わせ

リモートディレクトリとHTTPレンジリクエスト

(AKA バイト サービング, バイト レンジ リクエスト, 受け入れ 範囲httpヘッダー)
EDDGridFromNcFiles、EDDTableFromMultidimNcFiles、EDDTableFromNcFiles、EDDTableFromNcCFFiles、缶 時々 からのデータを提供.ncリモートサーバ上のファイルと、サーバーがサポートしている場合はHTTP経由でアクセスバイテ サービングHTTP レンジリクエスト (バイトサービングの HTTP メカニズム) お問い合わせ これはnetcdf-javaで可能 (お問い合わせERDDAP™使用して読む.ncファイル) リモートからの読み取りデータをサポート.ncHTTP レンジリクエストによるファイル。

お問い合わせ 水平に非効率で遅いです。 代わりに [[] を使用します。<cacheFromUrl> システム (パスワード) お問い合わせ

アクセスERDDAP™バイト範囲のリクエストを介してファイルとしてデータセット -- あなたができると与えられた、この周りを反転 (理論的に) データセットを考えるERDDAP™巨人として.nc拡張子を付けてファイル ".nc" ベース OPen へDAP指定したデータセットのURL (例: https://myserver.org/erddap/griddap/datasetID.nc また、サブセットを指定した後に?queryを追加することで) 、netcdf-java を使うことができるかどうか尋ねることは多分適度です、Ferretその他NetCDFクライアントソフトウェアでデータを読み込む HTTP レンジリクエストからERDDAPお問い合わせ 答えは、本当に巨大ではないので、いいえ、「.nc" ファイル。 これを行う場合は、代わりにこれらのオプションのいずれかを実行します。

  • 使用条件(OPeN)DAPクライアントソフトウェアは、が提供するグリッドダップサービスに接続するERDDAPお問い合わせ つまり、DAP (こうしてERDDAP) 設計されました。 それは非常に有効です。
  • または、ソースファイルのダウンロード (ツイート) お問い合わせ"files"システム (またはサブセットファイル.ncお問い合わせ お問い合わせ) コンピュータにnetcdf-javaを使用し、Ferretその他NetCDFクライアントソフトウェアを読み込みます (最近の投稿) ローカルファイル (ツイート) お問い合わせ  

キャッシュされたファイル情報

いつかEDDGridFromFiles データセットは最初に読み込まれます、EDDGridFromFilesは、関連するすべてのファイルから情報を読み込み、テーブルを作成します。 (各ファイルの1列) 各有効なファイルと各 "bad" に関する情報 (異なるまたは無効) ファイル。

  • 表もディスクに保存されます。NetCDFv3の.ncファイル bigParentディレクトリ /データセット/ last2CharsOfデータセットID / / / / datasetID / ファイル名: dirテーブル.nc (ユニークなディレクトリ名のリストを保持する) , ファイル テーブル.nc (有効なファイルの情報ごとにテーブルを保持する) , 悪いファイル.nc (悪いファイルの情報ごとにテーブルを保持する) お問い合わせ
  • アクセスを高速化するためEDDGridFromFiles データセット (しかし、より多くのメモリを使用する費用で) 、使用することができます

true
お問い合わせERDDAP™メモリ内のファイル情報テーブルのコピーを保持する。

  • ディスク上のファイル情報テーブルのコピーも便利ですERDDAP™シャットダウンして再起動: 保存EDDGridFromFiles は、すべてのデータファイルを再読み込みする必要がありました。
  • データセットをリロードすると、ERDDAP™変更した新しいファイルやファイルでデータを読む必要があります。
  • ファイルが他のファイルから異なる構造を持っている場合 (例えば、変数の1つに対して異なるデータ型、または "ユニット属性) ,ERDDAP"bad" ファイルの一覧にファイルを追加します。 ファイルの問題に関する情報は、 bigParentディレクトリ /logs/log.txt ファイル
  • これらのファイルを削除または使用する必要はありません。 1つの例外は、データセットの変更をまだ作成している場合datasets.xmlセットアップ, これらのファイルを強制的に削除したい場合ERDDAP™ファイルの読み込み/解釈が異なるため、すべてのファイルを再読み込みします。 これらのファイルを削除する必要が生じた場合は、ERDDAP™実行中です。 (すると、ログインデータセットASAPを再ロードします。) しかし、ERDDAP™通常、その通知datasets.xml情報はファイルと一致しません 表情報とファイルテーブルを自動的に削除します。
  • 奨励したい方ERDDAP™保存したデータセット情報を更新する (例えば、データセットのデータディレクトリにファイルを追加、削除、または変更した場合) 、使用して下さいフラグシステム強制するERDDAP™キャッシュされたファイル情報を更新します。  

リクエストの処理

クライアントのデータを要求する場合、EDDGridFromFiles は、どのファイルが要求されたデータを持っているかを確認するために、有効なファイル情報でテーブルをすばやく見ることができます。  

キャッシュされたファイル情報の更新

データセットがリロードされると、キャッシュされたファイルが更新されます。

  • データセットは、決定どおりに定期的にリロードされます<reloadEveryNMinutes> データセットの情報datasets.xmlお問い合わせ
  • データセットは、可能な限り迅速にリロードされますERDDAP™追加した検出、削除、お問い合わせ ) (ファイルの最後に変更する 変更された時間) データファイルの変更
  • データセットは、ご使用の際にはできるだけ早くリロードされます。フラグシステムお問い合わせ

データセットをリロードすると、ERDDAP™現在利用可能なファイルとキャッシュされたファイル情報テーブルを比較します。 有効なファイルテーブルに新しいファイルが読み込まれ、追加されます。 有効なファイル表から、存在しないファイルが削除されます。 ファイルのタイムスタンプが変更されたファイルが読み込まれ、その情報は更新されます。 新しいテーブルは、メモリとディスク上の古いテーブルを置き換えます。  

悪いファイル

悪いファイルの表とファイルが悪いと宣言された理由 (破損したファイル、不足している変数など) メールでのお問い合わせ お問い合わせ メールアドレス (おそらくあなた) データセットが再ロードされるたびに。 これらのファイルをできるだけ早く交換または修理する必要があります。  

変数の欠損

ファイルがいくつかある場合dataVariableデータセットで定義される sdatasets.xmlチャンク、それは大丈夫です。 いつかEDDGridFromFiles はこれらのファイルのうちの 1 つを読み込み、ファイルが変数を持っていたかどうか、すべての欠落した値で動作します。  

FTPのトラブル/アドバイス

FTP の新しいデータファイルを FTP に更新する場合ERDDAP™サーバ間ERDDAP™走るチャンスがあり、ERDDAP™FTP プロセス中にデータセットを再読み込みします。 思った以上に頻繁に起こります! ファイルが起こると、ファイルが有効になります (有効な名前があります) ファイルがまだ有効ではありません。 お問い合わせERDDAP™その無効なファイルからデータを読み込み、結果のエラーは、ファイルが無効なファイルの表に追加される原因となります。 これは良いではありません。 この問題を回避するには、FTP ファイルの拡張子が ABC2005 の場合は一時ファイル名を使用します。.nc\_TEMP 。それから、fileNameRegexテスト (詳しくはこちら) これは関連するファイルではないことを示します。 FTP プロセスが完了したら、ファイルを正しい名前に変更します。 renaming プロセスは、ファイルを瞬時に関連づけるようになります。  

"0 ファイル" エラーメッセージ

実行する生成データセットXmlまたはダスDds、またはあなたがロードしようとするとEDDGridファイルデータセットからERDDAP™「0ファイル」エラーメッセージが表示され、ERDDAP™ディレクトリに 0 の一致するファイルが見つかりました (そのディレクトリに一致するファイルがあると思うとき) : : :

  • ファイルがそのディレクトリにあることを確認してください。
  • ディレクトリ名のスペルを確認してください。
  • fileNameRegex をチェックします。 それは本当に、本当に簡単にregexesで間違いを作ることです。 テストの目的のために、すべてのファイル名に一致すべきregex .\*を試してください。 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)
  • プログラムを実行しているユーザーを確認してください (例:user=tomcat (お問い合わせ) トムキャット/ERDDAP) これらのファイルに対する'read'許可が必要です。
  • 一部のオペレーティングシステム (例えば、SELinux) システム設定に応じて、プログラムを実行したユーザーは、ファイルを持つディレクトリに導くディレクトリ全体のチェーンに対する「読み込み」権限を持つ必要があります。  

EDDGridFromFiles スケルトン ログイン

  • スケルトンXML お問い合わせEDDGridFromFiles サブクラスは:

  <dataset type="EDDGridFrom...Files" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
        EDDGridFromFiles subclasses, this uses Java's WatchDirectory system
        to notice new/deleted/changed files quickly and efficiently. -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <fileDir>...</fileDir> <-- The directory (absolute) with the
        data files. -->
      <recursive>true|false</recursive> <!-- 0 or 1. Indicates if
        subdirectories of fileDir have data files, too. -->
      <pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
        match the pathRegex (default=".\") will be accepted. -->
      <fileNameRegex>...</fileNameRegex> <-- 0 or 1. A
        regular expression (tutorial) describing valid data
        file names, for example, ".\
\.nc" for all .nc files. -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <metadataFrom>...</metadataFrom> <-- The file to get
        metadata from ("first" or "last" (the default) based on file's
        lastModifiedTime). -->
      <fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or
        false (the default)) -->
      <cacheFromUrl>...</cacheFromUrl> <!-- 0 or 1 -->
      <cacheSizeGB>...</cacheSizeGB> <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <axisVariable>...</axisVariable> <!-- 1 or more -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
  </dataset>

EDD*FromAudioFiles から

EDDGridFromAudioFilesから そして、 EDDTableFromAudioファイル ローカルオーディオファイルの収集からデータを集計します。 (初めて登場ERDDAP™v1.82.) 違いは、EDDGridFromAudioFilesは多次元データセットとしてデータを扱います (通常2次元と:\[ファイルの開始 タイムタイム\]そして、\[エラー ファイル内の時間\]) , EDDTableFromAudioFiles は、データを表形式のデータとして扱います (通常は、ファイルstartTime、ファイルとelapsedTime、およびオーディオチャンネルからのデータのための列で) お問い合わせEDDGridFromAudioFiles では、全てのファイルが同じ数のサンプルを持っていることが必要です。そうでなければ、EDDTableFromAudioFiles を使用する必要があります。 それ以外の場合は、EDDタイプを使用する選択肢は完全にあなたの選択です。 EDDTableFromAudioFiles の1つの利点: 他の情報と他の変数を加えることができます、例えば、stationID, stationType. どちらの場合も、統一された時間変数の欠如は、これらのEDDタイプからデータを扱うのがより困難になりますが、統一された時間変数を設定するための良い方法はありません。

これらのクラスのスーパークラスを参照してください。EDDGridファイルからそして、EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかに関する一般的な情報。

強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 音声ファイルは、音声データのエンコーディングに関連する情報以外のメタデータがないため、出力をGenerateDatasetから編集する必要があります。 必須情報を提供するXml (例、タイトル、要約、creator\_name, 機関, 歴史) お問い合わせ

詳細:

  • 多数のオーディオファイル形式があります。 現在、ERDDAP™ほとんどの .wav と .au ファイルからデータを読み込みます。 現在、他の種類のオーディオファイル、例えば、.aiff や .mp3 は読みません。 .wav と .au の他のオーディオファイル形式やその他の variant のサポートが必要な場合は、リクエストを Chris にメールでお問い合わせください。 noaaa.gov のジョン。 または、今すぐ使用できる回避策として、オーディオファイルをPCM\_に変換できます。 お問い合わせ (整数データ) または PCM\_FLOAT (浮動小数点データ) .wavファイルなので、ERDDAP™一緒に働くことができます。
  • 現在、ERDDAP™オーディオファイルを何で読むことができますJavaPCM\_FLOAT, PCM\_SIGNED, PCM\_UNSIGNED, ALAW, ULAWエンコーディング.ERDDAP™PCM\_UNSIGNED値を変換 (例: 0 から 255) 署名された値に (例: -128 から 128) データ値のビットをリアランシングすることでERDDAP™ALAWとULAWをネイティブエンコードバイト形式からショートに変換 (インサート16) 値。 お問い合わせJavabigEndian=true データを望む,ERDDAP™bigEndian=false で保存されたデータのバイトを並べ替える (小さな肥満) 値を正しく読み込むために。 他のすべてのエンコーディングのために (PCMの) ,ERDDAP™データをそのまま読み込みます。
  • いつかERDDAP™オーディオファイルからデータを読み込み、ファイルの利用可能なオーディオメタデータをグローバル属性に変換します。 これはいつも含まれます (示されるサンプル値を使って)

文字列 audioBigEndian "false"; //true または false int オーディオ チャネル 1; 文字列 AudioEncoding "PCM\_SIGNED"; float AudioFrameRate 96000.0; ///秒 int AudioFrameSize 2; //フレームごとのデータバイトの# float AudioSampleRate 96000.0; ///秒 int オーディオSampleSizeInBits 16; //サンプルごとのチャネルごとのビット数

お問い合わせERDDAP's の目的は、フレームは標本と同義語です。これは一度に 1 つのポイントのデータです。 内の属性ERDDAP™ソースファイルにあったようにデータを記述する情報があります。ERDDAP™PCM\_UNSIGNED、ALAW、およびULAWエンコードされたデータをPCM\_SIGNEDに変換し、 bigEndian=falseデータが bigEndian=trueデータに変換されます。 (これは、Java読みたい) お問い合わせ エンドでは、データ値がERDDAP™常にあるPCMエンコードデータ値 (i.e.、音波の簡単なデジタル化サンプル) お問い合わせ

  • いつかERDDAP™オーディオファイルからデータを読み込み、ファイル全体を読み込みます。ERDDAP™チャネルごとの約2億のサンプルを同時に読むことができます。 たとえば、サンプルレートが毎秒44,100サンプルの場合、2億サンプルは1ファイルあたり約756分のデータに変換されます。 この量以上のデータを持つオーディオファイルがある場合、ファイルをより小さいチャンクに分割する必要があります。ERDDAP™読むことができます。
  • なのでERDDAP™オーディオファイル全体を読み込み、ERDDAP™大量のオーディオファイルを扱うメモリにアクセスする必要があります。 お問い合わせERDDAP's メモリ設定お問い合わせ 繰り返しますが、これが問題の場合、今使用できる回避策は、ファイルをより小さなチャンクに分割することです。ERDDAP™メモリを少なくして読むことができます。
  • 一部のオーディオファイルは誤って書かれていました。ERDDAP™そのようなケースに対処するための小さな努力をします。 しかし、一般的には、エラーがある場合、ERDDAP™例外をスローする (ファイルを拒否する) または (エラーが検出できない場合) データの読み込み (しかし、データが間違っている) お問い合わせ
  • ERDDAP™音の音量の確認や変更は行いません。 理想的には、データ型の範囲全体を使用できる整数のオーディオデータがスケールアップされています。
  • 可聴周波ファイルおよび可聴周波プレーヤーに不足している価値のためのシステムがありません (例:-999 または Float.NaN) お問い合わせ そのため、音声データは、欠落した値がないはずです。 不足している値がある場合 (例えば、オーディオファイルを長くなる必要がある場合) 、完全な沈黙として解釈される0のシリーズを使用して下さい。
  • いつかERDDAP™オーディオファイルからデータを読み込み、常に消去された列を作成します。 各サンプルの時間、秒の時間 (二重として貯えられる) 、最初のサンプルに相対的 (elapse が割り当てられている 時間=0.0 s) お問い合わせ とEDDGridFromAudioFiles は elapsedTime 軸変数になります。
  • EDDGridFromAudioFilesでは、すべてのファイルが同じ数のサンプルを持っていることが必要です。 そうでなければ、EDDTableFromAudioFiles を使う必要があります。
  • お問い合わせEDDGridFromAudioFilesでは、設定したことをお勧めしています。<次元価値記憶> (#次元値インメモリー) 虚偽の場合 (GenerateDatasets で推奨される Xmlの) , 時間の次元は、多くの場合、値の膨大な数を持っているので.
  • お問い合わせEDDGridFromAudioFiles は、いつもほとんど使用しなくてはなりません。EDDGridFromFilesシステム集約による ファイル名、録音の開始日を抽出することによってほとんど常に ファイル名からの時刻 例えば、
    <sourceName>\\*\\*\\*fileName,"timeFormat=yyyyMMdd'\\_'HHmmss",aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>

生成データセット Xmlはこれを奨励し、これを支援します。

  • EDDTableAudioFiles では、 EDDTableFromFiles システムを ほぼ常に使う必要があります。\\\*fileName 擬似sourceNameツイートファイル名から情報を抽出する (ほぼ常に開始日 録画時間) データの列となるよう推進します。 例えば、
    <sourceName>\\*\\*\\*fileName,aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>

時刻形式は、単位属性として指定する必要があります。<att name="units">yyyMMdd'\_'Hmmss</att>  

EDDGridFromMergeIRFilesから

EDDGridFromMergeIRFilesから ローカルからデータを集計し、マージIRファイルから、熱帯雨林測定ミッション (ログイン) NASAと日本航空宇宙研究開発機構の共同ミッションである。 (ジャクサ) お問い合わせ マージ IRファイルからダウンロードできます。NASAとはお問い合わせ

EDDGridFromMergeIRFiles.java が書かれ、貢献しましたERDDAP™R.Tech EngineeringのJonathan LafiteとPhilippe Makowskiによるプロジェクト (ライセンス: オープンソース) お問い合わせ

EDDGridFromMergeIRFilesは少し変わった:

  • EDDGridFromMergeIRFilesは、同じデータセットで、圧縮または非圧縮のソースデータファイルをサポートしています。 これにより、たとえば、アクセスがほとんどない古いファイルを圧縮することができますが、アクセス頻度の高い新しいファイルを圧縮することができます。 または、元の圧縮の種類を変更できます。 たとえば、Z は.gzお問い合わせ
  • 同じディレクトリに同じデータファイルの圧縮および非圧縮バージョンがある場合、必ず確認してください<dataset の fileNameRegex> は、一致するファイル名と一致したくないファイル名と一致させるファイル名に一致します。
  • 未圧縮のソースデータファイルにはファイル拡張子がない (ファイル名に "" がない) お問い合わせ
  • 圧縮されたソースのデータファイルがファイル拡張子を持っている必要がありますが、ERDDAP™ファイルの拡張子を調べることではなく、ファイルの内容を調べて圧縮の種類を決定します。 (例えば ".Z") お問い合わせ 対応する圧縮タイプには「gz」「bzip2」「xz」「lzma」「snappy-raw」「snappy-framed」「pack200」「z」が含まれます。 いつかERDDAP™圧縮されたファイルを読み込み、一時ファイルへの書き込みなしで、オンザフライを分解します。
  • すべてのソースデータファイルは、元のファイル命名システムを使用する必要があります:すなわち、merg\_ YYYYMMDDHHHの特長 \_4kmピクセル (どこまでも YYYYMMDDHHHの特長 ファイルがデータに関連付けられている時間を示します) , ファイルが圧縮されている場合は、ファイル拡張子をプラスします。

このクラスのスーパークラスを参照してください。EDDGridファイルから、このクラスがどのように機能するか、どのように使うかに関する一般的な情報。

強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。  

EDDGridからNcFiles

EDDGridからNcFiles ローカル、グリッド、GRIB .grb と .grb2ファイル,HDF (v4 または v5) .hdfファイル,.ncミリリットルファイル,NetCDF (v3 または v4) .ncファイル、およびザラーファイル (バージョン 2.25 の) お問い合わせ Zarrファイルには少し異なる動作があり、fileNameRegex または pathRegex のいずれかで "zarr" を含める必要があります。

これは他のファイルタイプで動作する可能性があります (例えば、BUFR) 、私達はちょうどそれをテストしませんでした --サンプル ファイルを送って下さい。

  • GRIBファイルの場合、ERDDAP™.gbx のインデックスファイルは、各 GRIB ファイルを読み込みはじめて作成します。 そのため、GRIB ファイルは、Tomcat が read+write 権限を持っている "user" ディレクトリにある必要があります。
  • このクラスのスーパークラスを参照してください。EDDGridファイルから、このクラスがどのように機能するか、どのように使うかについての情報。
  • まずはERDDAP™v2.12,EDDGridFromNcFilesとEDDGridからNcFiles 未梱包で「構造」からデータを読み込むことができます.nc4と4.hdf4ファイル。 構造からある変数を識別するため、<sourceNameツイート フォーマットを使用する必要があります。 フル構造名称 | 会員名 、例えばgroup1/myStruct|メンバー
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

グリッドNcファイル内のグループ

Netcdf4 ファイルはグループを含むことができます。 ERDDAP™変数からデータセットを1つのグループとすべての親グループで行います。 GenerateDataset で特定のグループ名を指定できます。 Xmlの (スラッシュを省略) , または GenerateDataset を持つ "" を使用する ほとんどの寸法を使用する変数のXml検索のすべてのグループ、または "\[ログイン\]"GenerateDatasets を root グループで変数を探します。

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで最初に行うことは、サンプルファイルの ncdump のような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

EDDGridFromNcFiles解凍

EDDGridFromNcFiles解凍 バリアントとはEDDGridからNcFilesローカルからデータを集約する、グリッド化NetCDF (v3 または v4) .nc関連するファイル。 違いは、このクラスが各データファイルを前に解凍するということです。EDDGridFromFiles はファイルを見る:

  • 詰め込まれる変数を解凍しますscale\_factorおよび/またはadd\_offsetお問い合わせ
  • \_FillValue を変換し、missing\_valueNaN の値 (or MAX\_VALUE 整数データ型) お問い合わせ
  • 時間とタイムスタンプ値を変換する"seconds since 1970-01-01T00:00:00Z"お問い合わせ

このクラスの大きな利点は、さまざまな値に対処する方法を提供するということですscale\_factor,add\_offset, \_FillValue,missing\_value、またはコレクション内の異なるソースファイル内の時間単位。 それ以外の場合は、このようなツールを使用する必要がありますログインまたはNCOファイルが処理できるように、各ファイルを変更して差分を削除EDDGridからNcFiles. このクラスでは、関連する属性の CF 規格に従う必要があります。

  • 作ってみるとEDDGridからNcFiles 以前に試したファイルと使用できなかったファイルのグループから解凍EDDGridFromNcFiles、CDから bigParentディレクトリ /データセット/ last2レター / / / / datasetID / / / / どこまでも last2レター 最後の2文字はdatasetID, ディレクトリ内の全てのファイルを削除します。
  • まずはERDDAP™v2.12,EDDGridFromNcFilesとEDDGridからNcFiles 未梱包で「構造」からデータを読み込むことができます.nc4と4.hdf4ファイル。 構造からある変数を識別するため、<sourceNameツイート フォーマットを使用する必要があります。 フル構造名称 | 会員名 、例えばgroup1/myStruct|メンバー
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

Netcdf4 ファイルはグループを含むことができます。 お問い合わせこのドキュメントお問い合わせ

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで行う最初のことは、サンプルファイルの ncdump のような構造を印刷します 前へ 未梱包です。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

EDDGridロンPM180

EDDGridロンPM180 子供の経度値を変更 (ツイート) EDDGrid経度値が180を超えるデータセット (例えば、0から360) 彼らが範囲にいるように -180 から 180 (Longitude Plus または Minus 180 以降の名前) お問い合わせ

  • このようにして、縦度値が180以上あるデータセットを作る方法を提供します。OGCサービス (例えばWMSサーバERDDAP) 、すべての以来OGCサービスは -180 から 180 までの経度値を必要とします。
  • 不連続性に近い作業は問題を引き起こします。, 不連続性が経度0または経度180であるかどうかに関係なく. このデータセットタイプでは、同じデータセットの2つのバージョンを提供することで、すべての人に対する問題を回避できます。 範囲 0 から 360 までの経度値を持つ 1 (「パシデント」とは?) , 範囲の経度値の1 -180から180 (「アトランティセントリック」とは?) お問い合わせ
  • すべての経度値が 180 を超える子データセットの場合、新しい経度値はすべて 360 度以下です。 たとえば、180から240の経度値を持つデータセットは、-180から-120の経度値を持つデータセットになります。
  • 全世界の経度値を持つ子データセットの場合 (約0~360度) 、新しい経度の価値はあるために整理されます (ふりがな) -180から180: 元の 0 から 180 までは変更されません。 元の 180 から 360 の値が -180 から 0 に変換され、経度配列の先頭にシフトされます。
  • 180に及ぶが、地球を覆わない子データセットの場合、ERDDAP™地球を覆うデータセットを作るために必要な値が欠落しています。 たとえば、140から200までの経度値を持つ子データセットは、-180から180の経度値を持つデータセットになります。 180〜200の子の値が-180〜160になります。 -160 から 140 までの経度値が新たに追加されます。 対応するデータ値が \_FillValues になります。 140~180までのお子様の値は変更されません。 欠損値の差し込みは奇妙に見えるかもしれませんが、突然ジャンプする経度値を持つことから生じるいくつかの問題を避ける (例:-160から140まで) お問い合わせ
  • インスタグラム生成データセットXml特別な「データセットタイプ」があります。EDDGridLonPM180FromErddapCatalog で生成します。datasets.xmlお問い合わせEDDGrid各々のLonPM180データセットEDDGridデータセットERDDAP任意の経度値が180以上の値を持っている。 これにより、これらのデータセットの2つのバージョンが提供されます。 元の、範囲0から360までの経度値を持つ、 および新しいデータセットは、-180 から 180 の範囲の経度値を持ちます。

各子のデータセットEDDGridLonPM180 データセットはEDDGrid元のデータセットにポイントする FromErddap データセット。 新しいデータセットのdatasetID元のデータセット名と「\_LonPM180」になります。 例えば、

    <dataset type="EDDGridLonPM180" datasetID="erdMBsstdmday\\_LonPM180" active="true">
<dataset type="EDDGridFromErddap" datasetID="erdMBsstdmday\\_LonPM180Child">
<!-- SST, Aqua MODIS, NPP, 0.025 degrees, Pacific Ocean, Daytime
(Monthly Composite) minLon=120.0 maxLon=320.0 -->
<sourceUrl>https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdMBsstdmday
</sourceUrl>
</dataset>
</dataset>

置くEDDGridLonPM180 データセット お問い合わせ 元のデータセットdatasets.xmlお問い合わせ いくつかの問題を回避する。

代わりに、あなたは交換することができますEDDGridFromErddap の子データセットと元のデータセットdatasets.xmlお問い合わせ 次に、データセットの1つのバージョンしかありません。-180から180までの経度値を持つもの。 データセットの各バージョンがより便利である時があるため、これを開示します。

  • たとえば、データセットの2つのバージョンを提供する場合、経度0〜360と経度180〜180で1つ:
    • オプションを使うことができます [<アクセス ヴィクトリアWMS>偽物<アクセス可能 ヴィクトリアWMS>> (#アクセス可能) 0-360データセットで強制的に無効化WMSデータセットのサービス 次に、データセットのLonPM180バージョンのみがアクセス可能です。WMSお問い合わせ
    • LonPM180 のデータセットを最新の状態に保つ方法がいくつかあります。
      • 子のデータセットがEDDGrid同じデータセットを参照する FromErddap データセットERDDAP™LonPM180 データセットは、常に最新のデータセットを直接購読しようとします。 直接サブスクリプションは、サブスクリプションの検証を要求するメールを生成しません - バリデーションは自動的に行われるべきです。
      • 子のデータセットがない場合EDDGridFromErddap と同じデータセットERDDAP™, LonPM180 データセットは、定期的なサブスクリプションシステムを使用して、基本的なデータセットを購読します。 サブスクリプションシステムをお持ちの場合ERDDAP™オンにすると、サブスクリプションの検証を求めるメールが届きます。 お問い合わせ
      • サブスクリプションシステムをお持ちの場合ERDDAP™LonPM180 データセットが再ロードされるまで、LonPM180 のデータセットはメタデータが消去されることがあります。 そのため、サブスクリプションシステムがオフになっている場合は、[<リロード 毎分> (#reloadeveryn分) LonPM180 のデータセットを小数に設定することで、子のデータセットの変更を早くキャッチする可能性が高まります。

EDDGridLonPM180 スケルトン ログイン

  <dataset type="EDDGridLonPM180" datasetID\="..." active\="..." >
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
        EDDGridFromDap, this gets the remote .dds and then gets the new
        leftmost (first) dimension values. -->
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <dataset>...</dataset> <!-- The child EDDGrid dataset. -->
  </dataset>

EDDGridロン0360

EDDGridロン0360 子供の経度値を変更 (ツイート) EDDGrid経度値が0未満であるデータセット (例えば -180 から 180) 範囲 0 から 360 (名前のゆえ) お問い合わせ

  • 不連続性に近い作業は問題を引き起こします。, 不連続性が経度0または経度180であるかどうかに関係なく. このデータセットタイプでは、同じデータセットの2つのバージョンを提供することで、すべての人に対する問題を回避できます。 範囲の経度値の1 -180から180 (「アトランティセントリック」とは?) お問い合わせ 範囲 0 から 360 までの経度値を持つ 1 (「パシデント」とは?) ,
  • すべての経度値が0未満の子データセットの場合、新しい経度値はすべて360度以上です。 たとえば、-180 から -120 までの経度値を持つデータセットは、180 から 240 の経度値を持つデータセットになります。
  • 全世界の経度値を持つ子データセットの場合 (約180~180) 、新しい経度の価値はあるために整理されます (ふりがな) 0から360まで: 元の -180 から 0 の値は 180 から 360 に変換され、経度配列の最後にシフトされます。 元の 0 から 180 までは変更されません。
  • lon=0 に及ぶが、地球を覆わない子のデータセットのために、ERDDAP™地球を覆うデータセットを作るために必要な値が欠落しています。 例えば、-40〜20の経度値を持つ子データセットは0〜360の経度値を持つデータセットになります。 0~20の子の値が変更されません。 20~320までの経度値が新たに追加されます。 対応するデータ値が \_FillValues になります。 -40〜0の子の値が320〜360になります。 欠損値の差し込みは奇妙に見えるかもしれませんが、突然ジャンプする経度値を持つことから生じるいくつかの問題を避ける (例:20~320) お問い合わせ
  • インスタグラム生成データセットXml特別な「データセットタイプ」があります。EDDGridLon0360より ErddapCatalog, それはあなたが生成することを可能にしますdatasets.xmlお問い合わせEDDGrid各々のLon0360データセットEDDGridデータセットERDDAP任意の経度値が180以上の値を持っている。 これにより、これらのデータセットの2つのバージョンが提供されます。 元の、範囲0から360までの経度値を持つ、 および新しいデータセットは、-180 から 180 の範囲の経度値を持ちます。

各子のデータセットEDDGridLon0360 データセットはEDDGrid元のデータセットにポイントする FromErddap データセット。 新しいデータセットのdatasetID元のデータセット名と「\_Lon0360」となります。 例えば、

    <dataset type="EDDGridLon0360" datasetID="erdMBsstdmday\\_Lon0360" active="true">
<dataset type="EDDGridFromErddap" datasetID="erdMBsstdmday\\_Lon0360Child">
<!-- SST, Aqua MODIS, NPP, 0.025 degrees, Pacific Ocean, Daytime
(Monthly Composite) minLon=-40.0 maxLon=20.0 -->
<sourceUrl>https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdMBsstdmday
</sourceUrl>
</dataset>
</dataset>

置くEDDGridLon0360 データセット お問い合わせ 元のデータセットdatasets.xmlお問い合わせ いくつかの問題を回避する。

代わりに、あなたは交換することができますEDDGridFromErddap の子データセットと元のデータセットdatasets.xmlお問い合わせ それから、データセットの1つのバージョンだけがあります。0から360までの経度値を持つもの。 データセットの各バージョンがより便利である時があるため、これを開示します。

  • たとえば、データセットの2つのバージョンを提供する場合、経度0〜360と経度180〜180で1つ:
    • オプションを使うことができます [<アクセス ヴィクトリアWMS>偽物<アクセス可能 ヴィクトリアWMS>> (#アクセス可能) 0 から 360 のデータセットで強制的に無効にWMSデータセットのサービス 次に、データセットの -180 から 180 までのバージョンのみがアクセス可能です。WMSお問い合わせ
    • Lon0360 のデータセットを最新の状態に保つ方法がいくつかあります。
      • 子のデータセットがEDDGrid同じデータセットを参照する FromErddap データセットERDDAP™, Lon0360 のデータセットは、常に最新のデータセットを直接購読しようとする. 直接サブスクリプションは、サブスクリプションの検証を要求するメールを生成しません - バリデーションは自動的に行われるべきです。
      • 子のデータセットがない場合EDDGridFromErddap と同じデータセットERDDAP™, Lon0360 データセットは、定期的なサブスクリプションシステムを使用して、根本的なデータセットを購読します。 サブスクリプションシステムをお持ちの場合ERDDAP™オンにすると、サブスクリプションの検証を求めるメールが届きます。 お問い合わせ
      • サブスクリプションシステムをお持ちの場合ERDDAP™Lon0360 データセットが再ロードされるまで、Lon0360 のデータセットはメタデータが消去されることがあります。 そのため、サブスクリプションシステムがオフになっている場合は、[<リロード 毎分> (#reloadeveryn分) Lon0360 のデータセットを小数に設定することで、子のデータセットの変更を早くキャッチする可能性が高まります。

EDDGridLon0360 スケルトン ログイン

  <dataset type="EDDGridLon0360" datasetID\="..." active\="..." >
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
        EDDGridFromDap, this gets the remote .dds and then gets the new
        leftmost (first) dimension values. -->
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <dataset>...</dataset> <!-- The child EDDGrid dataset. -->
  </dataset>

EDDGridサイドバイサイド

EDDGridサイドバイサイド 2つ以上の集計EDDGridデータセット (お子様) サイドバイサイド

  • 結果のデータセットは、すべての子データセットから変数のすべてを持っています。
  • 親データセットとすべての子データセットが異なるdatasetIDお問い合わせ 家族の名前がまったく同じである場合、データセットはロードできません (集計された軸の値がソートされた順番でないエラーメッセージ) お問い合わせ
  • すべての子供は同じソース値を持っている必要がありますaxisVariableツイート\[1+\] (例えば、緯度、経度) お問い合わせ テストの精度は、MatchAxisNDigits, オーストラリアお問い合わせ
  • 子どもたちは、異なるソース値を持つことができますaxisVariableツイート\[0 の 0\] (例えば、時間) , しかし、彼らは通常、同じです.
  • 親データセットは、すべてを持っているように表示されますaxisVariableツイート\[0 の 0\]お子様の全ての子からソースの値。
  • 例えば、これにより、ソースデータセットをベクトルの u-component と別のソースデータセットとベクトルの v-component と組み合わせることで、コンバインドされたデータが提供されるようになります。
  • この方法で作られた子供は、個人的に保持されます。 それらは別にアクセス可能なデータセットではないです (例えば、クライアントのデータリクエストやフラグファイル) お問い合わせ
  • 親のグローバルメタデータと設定は、最初の子のグローバルメタデータと設定から来ています。
  • 最初の子を作成するときに例外がある場合、親は作成されません。
  • 他の子供を作成中に例外がある場合、これは電子メールにEverythingToを送信します (で指定されるセットアップ。xml) ほかの子供達も一緒。

EDDGridSideBySide スケルトン ログイン

  <dataset type="EDDGridSideBySide" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <dataset>...</dataset> <!-- 2 or more -->
  </dataset>

EDDGridAggregateExistingディメンション

EDDGridAggregateExistingディメンション 2つ以上の集計EDDGridそれぞれのデータセットは、最初の次元の異なる値が、他の次元の同じ値である。

  • 例えば、1つの子のデータセットは366値があるかもしれません (2004年のため) 時間次元と別の子供が 365 値を持っている可能性があります (2005年以降) 時間次元のため。
  • 他のすべての寸法の全ての値 (例えば、緯度、経度) お子様全員が同一であること テストの精度は、MatchAxisNDigits, オーストラリアお問い合わせ
  • ソートされた寸法値 - 各次元の値はソート順にする必要があります (昇降または降下) お問い合わせ 値が不規則にスペース化できます。 何もない。 これはの条件ですCFメタデータ規格お問い合わせ 次元の値はソート順でない場合、データセットはロードされず、ERDDAP™ログファイルの最初の無ソート値を特定します。 bigParentディレクトリ /logs/log.txt ディレクティブ

未ソートの寸法は、ほぼ常にソースのデータセットの問題を示しています。 これは、誤名または不適切なファイルが集計に含まれているときに最も一般的に起こります。これは、ソートされていない時間次元につながる。 この問題を解決するには、エラーメッセージを参照してください。ERDDAP™log.txt ファイルがオフエンディング時間値を見つけます。 次に、ソースファイルを見て、対応するファイルを見つけます (または 1 つ前後) 集計に所属しない。

  • 親データセットと子のデータセットはそれぞれ異なるdatasetIDお問い合わせ 家族の名前がまったく同じである場合、データセットはロードできません (集計された軸の値がソートされた順番でないエラーメッセージ) お問い合わせ
  • 現在、子供データセットは必須ですEDDGridFromDap データセットとMUSTは、集計された寸法の最小値を持っています (通常最も古い時間値) お問い合わせ 他のすべての子供はほぼ同じデータセットである必要があります (最初の次元の価値観の違い) そしてちょうどそれらによって指定されますsourceUrlお問い合わせ
  • 集計データセットは、最初の子からメタデータを取得します。
  • ザ・オブ・ザ・生成データセット Xmlプログラムラフドラフトを作ることができるdatasets.xmlお問い合わせEDDGridAggregateExistingDimension は、一組のファイルをもとに、Hyraxまたは THREDDS サーバー。 たとえば、この入力をプログラムに使用する (URL の "/1988" は、例がより速く実行されます) : : :
      EDDType? EDDGridAggregateExistingDimension  
      Server type (hyrax, thredds, or dodsindex)? hyrax
      Parent URL (for example, for hyrax, ending in "contents.html";
        for thredds, ending in "catalog.xml")
      ? https://opendap.jpl.nasa.gov/opendap/ocean\\_wind/ccmp/L3.5a/data/
        flk/1988/contents.html
      File name regex (for example, ".\\*\\.nc")? month.\\*flk\\.nc\\.gz
      ReloadEveryNMinutes (for example, 10080)? 10080

結果を使うことができます<sourceUrl> タグまたは削除し、コメントを解除する<sourceUrl> タグ(データセットが再ロードされるたびに新しいファイルが通知されるように)。

EDDGridAggregateExistingDimension スケルトン ログイン

  <dataset type="EDDGridAggregateExistingDimension" datasetID\="..."
        active\="..." >
      <dataset>...</dataset> <!-- This is a regular EDDGridFromDap dataset
        description child with the lowest values for the aggregated
        dimensions. -->
      <sourceUrl>...</sourceUrl> <!-- 0 or many; the sourceUrls for
        other children. These children must be listed in order of
        ascending values for the aggregated dimension. -->
      <sourceUrls serverType="..." regex="..." recursive="true"
        pathRegex\=".\"
        >https://someServer/someDirectory/someSubdirectory/catalog.xml</sourceUrls>
        <!-- 0 or 1. This specifies how to find the other children,
        instead of using separate sourceUrl tags for each child. The
        advantage of this is: new children will be detected each time
        the dataset is reloaded. The serverType must be "thredds",
        "hyrax", or "dodsindex".         An example of a regular expression (regex) (tutorial) is .\
\.nc
        recursive can be "true" or "false".
        Only directory names which match the
        <pathRegex>
        (default=".\*") will be accepted.
        A thredds catalogUrl MUST include "/thredds/catalog/".
        An example of a thredds catalogUrl is
        https://thredds1.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/
          chla/catalog.xml

        An example of a hyrax catalogUrl is
        https://opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/
        flk/1988/contents.html

        An example of a dodsindex URL is
        https://opendap.jpl.nasa.gov/opendap/GeodeticsGravity/tellus/L3/mascon/RL06/JPL/v02/CRI/netcdf/contents.html
        (Note the "OPeNDAP logo at the top of the page.)
        When these children are sorted by filename, they must be in
        order of ascending values for the aggregated dimension. -->
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
  </dataset>

EDDGridコピー

EDDGridコピー ローカルコピーを別のものにし、維持するEDDGrid's のデータはローカルコピーからデータを提供し、

  • EDDGridコピー (表データの場合、EDDTableコピー) 非常に使いやすく、非常に効果的です リモートデータソースからデータを処理する最大の問題の解決:
    • リモートデータソースからのデータへのアクセスを遅くすることができます。
      • 遅くなる可能性があるので、 (例えば、サーバの非効率的なタイプ) ,
      • あまりにも多くの要求に圧倒されるので、
      • またはサーバーまたはリモートサーバーが帯域幅制限されているため。
    • リモート・データセットは時々利用できません (様々な理由で) お問い合わせ
    • データを1つのソースに頼ることは、うまくスケールしない (たとえば、多くのユーザーと多くERDDAPsはそれを利用します) お問い合わせ  
  • 使い方 --EDDGridコピーは、データのローカルコピーを自動的に作成し、ローカルコピーからデータを配信することで、これらの問題を解決します。ERDDAP™ローカルコピーからデータを非常に迅速に配信できます。 ローカルコピーをすることで、リモートサーバへの負担を軽減します。 ローカルコピーは元のバックアップであり、元の何かが起こる場合に便利です。

データセットのローカルコピーを作成することに関する新しいものはありません。 ここが新しいのは、このクラスがそれを作ることです\*簡単操作\*作成し、\*メンテナンス\*ローカルデータのコピー\*ジャンル\*リモートデータソースの種類と\*メタデータを追加\*データのコピー中に。

  • データのチャンク --EDDGridコピーは、リモートからデータのチャンクを要求することにより、データのローカルコピーを作成します<データセット> 左端の各値のチャンクがあります (はじめて) 軸変数。EDDGridコピーは、軸のリモートデータセットのインデックス番号に依存しません。これらは変更される可能性があります。

警告:データのチャンクの大きさが大きい場合 (ツイート 2GBの) 問題を引き起こし、EDDGridコピーは使用できません。 (申し訳ありませんが、今後この問題の解決を期待しています。)

  • \[代替手段EDDGridコピー - リモートデータがダウンロード可能なファイルを介して利用可能である場合、Webサービスではなく、使用キャッシュ FromUrl オプションEDDGridファイルからリモートファイルのローカルコピーを作成し、ローカルファイルからデータを配信します。\]
  • ローカルファイル -- データの各チャンクは別々に保存されますNetCDFサブディレクトリ内のファイル bigParentディレクトリ /コピー/ datasetID / / / / (で指定されるセットアップ。xml) お問い合わせ 軸値から生成されたファイル名は、ファイル名を安全にするために変更されます。 (たとえば、ハイフンは "x2D" に置換されます。) -- これは実際のデータに影響を与えません。  
  • 新しいデータ お問い合わせ それぞれの時間EDDGridコピーはリロードされ、それはリモートを点検します<dataset> はどのチャンクが利用できるかを見るために。 データのチャンクのファイルが既に存在していない場合、チャンクを取得するリクエストはキューに追加されます。ERDDAP's TaskThread は、データのチャンクに対するキュードリクエストを 1 つずつ処理します。 タスクThread のアクティビティの統計情報を見ることができます。ステータスページそして、デイリーレポートお問い合わせ (はい、ERDDAP™複数のタスクをこのプロセスに割り当てることができますが、リモートデータソースの帯域幅、メモリ、CPU時間、ローカルの多くを使用することができますERDDAP's の帯域幅、メモリ、 CPU 時間、どちらも良い考えです。)

注意: はじめてEDDGridコピーは読み込まれます、 (すべてがうまく行く場合) データのチャンクに対する多くのリクエストは、taskThread のキューに追加されますが、ローカルのデータファイルが作成されていません。 そのため、コンストラクタは失敗しますが、taskThread は引き続きローカルファイルを実行して作成します。 すべてがうまくいくと、taskThread はローカルのデータファイルと次の試みをリロードします。 (~15分) 成功するが、当初はデータ量が限られている。

Note: ローカルデータセットにデータが含まれている後、データが表示されるERDDAPリモートデータセットが一時的にまたは永続的にアクセスできない場合は、ローカルデータセットはまだ機能します。

警告:リモート・データセットが大きい場合および/またはリモート・サーバーは遅いです (問題ではありませんか?) 完全なローカルコピーを作るのに長い時間かかります。 場合によっては、必要な時間は容認できません。 たとえば、T1 行上の 1 TB のデータを伝送する (0.15 GB/s) 最適な条件下で60日以上かかります。 また、リモートやローカルコンピューターの帯域幅、メモリ、CPU 時間を多く使用しています。 ソリューションは、s/he がデータセットのコピーを作成し、ハードドライブをあなたに郵送できるように、リモートデータの管理者にハードドライブをメールすることです。 そのデータを開始点として使用し、EDDGridコピーは、データをそれに追加します。 (つまり、AmazonのEC2クラウドサービスシステムに帯域幅の多くがあるにもかかわらず、問題を処理する。)

警告: 左端に与えられた値がある場合 (はじめて) 軸変数はリモート・データセットから消えます、EDDGridコピーはローカルコピーファイルを削除します。 必要に応じて、自分で削除することができます。

グリッドコピーチェックソース データデータ

ザ・オブ・ザ・datasets.xmlこのデータセットにはオプションのタグを持つことができます

    <checkSourceData>true</checkSourceData>  

デフォルト値は true です。 false に設定すると、データセットがソースデータセットをチェックして、追加データが利用可能なかどうかを確認します。

だけなので

教えてくださいEDDGridコピーして、ソースデータセットのサブセットのコピーを、ソースデータセット全体ではなく、フォームにタグを追加する<だけなので> 詳しくはこちら バリュー </onlySince> データセットのdatasets.xmlチャンク。EDDGridコピーは、最初の次元の値に関連するデータ値のみをダウンロードします。 (通常時間次元) より大きい 詳しくはこちら バリュー お問い合わせ 詳しくはこちら バリュー できます:

  • 指定した相対時間now- nユニット お問い合わせ 例えば、<だけなので>now-2年分</onlySince> は、外部次元の値をデータにローカルコピーするだけでデータセットを伝えます (通常時間値) 最後の2年以内 (データセットがリロードされるたびに再評価されると、新しいデータがコピーされると) お問い合わせ 詳細はこちらnow- nユニット 構文の説明お問い合わせ 最初の次元に時間データがある場合に便利です。

    EDDGridコピーは、データを持っているローカルデータファイルを削除しません。時間が経つにつれて、より古いものになりますnow- nユニット お問い合わせ 選択したファイルをいつでも削除できます。 もしそうなら、設定したことを強くお勧めします。ログインファイルを削除して指示しますEDDGridキャッシュされたファイルの一覧を更新するためにコピーします。

  • ISO 8601 文字列として指定された時刻の固定点yyyy-MM-ddTHH:mm:ssZお問い合わせ 例えば、<2000-01-01T00:00:00Zのみ</onlySince> は、最初の次元の値が \>=2000-01T00:00:00Z であるデータのローカルコピーを作成するためにのみデータセットを指示します。 最初の次元に時間データがある場合に便利です。  

  • 浮動小数点数 例えば、<だけなので>946684800.0</onlySince> . 単位は最初の次元の行先の単位です。 例えば、時間寸法、単位ERDDAP™常に"seconds since 1970-01-01T00:00:00Z"お問い合わせ だから 946684800.0"seconds since 1970-01-01T00:00:00Z"2000-01-01T00:00:00Zと同等です。 これは、常に便利なオプションですが、特に最初の次元が時間データを持っていない場合に役立ちます。

EDDGridコピー 推奨使用

  1. 作成する<データセット> エントリーフォーム (ネイティブタイプではなく、EDDGridコピー) リモートデータソースのため。 必要なすべてのメタデータを含む、正しく機能します。
  2. 遅すぎると、XML コードを追加して、それをラップします。EDDGridデータセットのコピー
    • 別の使用datasetID (おそらく変更によってdatasetID古いものdatasetIDわずか) お問い合わせ
    • コピーする<アクセス お問い合わせ<reloadEveryNMinutes> と<リモートからonChange>EDDGrid'XML からEDDGridコピーのXML。 (彼らの価値観EDDGridコピーの問題;内部のデータセットの値は、関連性になります。)
  3. ERDDAP™データのローカルコピーを作成し、維持します。  
  • 警告:EDDGridコピーは、各チャンクのデータ値が変更されないと仮定します。 もし/when なら、chunk ファイルを手動で削除する必要があります。 bigParentディレクトリ /コピー/ datasetID / 変更・変更ログイン削除されたチャンクが置換されるようにリロードされるデータセット。 データセットに電子メールサブスクリプションがある場合、データセットが最初にデータをリロードし、データをコピーし始めると、データセットが再びロードしたときに2つのメールが届きます。 (自動的に) 新しいローカルデータファイルを検出します。  
  • すべての軸線値は等しくなければなりません。 左端を除く軸のそれぞれ (はじめて) , すべての値がすべての子供に等しくなければなりません. テストの精度は、MatchAxisNDigits, オーストラリアお問い合わせ  
  • 設定、メタデータ、変数 --EDDGridコピーは、同封されたソースのデータセットから設定、メタデータ、および変数を使用します。  
  • メタデータの変更 お問い合わせ 変更が必要な場合addAttributesまたはソースのデータセットに関連付けられた変数の順序を変更します。
    1. 変更するaddAttributesソースデータセットのdatasets.xml必要に応じて。
    2. コピーしたファイルの1つを削除します。
    3. 設定するログインデータセットをすぐにリロードします。 フラグを使うと、データセットに電子メールのサブスクリプションがある場合、データセットが最初にデータをリロードし、データをコピーし始めると、データセットが再び読み込まれるときの2つのメールが届きます。 (自動的に) 新しいローカルデータファイルを検出します。
    4. 削除されたファイルは新しいメタデータで再生されます。 ソースデータセットが利用できなくなったら、EDDGridコピーデータセットは、最も若いファイルであるため、再生されたファイルからメタデータを取得します。

EDDGridコピースケルトン ログイン

  <dataset type="EDDGridCopy" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
      <fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or false
        (the default)) -->
      <checkSourceData>...</checkSourceData> <!-- 0 or 1 -->
      <onlySince>...</onlySince> <!-- 0 or 1 -->
      <dataset>...</dataset> <!-- 1 -->
  </dataset>

EDDTableFromCassandraさん

EDDTableFromCassandraさん データを1つから処理するカサンドラテーブル。 CassandraはNoSQLデータベースです。

  • ERDDAP™Cassandra v2 と v3 で動作し、変更や設定の違いはありません。 私達はテストしましたCassandra v2 と v3 から パスワードお問い合わせ そうなるとERDDAP™DataStaxからダウンロードしたCassandraと連携することもできます。  
  • 2019年8月~2021年5月には、Casandra社がAdminOpenJdk社に勤務するトラブルが発生しました。Javav8. EXCEPTION\_ACCESS\_VIOLATION を投げる。 しかし今 (2021年5月) , その問題は消えます: 私達はCassandra v2.1.22を首尾よく使用し、OpenJdk jdk8u292-b10を採用します。  

1つのテーブル

Cassandraは、リレーショナルデータベースが行う方法で「joins」をサポートしていません。 ワンポイントERDDAP™EDDTableFromCassandra データセットのマップを1つに (おそらく1つのサブセット) カサンドラのテーブル。

カサンドラdatasets.xml

  • ERDDAP™Cassandraと来ますJavaドライバは別途インストールする必要はありません。
  • EDDTableFromCassandra に関するすべてのドキュメントの情報を注意深くお読みください。 詳細の一部は非常に重要です。
  • カサンドラJavaドライバーはApache Cassandraで動作するように意図されています (1.2 以上) DataStaxエンタープライズ (3.1以上) お問い合わせ Apache Cassandra 1.2.x を使用している場合は、各ノードの casssandra.yaml ファイルを編集して start\_native\_transport: true を設定し、各ノードを再起動する必要があります。
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます(特に[<パーティション キーソース名> (#partitionkeysourcename の名前) )。 あなたは、Cassandra管理者に連絡し、Webを検索することにより、EDDTableFromCassandraデータセットのためにXMLを作成するために必要な情報のほとんどを収集することができます。

生成データセット Xmlには、EDDTableFromCassandra の2つの特別なオプションがあります。

  1. 「!!!LIST!!!」に入ったら! (引用なし) キースペースでは、プログラムはキースペースのリストを表示します
  2. 特定のキースペースを入力し、「!!!LIST!!!」を入力すると (引用なし) 表名では、このプログラムは、そのキースペースとその列の表のリストを表示します。
ケース感度
  • ケースインセンティブなキースペースとテーブル名 - Cassandraは、大文字空間とテーブル名をケースインセンティブな方法で扱います。 そのため、予約済みワードを使わず、 (しかし、異なるケースで) Cassandraのキースペースかテーブルの名前として。
  • 症例のカラム名 -- デフォルトでは、Cassandra は、ケースインセンティブな方法でカラム名を扱います。 列名としてCassandraの予約語の1つを使う場合 (お問い合わせ) 、使用しなければならない
        <columnNameQuotes>"<columnNameQuotes>  

お問い合わせdatasets.xmlCassandra とERDDAP™カラム名をケースに敏感な方法で扱います。 これは、列名のケースに敏感なバージョンを決定するのが難しいため、これはおそらくあなたのための大規模な頭痛になります - Cassandraは、ほぼ常に真のケースに関係なく、すべての下段の列名が表示されます。

  • キャサンドラ管理者と密接に連携し、関連する経験を持たせます。 データセットがロードに失敗した場合は、エラーメッセージ理由を調べるために慎重に.  

カサンドラ<アクセス プロパティ>

Cassandraには接続プロパティがあり、datasets.xmlお問い合わせ これらの多くはカスサンドラのパフォーマンスに影響を与えます-ERDDAP™接続。 残念ながら、Cassandra プロパティはプログラム的に設定する必要がありますJava・・・ERDDAP™各プロパティのコードを持っている必要がありますERDDAP™サポート 現在、ERDDAP™これらのプロパティをサポートしています: (表示されるデフォルトは、私たちが見るものです。 システムのデフォルトは異なります。)

  • 一般的なオプション
    <アクセス プロパティ名=" コンプレッション ツイート なし|LZ4の特長|ログイン </接続 プロパティ> (ケースインセンティブ, default=none)
    (一般的な圧縮のアドバイス:CassandraとCassandraの間の接続とERDDAP™接続がリモート/スローの場合、ローカル/高速で「LZ4」を使用します。)
    <アクセス プロパティ名=" インフォメーション ツイート ユーザー名/パスワード </接続 プロパティ> (それはリテラルだ'/')
    <アクセス プロパティ名=" メトリック ツイート ログイン|パスワード </接続 プロパティ> (2021-01-25 は default=true で、無視され、常に false)
    <アクセス プロパティ名=" ポート ツイート ログイン </接続 プロパティ> (ネイティブバイナリプロトコルのデフォルト=9042)
    <アクセス プロパティ名=" ログイン ツイート ログイン|パスワード </接続 プロパティ> (デフォルト=false)
    (ssl が失敗したのを素早く使用しようとしました。 成功したら、どうしたか教えてください。)
  • クエリオプション
    <アクセス プロパティ名=" 一貫性 レベル ツイート すべて|その他|各\_量|ローカル\_one|ローカル\_quorum|ローカル\_serial|1|カリキュラム|シリアル|3|2 </接続 プロパティ> (ケースインセンティブ, default=ONE)
    <アクセス プロパティ名=" フェッチサイズ ツイート ログイン </接続 プロパティ> (デフォルト=5000)
    (fetchSize を小さい値に設定しないでください。)
    <アクセス プロパティ名=" シリアル一貫性レベル ツイート すべて|その他|各\_量|ローカル\_one|ローカル\_quorum|ローカル\_serial|1|カリキュラム|シリアル|3|2 </接続 プロパティ> (ケース・インセンティブ, default=SERIAL)
  • ソケットオプション
    <アクセス プロパティ名=" ConnectTimeoutMillisの使い方 ツイート ログイン </接続 プロパティ> (デフォルト=5000)
    (接続を設定しない TimeoutMillis は、より小さい値に。)
    <アクセス プロパティ名=" keepAliveを保って下さい ツイート ログイン|パスワード </接続 プロパティ> <アクセス プロパティ名=" 読みタイムアウトミリリス ツイート ログイン </接続 プロパティ> (Cassandra のデフォルト readTimeoutMillis は 12000 ですが、ERDDAP™デフォルトを120000に変更します。 Cassandra が readTimeouts をスローしている場合、Cassandra がこの時刻の前にそれらを投げる可能性があるため、これを増やすことは役に立ちません。 問題は、パーティションごとにあまりにも多くのデータを格納している可能性が高い 主組合せ。)
    <アクセス プロパティ名=" 受け取りバッファサイズ ツイート ログイン </接続 プロパティ> (デフォルトの receiveBufferSize が何であるかは不明です。 これを小さな値に設定しないでください。)
    <アクセス プロパティ名=" ソリンジャー ツイート ログイン </接続 プロパティ> <アクセス プロパティ名=" tcpNoDelayの特長 ツイート ログイン|パスワード </接続 プロパティ> (デフォルト=null)

他の接続プロパティを設定できるようにする必要がある場合は、追加サポートを受けるセクションお問い合わせ

Tomcat の起動時に、ConnectionProperties は、指定した Cassandra URL でデータセットが作成される初めてのみ使用されます。 同じ URL を共有するデータセットとそれ以降のすべてのデータセットのリロードは、元の connectProperties を使用します。

ログイン

Cassandraのクエリ言語 (ログイン) 従来のデータベースで使われるクエリ言語は SQL のように上等です。 なのでOPeNDAP's の表データリクエストは SQL の表形式のデータリクエストを移行するように設計されていました。ERDDAP™CQL Bound/PreparedStatements に表形式のデータリクエストを変換します。ERDDAP™ステートメントをログにログインとして テキストとしてステートメント: ステートメントAsText
参照するステートメントのバージョンは、ステートメントのテキスト表現であり、制約値が配置される「?」のみになります。  
それほど単純ではありません。 残念なことに、CQL には、制約のどのタイプとクエリできる列の制限が多々あります。例えば、パーティションキー列は = と IN で制約されるので、ERDDAP™Cassandraにいくつかの制約を送信し、Cassandraからデータが受信された後、すべての制約を適用します。 助けるためにERDDAP™Cassandraで効率的に対処し、指定する必要があります [<パーティション キーソース名> (#partitionkeysourcename の名前) , [ ]<クラスターColumnSourceNames> (#clusterカラム名) と [<インデックスColumnSourceNames> (#インデックスカラム名) お問い合わせdatasets.xmlこのデータセットの場合。 これらは助ける最も重要な方法ですERDDAP™Cassandraと効率的に働かせて下さい。 わからないERDDAP™この情報は、データセットが痛みを伴う遅くなりますERDDAP™Cassandraリソースのトンを使用してください。  

<パーティション キーソース名>

パーティションキーはカスサンドラのテーブルで中心的な役割を果たしているので、ERDDAP™自分の知る必要があるsourceNames と、関連する場合、それらに対処する方法についての他の情報。

  • パーティションキーソース列の名前のコンマ区切りリストを指定する必要がありますdatasets.xmlお問い合わせ<パーティション キーソース名>. 簡単な例、
        <partitionKeySourceNames>station, deviceid<partitionKeySourceNames>  

より複雑な例,

        <partitionKeySourceNames>deviceid=1007, date/sampletime/1970-01-01<partitionKeySourceNames>
  • TimeStampパーティションキー -- パーティションキー列の1つが、別のタイムスタンプ列のコアザーバージョンを持っているタイムスタンプ列の場合、これを経由して指定します パーティションキーSourcName/otherColumnSourceName/time\_precision
    どこまでもtime\_precisionの 1 つtime\_precision他の場所で使われる文字列ERDDAPお問い合わせ Zのトレースtime\_precisionstring はデフォルトです。そのため、デフォルトでは問題ありません。time\_precision文字列は Z で終了します。 例えば、ERDDAP™通訳日時/サンプル時間/1970-01-01 「日付の制約は、サンプルタイムの制約から構築できます。time\_precisionお問い合わせ 制約の実際の変換は複雑ですが、概観です。 関連するときはいつでもこれを使用してください。 それは可能にしますERDDAP™Cassandraと効率的に働くため。 列間のこの関係がカスサンドラのテーブルに存在しておらず、ERDDAP™、データセットは苦痛に遅いですERDDAP™Cassandraリソースのトンを使用してください。
  • シングル 値のパーティションキー -- あなたが望むならERDDAP™1つのパーティションキーの1つの値のみで動作するデータセット パーティションキーソース名=値 お問い合わせ たとえば、 deviceid=1007 の数値列の引用符を使用しないでください。 たとえば、ストリング列の引用符を使う。例えば、stationid="Point Pinos"
  • データセット デフォルト ソート順 -- パーティションキーの順序<dataVariable>のdatasets.xmlカスサンドラから結果のデフォルトのソート順を決定します。 もちろん、ユーザーは、追加して結果のセットのために異なるソート注文を要求することができます &orderBy (ツイート 変数のコンマ区切りリスト ツイート) クエリの最後に。
  • デフォルトでは、Cassandra とERDDAP™ケースインセンティブな方法でカラム名を扱います。 しかし、あなたが設定した場合columnNameクォートお問い合わせERDDAP™Cassandraカラム名をケースに敏感な方法で扱います。  

<パーティション キーCSV>

これが指定された場合、ERDDAP™パーティションのCassandraを要求する代わりに使用します データセットが再ロードされるたびにキー情報。 これは、使用する順序で、異なるパーティションキーの値のリストを提供します。 1970-01-01T00:00:00Z以降、時刻を秒単位で指定する必要があります。 しかし、時間を指定する2つの特別な代替方法もあります (各エンコードは文字列として) : : :

  1. 時間 (アソイ8601 タイムタイム) (MAY は文字列としてエンコードされます)
  2. 「時間」 (anISO8601StartTime, strideSeconds, 停止時間) ツイート (文字列としてエンコードされる必要があります)
    ストップ 時間はISO8601である場合もあります 時間または "now-nUnitsの時間 (例: "now-3分) お問い合わせ ストップ 時間は、開始の正確な一致である必要はありません 時間 + x strideSeconds. 毎回行列 () すべてのクエリの前に、値が複数の行に展開されるので、パーティションのリスト キーは常に最新です。 例えば、
    <partitionKeyCSV>
deviceid,date
1001,"times(2014-11-01T00:00:00Z, 86400, 2014-11-02T00:00:00Z)"
1007,"time(2014-11-07T00:00:00Z)"
1008,time(2014-11-08T00:00:00Z)
1009,1.4154912E9
</partitionKeyCSV>

パーティションキーの組み合わせのこのテーブルに展開します。

    deviceid,date
1001,1.4148E9
1001,1.4148864E9
1007,1.4153184E9
1008,1.4154048E9
1009,1.4154912E9

<clusterColumnSourceNames&gt ;

Cassandraはクラスターの列のSQLのような制約を受け入れます。これは主キーの第2部を形作るコラムです (仕切りのキーの後で (ツイート) ) お問い合わせ そのため、これらの列を経由して識別することが不可欠です。<クラスターColumnSourceNames>. これにより、ERDDAP™Cassandraと効率的に働くため。 クラスターの列がない場合、指示しないERDDAP、データセットは苦痛に遅いですERDDAP™Cassandraリソースのトンを使用してください。

  • 例えば、<クラスターColumnSourceNames> myClusterColumn1、myClusterColumn2 </clusterColumnSourceNames>
  • Cassandraテーブルにクラスター列がない場合、指定しない<clusterColumnSourceNames> または値を指定しない。
  • デフォルトでは、Cassandra とERDDAP™ケースインセンティブな方法でカラム名を扱います。 しかし、あなたが設定した場合columnNameクォートお問い合わせERDDAP™ケースに敏感な方法でCassandraカラム名を扱います。  

<indexColumnSourceNames> リソース

Cassandraは受け入れます'='二次インデックス列の制約は、明示的にインデックスを作成した列です。

    CREATE INDEX *indexName* ON *keyspace.tableName* (*columnName*);  

(はい、括弧が必要です。)
そのため、これらの列を経由して識別する場合、非常に便利です<インデックスColumnSourceNames>. これにより、ERDDAP™Cassandraと効率的に働くため。 インデックスの列がない場合、ERDDAP, いくつかのクエリは無必要になります, 痛みを伴う遅いでERDDAP™Cassandraリソースのトンを使用してください。

  • 例えば、<indexColumnSourceNames> ドキュメント myIndexColumn1、myIndexColumn2 </indexカラム名
  • Cassandraテーブルがインデックスカラムを持たない場合、指定しない<indexColumnSourceNames> または値を指定しない。
  • 警告: カサンドラのインデックスはデータベースのインデックスとは異なります。 Cassandraの索引は助けだけに助けます'='制約。 彼らだけおすすめ合計値よりもはるかに異なる値を持つ列の場合。
  • デフォルトでは、Cassandra とERDDAP™ケースインセンティブな方法でカラム名を扱います。 しかし、あなたが設定した場合columnNameクォートお問い合わせERDDAP™ケースに敏感な方法でCassandraカラム名を扱います。  

<maxRequestFraction>

いつかERDDAP™ (リリース) データセットをロードします。ERDDAP™キャサンドラからパーティションキーの異なる組み合わせのリストを取得します。 巨大なデータセットの場合、組み合わせの数が巨大になります。 ほとんどのデータセットから、ユーザーのリクエストを防止したい場合 (またはリクエストを要求するERDDAP™さらにフィルタリングするために、ほとんどのデータまたはすべてのデータをダウンロードするには) 、言うことができますERDDAP™組み合わせの数を減らすリクエストだけを経由して<maxRequestFraction> は 1e-10 間の浮動小数点数です (つまり、リクエストは10億個以上の組み合わせを必要としないということです。) と 1 (デフォルトは、リクエストがデータセット全体にできることを意味します) お問い合わせ たとえば、データセットがパーティションキーとmaxRequestFractionの10000の異なる組み合わせが0.1に設定されている場合、 1001以上の組み合わせからデータを必要とするリクエストは、エラーメッセージが生成されます。 ただし、1000以上の組み合わせからデータを必要とするリクエストは許可されます。

一般的に、データセットが大きいほど、設定した方が低い<maxRequestFraction> ディレクティブ 小さなデータセットでは、中型データセットでは0.1、大きなデータセットでは0.01、巨大なデータセットでは0.0001に設定できます。

このアプローチは、完璧なものから遠く離れたものです。 拒否された合理的な要求と、大きすぎる要求が許されていることにつながる。 しかし、それは難しい問題であり、このソリューションは何もないよりもはるかに優れています。

カサンドラsubsetVariables

他のEDDTableデータセットと同様に、コンマ区切りリストを指定できます。<dataVariableツイートdestinationNames は "subsetVariables" 限られた数の値を持つ変数を識別します。 dataset は .subset の Web ページを持ち、多くの Web ページでドロップダウン リスト内の変数の異なる値のリストを表示します。

リストのパーティションキー変数と静的な列だけを含むことは、STONGLY EですNCOお問い合わせ Cassandraは、データセットが再ロードされるたびに、素早く簡単に異なる組み合わせのリストを生成できます。 1つの例外は、いくつかの他のタイムスタンプ列の粗いバージョンであるタイムスタンプパーティションキーです - それはおそらくこれらのリストから離れることが最善ですsubsetVariablesたくさんの値があるため、ユーザーにはとても便利です。

非パーティションキー、リスト内の非静的変数を含む場合、おそらく お問い合わせ データセットが再ロードされるたびにカサンドラのために計算的に高価です。ERDDAP™データセットのすべての行を調べて、情報を生成する必要があります。 実際には、クエリは失敗する可能性があります。 そのため、非常に小さなデータセットを除いて、これは正式な説明です。

Cassandraのデータタイプ

そこには、その周囲がいくつかありますのでCassandraのデータ タイプサイトマップERDDAP™データ型は、 [[] を指定する必要があります。<データタイプ> (#データ型) 各タグ [<dataVariable>> (#データ変数) お問い合わせERDDAP™どの dataType を使うか。 標準規格ERDDAP™データデータ タイプ (最も一般的なCasandraデータタイプ) は:

  • ログイン (ログイン) , ,ERDDAP™バイトとして保存
  • バイト (int、範囲が-128から127の場合)
  • ショート (int、範囲が-32768から32767の場合)
  • ログイン (int、カウンター?、varint?、範囲が-2147483648から2147483647の場合)
  • ロング (bigint, カウンター?, varint?, 範囲が -9223372036854775808 に 9223372036854777)
  • フローティング (フローティング)
  • ダブル (ダブル、小数 (精密の損失の可能性あり) , タイムスタンプ)
  • チャート (ascii や text が 1 文字以上あることがない場合)
  • ストリング (ascii, テキスト, varchar, inet, uuid, timeuuid, blob, マップ, セット, リスト?)

カサンドラのタイムスタンプ特別な場合:使用ERDDAP'2つのデータ タイプ。

文字列 dataType を指定する場合ERDDAP™Cassandraのマップ、セット、リスト、マップ、各Cassandra行のセットまたはリストは、単一の行に単一の文字列に変換されますERDDAP™テーブル。ERDDAP™リストの代替システムがあります。以下を参照してください。

タイプ: リスト --ERDDAP? ? ? ?<データタイプ> (#データ型) CassandraのタグdataVariables は規則的な含めることができますERDDAP™データデータ タイプ (詳しくはこちら) また、Casandra リストの列に使用できるいくつかの特別な dataTypes: booleanList, byteList, ubyteList, shortList, ushortList, intList, uintList, longList, ulongList, floatList, DoubleList, charList, StringList. これらのリストの列の1つが結果に渡されるときERDDAP™ソースデータの各行がリストに展開されます。 サイズ: () データの行ERDDAP;簡単なデータ タイプ (例えば、int) そのソースデータ行に重複したリストが表示されます。 サイズ: () タイム。 結果に複数のリスト変数が含まれている場合、指定したデータの行のすべてのリストは同じサイズを持ち、 "parallel" リストでなければなりません。ERDDAP™エラーメッセージが生成されます。 たとえば、ADCP からの電流測定では、 深さ:\[0 の 0\], uCurrent\[0 の 0\], vCurrent\[0 の 0\]と zCurrent\[0 の 0\]すべての関連性があり、 深さ:\[1\], uCurrent\[1\], vCurrent\[1\]と zCurrent\[1\]すべて関連している、... あるいは、望まないとERDDAP™リストを複数の行に展開するERDDAP™テーブル、文字列を文字列として指定するdataVariableデータ リスト全体が 1 列の 1 つの文字列として表されるので、ERDDAPお問い合わせ

Cassandraのタイムスタンプのデータ

Cassandraのタイムスタンプデータは、常にタイムゾーンを認識しています。 タイムゾーンを指定せずにタイムスタンプデータを入力すると、Cassandra はタイムスタンプがローカルタイムゾーンを使用すると仮定します。

ERDDAP™タイムスタンプデータをサポートし、常にデータを表示します。Zulu/GMTタイムゾーン そのため、カサンドラのタイムスタンプデータを他のタイムゾーンを使用して入力する場合Zulu/GMTは、タイムスタンプデータのすべてのクエリを行う必要があることを覚えておいてくださいERDDAP™利用するZulu/GMTタイムゾーン から出てくるタイムスタンプ値が出てくると驚くことはありませんERDDAPローカルからタイムゾーンが切り替えるので、数時間でシフトされます。Zulu/GMTの時間。

  • インスタグラムERDDAPお問い合わせdatasets.xml, で<dataVariable> timestamp変数のタグ、セット
          <dataType>double</dataType>  

お問い合わせ<addAttributes> セット

          <att name="units">seconds since 1970-01-01T00:00:00Z</att>
  • 提案: データが時間範囲であれば、タイムスタンプ値がインプライド時間範囲の中央を参照するのに便利です。 (例えば、正午) お問い合わせ たとえば、ユーザーが別のデータセットから2010-03-26T13:00Zのデータを持っている場合、彼らは毎日データを持っているこのCassandraデータセットから最も近いデータが必要な場合は、2010-03-26T12:00Zのデータ (カサンドラのデータを表す日付) 明らかに最高です (夜中夜に反対して、それが最も少ない明らかである場所) お問い合わせ
  • ERDDAP™ユーティリティを持っている数値変換 文字列の時間から/までの時間お問い合わせ
  • お問い合わせ使い方ERDDAP™時間とともにお得な情報お問い合わせ  

整数null

CassandraはCassandraのintでnullを支えます (ERDDAP™ログイン) と bigint (ERDDAP™ロング) 列, しかしERDDAP™任意の整数データ型に対して真の null をサポートしません。 デフォルトでは、Cassandra 整数 null は変換されます。ERDDAP™に 2147483647 長い列のための int のコラム、または 9223372036854775807 のため。 これらは、テキスト出力ファイルの一部種類の「NaN」として表示されます。 (例えば、.csv) 他の種類のテキスト出力ファイルの "" (例えば、.htmlTable) 、および特定の番号 (2147483647 行方不明値) 他の種類のファイル (例えば、バイナリファイルなど.ncマット) お問い合わせ "NaN", "&windSpeed=NaN" を参照することで、このタイプの欠落値でデータの行を検索できます。

他の整数値を使用して、Cassandraテーブルに欠落している値を示す場合は、その値を識別してください。datasets.xml: : :

<att name="missing\_value" type="int"\>-999</att>

Cassandra の浮動小数点列の場合、null は NaNs に変換されます。ERDDAPお問い合わせ 文字列に変換されるCassandraのデータタイプERDDAP™, null は空の文字列に変換されます。 問題ではない。

「WARNING:既に準備済みのクエリを再準備する」

  • 「WARNING:既に準備済みのクエリを再準備する」 トームキャット /logs/catalina.outの特長 (またはその他の Tomcat ログファイル)
    Cassandraの文書は、同じクエリが準備された状態に2回作成されている場合、問題があることを述べています (以上) お問い合わせ (お問い合わせバグ報告お問い合わせ) Cassandraのマッドを作ることを避けるため、ERDDAP™すべての PreparedStatements をキャッシュして再利用することができます。 Tomcat/when の場合、そのキャッシュが失われます。ERDDAP™再起動しますが、準備された状態が与えられたセッションに関連付けられているので大丈夫だと思う (間の距離Javaカサンドラ) 、それはまた失われます。 これらのメッセージが表示されます。 私は他のソリューションを知らない。 幸いに、それは警告です、エラーではありません (カスサンドラは、それがパフォーマンスの問題につながるかもしれないことを脅かすが) お問い合わせ

準備された状態が永遠に良いであるCassandraの要求、従ってERDDAP's キャッシュされた PreparedStatements は、最新/無効な状態になるべきではありません。 そうでなければ、特定の PreparedStatements が古い/無効になっていることについてのエラーが出た場合、再起動する必要がありますERDDAP™クリアするERDDAPpreparedStatements のキャッシュ。

Cassandraの保証

お問い合わせカサンドラの確保

Cassandraと連携するときは、悪意のあるユーザーがあなたのCassandraを損傷したり、アクセスしていないデータへのアクセスを得ることを可能にすることを避けるために、安全かつ確実に物事を行う必要があります。ERDDAP™安全な方法で物事をしようとします。

  • セットアップをお待ちください。ERDDAP™CassandraユーザーとしてCassandraにのみアクセスできる 関連記事 テーブル (ツイート) READ 権限のみを持っています。
  • 接続の設定をおすすめします。ERDDAP™カサンドラへ
    • 常に SSL を使用しています。
    • 1つのIPアドレスからの接続を可能にするだけ (またはアドレスのブロック) ひとつからERDDAP™ユーザー、および
    • MD5ハッシュフォームのパスワードのみを転送します。
  • \[ノウェン・プロブレム\]接続プロパティ (パスワードを含む!) プレーンテキストとして保存されます。datasets.xmlお問い合わせ 管理者がCassandraパスワードを入力する方法が見つからなかったERDDAPTomcatのスタートアップ (ユーザーの入力なしで起こるか) なので、パスワードはファイルでアクセス可能でなければなりません。 これをより安全にするために:
    • お問い合わせ (お問い合わせERDDAP™管理者権限) 所有者であるべきdatasets.xmlREAD と WRITE へのアクセス
    • user=tomcat だけを含むグループを作る。 chgrp を使ってグループをdatasets.xml, ちょうど READ 権限で.
    • chmod を使用して o-rwx 権限を割り当てる ("other" ユーザの READ や WRITE へのアクセスがない) お問い合わせdatasets.xmlお問い合わせ
  • お問い合わせERDDAP™パスワードやその他の接続プロパティは「プライベート」に保存されます。Java変数。
  • クライアントからのリクエストは、Cassandra の CQL リクエストを生成する前に、妥当性を解析し、検証します。
  • Cassandraへの要求はCQLの傷/準備された状態と、CQLの注入を防ぐためになされます。 いずれにしても、カスサンドラは、従来のデータベースよりもCQL注射に本質的に少ない感受性ですSQLインジェクションお問い合わせ  

Cassandraの速度

Cassandraは速くまたは遅いである場合もあります。 それを高速にするためにできることがあります。

  • 一般 - CQLの性質は、クエリが宣言お問い合わせ ユーザが何を望むかを指定するだけです。 クエリが処理または最適化される方法の仕様やヒントは含まれていません。 そのため、方法はありません。ERDDAP™キャサンドラがクエリを最適化するのに役立つような方法でクエリを生成する (または、クエリが処理される方法を指定する) お問い合わせ 一般的に、Cassandra 管理者が物事をセットアップする (例えば、インデックス) 特定の種類のクエリを最適化します。  
  • coarser-precision timestamp パーティションキーに関連したタイムスタンプカラムを指定する[<パーティション キーソース名> (#partitionkeysourcename の名前) 助けるべき最も重要な方法はERDDAP™Cassandraと効率的に働かせて下さい。 この関係がカスサンドラのテーブルに存在しておらず、ERDDAP™、データセットは苦痛に遅いですERDDAP™Cassandraリソースのトンを使用してください。  
  • クラスターの列を[で指定する]<クラスターColumnSourceNames> (#clusterカラム名) 助ける2番目に重要な方法ですERDDAP™Cassandraと効率的に働かせて下さい。 クラスターの列がない場合、指示しないERDDAP, データの可能なクエリの大きなサブセットが不要になります, 痛みを伴う遅いでERDDAP™Cassandraリソースのトンを使用してください。  
  • メイクインデックス一般的に制約された変数については -- カサンドラのカラムのインデックスを作成すると、しばしば "="制約" で制約されているクエリを高速化できます。

Cassandra は、リスト、セット、またはマップの列のインデックスを作成できません。

  • インデックス列を [ ] で指定する<インデックスColumnSourceNames> (#インデックスカラム名) 助けるべき重要な方法はERDDAP™Cassandraと効率的に働かせて下さい。 インデックスの列がない場合、ERDDAP、データのためのある照会は無事に、痛みを伴う遅いですERDDAP™Cassandraリソースのトンを使用してください。  

Cassandraの統計

  • 「Cassandra stats」診断メッセージお問い合わせ 全てのためにERDDAP™Cassandraのデータセットへのユーザーの照会、ERDDAP™ログファイルに行を印刷します。 bigParentディレクトリ /logs/log.txt, クエリに関連するいくつかの統計, 例えば,
        \\* Cassandra stats: partitionKeyTable: 2/10000=2e-4 < 0.1 nCassRows=1200 nErddapRows=12000 nRowsToUser=7405  

上記の例で数字を使うと、次の意味があります。

  • いつかERDDAP™最後の投稿 (リリース) このデータセットをロードし、Cassandraは語りましたERDDAP™パーティションキーの10000の異なる組み合わせがありました。ERDDAP™ファイル内のすべての異なる組み合わせをキャッシュしました。
  • ユーザーの制約により、ERDDAP™目的のデータがあるかもしれない10000のから2つの組合せを識別しました。 お問い合わせERDDAP™パーティションキーの各組み合わせのために、Cassandra に 2 呼び出しを行います。 (それはCassandraが要求するものです。) 明らかに、大量のデータセットにパーティションキーのコンビネーションの数が多いと、与えられたリクエストが大幅に減少しない場合は、面倒です。 それぞれのリクエストがキースペースを削減して設定することで、キースペースを削減できる[<maxRequestFraction> ディレクティブ (#maxrequestfractionの) お問い合わせ ここに、2/10000=2e-4、maxRequestFractionより少しです (ツイート) リクエストは受け付けております。
  • パーティションキーの制約を適用した後、クラスターカラムインデックスカラム送信されましたERDDAP™、Cassandra は 1200 列のデータを戻しましたERDDAP™結果セットで。
  • 結果発表 セットは持っていなければなりませんデータデータ タイプ= いくつかのタイプ プロフィールコラム (リストごとの平均10項目) , のでERDDAP™Cassandraから1200行を12000行に拡張ERDDAPお問い合わせ
  • ERDDAP™常にCassandraからのデータにユーザーの制約のすべてを適用します。 この場合、Cassandra が処理されていない制約は、行数を 7405 に削減しました。 ユーザに送信された行数です。

これらの診断メッセージの最も重要な使用は、ERDDAP™自分が何をしているかをやっています。 もしそうでなければ (例えば、期待通りのコンビネーションの数を減らすことはない?) すると、情報を使用して何が間違っているのかを把握することができます。  

  • より良い発見と設定のための研究と実験 [<接続プロパティ> (#cassandra-connectionpropertyさん) お問い合わせ  
  • カサンドラとの間のネットワーク接続の速度をチェックERDDAPお問い合わせ 接続が遅い場合は、改善できるかどうかを確認します。 最高の状況はいつERDDAP™同じサーバに取り付けられたサーバ上で実行 (高速) 接続しているCassandraノードを実行しているサーバーとして切り替えます。  
  • お問い合わせ ここに情報を読むとCassandraの文書を慎重に. 実験。 あなたの仕事を確認してください。 カサンドラの場合-ERDDAP™接続は期待以上に遅くなりますが、Cassandraテーブルのスキーマと、あなたのCassandraテーブルのスキーマとあなたのERDDAP™チャンクのdatasets.xmlお問い合わせ追加サポートを受けるセクションお問い合わせ  
  • 他のすべてが失敗した場合, 収集したデータの保存を検討するNetCDFv3の.ncファイル (特に.nc使用するファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 一貫性のあるレイド配列のデータ構造なので、ERDDAPお問い合わせEDDTableFromNcCFファイル) お問い合わせ 論理的に整理されている場合 (スペースと時間のチャンクのためのデータとそれぞれ) ,ERDDAP™データを素早く抽出することができます。  

EDDTableFromCassandra スケルトンXML

  <dataset type="EDDTableFromCassandra" datasetID\="..." active\="..." >
      <ipAddress>...</ipAddress>
        <!-- The Cassandra URL without the port number, for example,
        127.0.0.1 REQUIRED. -->
      <connectionProperty name="name">value</connectionProperty>
        <!-- The names (for example, "readTimeoutMillis") and values
          of the Cassandra properties that ERDDAP™ needs to change.
          0 or more. -->
      <keyspace>...</keyspace> <!-- The name of the keyspace that has
        the table. REQUIRED. -->
      <tableName>...</tableName> <!-- The name of the table, default = "".
        REQUIRED. -->
      <partitionKeySourceNames>...<partitionKeySourceNames>
        <!-- REQUIRED. -->
      <clusterColumnSourceNames>...<clusterColumnSourceNames>
        <!-- OPTIONAL. -->
      <indexColumnSourceNames>...<indexColumnSourceNames> <!-- OPTIONAL. -->
      <maxRequestFraction>...<maxRequestFraction>
        <!-- OPTIONAL double between 1e-10 and 1 (the default). -->
      <columnNameQuotes>...<columnNameQuotes> <!-- OPTIONAL.
        Options: \[nothing\] (the default) or ". -->
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more.
         Each dataVariable MUST include a <dataType> tag. See
           Cassandra DataTypes.
         For Cassandra timestamp columns, set dataType=double and
         units=seconds since 1970-01-01T00:00:00Z -->
  </dataset>

EDDTableFromDapSequence (EDDTableFromDapSequence) の使い方

EDDTableFromDapSequence (EDDTableFromDapSequence) の使い方 変数を 1 および 2 レベルのシーケンス内で扱いますDAPサーバなどDAPパープル (お問い合わせ https://www.pmel.noaa.gov/epic/software/dapper/ 、今中断される) お問い合わせ

  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。 お使いのブラウザのソースデータセットのDDSとDASファイル(.dasと.ddsを追加する)を見て、必要な情報を収集できます。sourceUrl(例) https://dapper.pmel.noaa.gov/dapper/epic/tao\\_time\\_series.cdp.dds )。

  • 変数はDAP.dds 応答が変数を保持するデータ構造が "sequence" であることを示す場合のシーケンス (場合の無感覚) お問い合わせ

  • 場合によっては、シーケンス内のシーケンス、 2- レベルシーケンス -- EDDTableFromDapSequence がこれらを処理します。

EDDTableFromDapSequence スケルトン ログイン

  <dataset type="EDDTableFromDapSequence" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <outerSequenceName>...</outerSequenceName>
        <!-- The name of the outer sequence for DAP sequence data.
        This tag is REQUIRED. -->
      <innerSequenceName>...</innerSequenceName>
        <!-- The name of the inner sequence for DAP sequence data.
        This tag is OPTIONAL; use it if the DAP data is a two level
        sequence. -->
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <sourceCanConstrainStringEQNE>true|false</sourceCanConstrainStringEQNE>
      <sourceCanConstrainStringGTLT>true|false</sourceCanConstrainStringGTLT>
      <sourceCanConstrainStringRegex>...</sourceCanConstrainStringRegex>
      <skipDapperSpacerRows>...</skipDapperSpacerRows>
        <!-- skipDapperSpacerRows specifies whether the dataset
        will skip the last row of each innerSequence other than the
        last innerSequence (because Dapper servers put NaNs in the
        row to act as a spacer). This tag is OPTIONAL. The default
        is false. It is recommended that you set this to true for
        all Dapper sources and false for all other data sources. -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
    </dataset>

EDDTableFromデータベース

EDDTableFromデータベース 1つのリレーショナルデータベーステーブルからデータを処理します。ニュース

1つのテーブルか眺め

あなたがサービスしたいデータが2つ以上のテーブルにある場合 (JOINでは、両方のテーブルからデータを一度に抽出する) 1 つを作る必要があります正規化 (すでに登録済み) テーブルかニュース 1つのデータセットとして利用できるようにしたいすべてのデータとERDDAPお問い合わせ

大規模で複雑なデータベースでは、非正規化テーブルとして複数のチャンクを分離することが理にかなっています。それぞれに異なる種類のデータセットが分離されます。ERDDAPお問い合わせ

使用のための非正規化テーブルを作るERDDAP™あなたにとってクレイジーなアイデアのように聞こえるかもしれません。 お問い合わせ 理由はいくつかありますERDDAP™非正規化テーブルで動作します。

  • 使いやすさが大幅です。 いつかERDDAP™データセットを1つ、シンプル、非正規化、単一テーブルとして表示し、誰がデータを理解するのは非常に簡単です。 ほとんどのユーザーは、正規化テーブルを聞いたことがないし、キー、異物キー、テーブルの結合が非常に少ないため、ほぼ確実に異なるタイプの参加の詳細や、参加するSQLを指定する方法がわからない (または複数の参加) お問い合わせ 異常なテーブルを使用して、すべての問題を避けます。 そのため、データセットを提示するための非正規化された単一テーブルの使用だけを正当化します。ERDDAP™ユーザー。  
  • 正規テーブル (キー列に関連した複数のテーブル) データをデータベースに保存するのに便利です。 しかし、SQLでも、ユーザーに返される結果は非正規化です。 (ログイン) シングルテーブル。 そのため、ユーザにデータセットを巨大な、非正規化、それらがサブセットを要求できる単一テーブルとして提示することは合理的だそうです (例: 温度の表の行を表示> 30日) お問い合わせ  
  • 変更を加えることができますERDDAP™テーブルを変更することなく ERDDAP™データベースの設定方法と異なる可能性があるいくつかの要件があります。 例えば、ERDDAP™タイムスタンプデータを「タイムゾーン」フィールドで保存する必要があります。 別々のテーブル/ビューを作ることでERDDAP™, あなたは、非正規化テーブルを作るときに、これらの変更を行うことができますERDDAPお問い合わせ そのため、テーブルの変更をする必要はありません。  
  • ERDDAP™正規化テーブルの構造の一部を再作成します。 'outer' のテーブルからデータがどの列に来るかを指定できます。そのため、特定の値が制限されています。ERDDAP™これらの列内の値の異なる組み合わせのすべてを収集し、ユーザーに特別なものを提示します。 ユーザーがデータセットのサブセットをすばやく選択するのに役立つサブセットのWebページ。 各列の異なる値も、データセットの他のWebページ上のドロップダウンリストに表示されます。  
  • 正規化されたテーブルは、あなたからデータを手渡しますERDDAP管理者は容易に。 このデータセットのエキスパートなので、どのテーブルとどの列が参加するか、また参加方法について決定するということが分かります。 お問い合わせ (または悪化し、エンドユーザー) いくつかのテーブルとそれらに参加する方法についての詳細な手順は、正規化テーブルへのアクセスを私たちに与えるだけです。  
  • 非正規化されたテーブルは、データを効率的にアクセスすることができます。 通常化されたフォームは通常、正規化フォームよりもアクセスが速くなります。 参加は遅くなります。 複数の参加は非常に遅くなります。  

データベース内の2つ以上のテーブルからデータを取得するにはERDDAP™3つのオプションがあります。  

  • 推薦された選択: 正規化テーブルからデータをコンマまたはタブ区切り値ファイルを作成できます。 データセットが大きければ、複数のファイルを作成することは理にかなっています。それぞれは非正規化テーブルの集合 (例えば、より小さい時間範囲のデータ) お問い合わせ

ここに大きな利点は、ERDDAP™データベースのさらなる努力なしに、データに対するユーザーの要求を処理することができるようになります。 お問い合わせERDDAP™データベースやセキュリティリスクに負担をかけません。 これは、ほとんどすべての状況下で最高のオプションです。ERDDAP™通常、データベースより高速なファイルからデータを取得できます (.csv ファイルを変換する場合.ncCFファイル) お問い合わせ (理由の一部は、ERDDAP+files は読み取り専用のシステムであり、提供中に変更を加えるに対処する必要はありません。アクセス (大気、一貫性、分離、耐久性) お問い合わせ) また、 RAID の 1 つにデータを保存し、既存のサーバーにアクセスできるので、別のサーバーを必要としません。ERDDAP™既存のサーバーで。

  • オプション: 別のコンピューターに新しいデータベースをデノーマライズしたテーブルで設定します。 データベースは MariaDB や MySQL 、 PostgreSQL などのオープンソース・データベースとして無料で使えるので、このオプションはあまり費用がかかりません。

ここに大きな利点は、ERDDAP™現行のデータベースにより、さらなる努力をすることなく、データに対するユーザーの要求を処理します。 お問い合わせERDDAP™現在のデータベースに負担をかけません。 以来、多くのセキュリティ上の懸念を排除ERDDAP™現在のデータベースにアクセスできません。

  • 推奨オプション: つながるERDDAP™現在のデータベースへ。 これを行うには、以下が必要です。

    • 別のテーブルを作成したり、データを非正規化したテーブルで表示したりできます。
    • 正規化テーブルのみに読み取り専用のアクセスを持つ「erddap」ユーザーを作成します。 (ツイート) お問い合わせ  

これは、データが非常に頻繁に変化し、あなたが与えたい場合のオプションですERDDAP™ユーザーは、これらの変更に即座にアクセスします。ただし、その場合でも、上記のファイルオプションを定期的に使用することを感じることがあります。 (30分毎に?) 今日のデータを持つファイルを置き換えます。 このアプローチの巨大な欠点は、ERDDAP™ユーザのリクエストは、おそらくデータベースに大きな負担をかけることでしょう。ERDDAP™接続はセキュリティリスク (リスクを最小化・管理できますが) お問い合わせ

異常なテーブルを作るか、またはのための眺めERDDAP™いくつかの変更を加えることは良い機会ですERDDAP™あなたの元のテーブルに影響を与えない方法で、ニーズ:

  • Date と timestamp フィールド/列を変更して、Postgres がコールする dataType を使用するタイムゾーンのタイムスタンプ (またはデータベースの等価) お問い合わせ タイムゾーン情報なしでタイムスタンプが正しく機能しないERDDAPお問い合わせ
  • ユーザーが頻繁に検索する列のインデックスを作成します。
  • お問い合わせフィールド/カラム名の場合 (例えば、すべての小文字を使用する) それらを入力するとき。
  • テーブルとフィールド/列名で予約した単語を使用しないでください。

異常なテーブルやビューのヘルプが必要な場合は、データベース管理者にお問い合わせください。 このアプローチについて話したり、最善を尽くしたりしたい場合は、Chrisにメールしてください。 noaaa.gov のジョン。

データベースdatasets.xml

正しい作成が難しいdatasets.xml必要な情報ERDDAP™データベースへの接続を確立する。 患者になる。 方法的である。

  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

生成データセット Xmlには、EDDTableFromDatabase の3つの特別なオプションがあります。

  1. 「!!!LIST!!!」に入ったら! (引用なし) カタログ名の場合は、カタログ名のリストが表示されます。
  2. 「!!!LIST!!!」に入ったら! (引用なし) スキーマ名の場合は、スキーマ名のリストが表示されます。
  3. 「!!!LIST!!!」に入ったら! (引用なし) 表名の場合、プログラムはテーブルとその列のリストを表示します。 あなたが作る最初の「!!!LIST!!!」エントリは、使用されるものです。
  • EDDTableFromDatabase に関するすべてのドキュメントの情報を注意深くお読みください。
  • データベース管理者に連絡し、Webを検索することで、EDDTableFromDatabaseデータセット用のXMLを作成するために必要なほとんどの情報を収集できます。
  • データベースは、多くの場合、列名とテーブル名をケースインセンティブな方法で扱うが、それらはケースインセンティブである。ERDDAPお問い合わせ そのためデータベースからエラーメッセージがカラム名が不明であると述べた場合 (たとえば "Unknown identifier= お問い合わせ カラム\_name ' ' ') 存在しているにもかかわらず、例えば、すべての首都を使ってみてください。 コラム つまり、カラム名の真のケースに敏感なバージョンです。
  • データベース管理者と密接に連携し、関連する経験を持たせます。 データセットがロードに失敗した場合は、エラーメッセージ理由を調べるために慎重に.  

JDBCドライバ

  • [JDBCドライバと<ドライバ名> (#jdbc ドライバー) お問い合わせ データベースの JDBC 3 または JDBC 4 ドライバー .jar ファイルを取得する必要があります。 それを入れて下さい トームキャット /webapps/erddap/WEB-INF/lib インストール後ERDDAPお問い合わせ それから、あなたのdatasets.xmlこのデータセットでは、<このドライバのドライバ名> (残念ながら) ファイル名とは異なる。 データベースのJDBCドライバとドライバの名前のWebを検索するJava使う必要があります。

JDBC ドライバー .jar を入れた後ERDDAP™lib ディレクトリは、GenerateDatasets 用の .bat および/または .sh スクリプトファイル内の .jar ファイルへの参照を追加する必要があります。 Xml, DasDds, およびアーカイブADataset にある トームキャット /webapps/erddap/WEB-INF/ ディレクトリ; それ以外の場合は、これらのスクリプトを実行したときに ClassNotFoundException を取得します。

残念ながら、JDBCはトラブルの原因となります。 間接的な役割ERDDAP™そして、データベースは、標準/一般的なデータベースSQLリクエストに微妙な変更を加えることがあります。ERDDAP™これにより、問題を引き起こします (例えば、関連するtop/lowercase 識別子関連する日付/時刻タイムゾーン) お問い合わせ 患者様は、ここの情報をよくお読みいただき、ご確認の上、当社をご覧ください。追加サポートを受けるセクションお問い合わせ

データベース<アクセス プロパティ>

  • ツイート<接続プロパティ> (#database-connectionプロパティ) お問い合わせ お問い合わせdatasets.xmlデータセットの場合、複数の接続を定義する必要があります。 物件タグを伝えたいERDDAP™データベースに接続する方法 (たとえば、ユーザ名、パスワード、ssl 接続、およびフェッチサイズ) お問い合わせ これらは、あらゆる状況で異なり、少し難しいです。 JDBC ドライバーを使用してデータベースに接続する例を Web で検索します。 ザ・オブ・ザ・<connectProperty> 名前 (たとえば "user", "password", "ssl") 「JDBC接続プロパティ」のWebを検索することで、connectionProperty値の一部が確認できます。 データベース タイプ: ツイート (例えば、Oracle、MySQL、Amazon RDS、MariaDB、PostgreSQL) お問い合わせ  

名前および場合の感受性のための引用

  • 分野/コラムの名前のための引用;場合の感受性- デフォルトでは、EDDTableFromDatabase は ANSI-SQL-Standard のダブルクォーツを SELECT ステートメントのフィールド/列の名前の周りに置きます。フィールド/列名、またはフィールド/列の名前の特別な文字として予約した単語を使用します。 二重引用符は、SQLインジェクション攻撃の特定のタイプを脅かすこともできます。 教えてくださいERDDAP™", ', または引用句を経由して使用するために<columnNameクォート> お問い合わせdatasets.xmlこのデータセットの場合。

多くのデータベースでは、任意のタイプの引用を使用して、データベースは、ケースの敏感な方法でフィールド/列名で動作する (デフォルトのデータベースケースの代わりに、無感覚な方法) お問い合わせ データベースは、多くの場合、ケースの敏感なフォームが異なる場合、実際のところ、すべての上限のケースとしてファイル/列の名前を表示します。 インスタグラムERDDAP™常にデータベースのカラム名をケースとして扱います。

  • マリアのために DB では、データベースをデータベースで実行する必要があります。\-sql-mode=ANSI\_QUOTESお問い合わせ

  • MySQL と Amazon RDS の場合、データベースを実行する必要があります。\-sql-mode=ANSI\_QUOTESお問い合わせ

  • OracleANSI-SQL標準ダブルクォートをサポートデフォルトでお問い合わせ

  • PostgreSQL は ANSI-SQL-Standard のダブルクォートをサポートしています。

データベース、カタログ、スキーマ、テーブルの名前は予約済みです。ERDDAP™周りの引用符を置きません。

可能であれば、データベーステーブルを作成するときにデータベース、カタログ、スキーマ、テーブル名、フィールド名のすべての小文字を使用する (またはビュー) フィールド/カラム名を参照する場合datasets.xmlお問い合わせERDDAPお問い合わせ それ以外の場合は、データベース、カタログ、スキーマ、テーブル、および/またはフィールドが見つからなかったというエラーメッセージが表示されます。 そのエラーメッセージが表示された場合は、ケースに敏感なバージョン、すべての上限文字バージョン、および名前の全ての下文字バージョンを使用してみてください。ERDDAPお問い合わせ それらの1つが機能する場合があります。 そうでない場合は、データベース、カタログ、スキーマ、および/またはテーブルの名前をすべての小文字に変更する必要があります。

データベース<データデータ タイプ及びgt;

  • データベースツイート<データタイプ> (#データ型) タグ -- そこには、その周囲がいくつかありますのでデータベースデータの種類サイトマップERDDAP™データ型は、 [[] を指定する必要があります。<データタイプ> (#データ型) 各タグ [<dataVariable>> (#データ変数) お問い合わせERDDAP™どの dataType を使うか。 問題の部分は、異なるデータセットは、さまざまなデータタイプの異なる用語を使用することです。そのため、名前だけでなく、定義に常に一致しようとします。 説明を参照してください。スタンダードERDDAP™データデータ タイプは、対応するSQLデータ型への参照を含む。日付とタイムスタンプ特別な場合: 使用ERDDAP'2つのデータ タイプ。  

データベースの日付時刻データ

データベースの日付時刻列には明示的なタイムゾーンはありません。 そのような列は問題ですERDDAPお問い合わせ データベースは、日付の概念をサポート (時間の有無にかかわらず) タイムゾーンがない場合、時間範囲が近くなります。 しかし、Java (こうしてERDDAP) タイムゾーンで即時の date+times のみを扱います。 そのため、日付データがローカルタイムゾーンに基づいていることを知ることができます。 (日光の節約の時間なしでまたは) またはGMT/Zuluタイムゾーン, しかしJava (そして、ERDDAP) コメントはありません。 私たちはもともとこの問題を回避できると考えた (例えば、カラムのタイムゾーンを指定することで) , しかし、データベース+JDBC+Javaインタラクションは、この信頼できないソリューションを作成しました。

  • お問い合わせERDDAP™JDBC型に対応したデータベースデータ型「タイムゾーンでのタイムスタンプ」で、データベーステーブルに日時データを保存しておく必要があります。 (理想的には、GMT /を使用するZuluタイムゾーン) お問い合わせ
  • インスタグラムERDDAPお問い合わせdatasets.xml, で<dataVariable> timestamp変数のタグ、セット

      <dataType>double</dataType>

お問い合わせ<addAttributes> セット

          <att name="units">seconds since 1970-01-01T00:00:00Z</att>
  • 提案: データが時間範囲であれば、タイムスタンプ値がインプライド時間範囲の中央を参照するのに便利です。 (例えば、正午) お問い合わせ たとえば、ユーザーが別のデータセットから2010-03-26T13:00Zのデータを持っている場合、毎日データを持つデータベースデータセットから最も近いデータが必要な場合は、2010-03-26T12:00Zのデータベースデータ (その日付のデータを表す) 明らかに最高です (夜中夜に反対して、それが最も少ない明らかである場所) お問い合わせ
  • ERDDAP™ユーティリティを持っている数値変換 文字列の時間から/までの時間お問い合わせ
  • お問い合わせ使い方ERDDAP時間とともにお得な情報お問い合わせ

整数null

データベースは整数でnullをサポート (ミント, 小さな, 小さな) 列, しかしERDDAP™true null をサポートしていません。 データベースの null は変換されますERDDAP™127 バイトの列, 255 のための ubyte カラム, 32767 短い列, 65535 ushort カラム, 2147483647 int カラム, 4294967295 uint カラム, 9,223,372,036,854,775,807 長い列,または 18446744009551615 ulong カラム. これらのデフォルトを使用する場合は、それらを識別してくださいmissing\_values データセットのユーザーのためのERDDAP™お問い合わせ

<att name="\_FillValue" type="int"\>2147483647</att>

または

<att name="\_FillValue" type="short"\>32767</att>

あるいは「」を使うこともできます。missing\_value"\_FillValue" の代わりに "属性" 生成データセット Xml は、提案した \_FillValue 属性を自動的に追加します。datasets.xmlデータベースデータセット用

データベースの浮動小数列の場合、null は NaNs に変換されますERDDAPお問い合わせ 文字列に変換されるデータベースデータ型ERDDAP™, null は空の文字列に変換されます。

データベースのセキュリティ

  • データベースと連携するときは、悪意のあるユーザーがデータベースを損傷したり、アクセスできないデータにアクセスしたりすることを避けるために、できるだけ安全かつ安全に物事を行う必要があります。ERDDAP™安全な方法で物事をしようとします。
    • 別のコンピュータ、データベースとデータベーステーブルに、必要なデータを複製することを検討してください。ERDDAP™お問い合わせ (はい、商用データベースなどOracle、これは追加のライセンス料を含みます。 しかし、PostgreSQL、MySQL、Amazon RDS、MariaDBなどのオープンソースのデータベースでは、この費用は全くありません。) これはあなたに高いレベルのセキュリティを与え、また防止しますERDDAP™元のデータベースを遅くするからのリクエスト。
    • セットアップをお待ちください。ERDDAP™データベースにのみアクセスできるデータベースユーザーとして接続する 関連記事 データベース (ツイート) READ 権限のみを持っています。
    • 接続の設定をおすすめします。ERDDAP™データベースへ
      • 常に SSL を使用しています。
      • 1つのIPアドレスからの接続を可能にするだけ (またはアドレスのブロック) ひとつからERDDAP™ユーザー、および
      • MD5ハッシュフォームのパスワードのみを転送します。
    • \[ノウェン・プロブレム\]接続プロパティ (パスワードを含む!) プレーンテキストとして保存されます。datasets.xmlお問い合わせ 管理者がデータベースのパスワードを入力することを可能にする方法が見つからない場合ERDDAPTomcatのスタートアップ (ユーザーの入力なしで起こるか) なので、パスワードはファイルでアクセス可能でなければなりません。 これをより安全にするために:
      • お問い合わせ (お問い合わせERDDAP™管理者権限) 所有者であるべきdatasets.xmlREAD と WRITE へのアクセス
      • user=tomcat だけを含むグループを作る。 chgrp を使ってグループをdatasets.xml, ちょうど READ 権限で.
      • chmod を使用して o-rwx 権限を割り当てる ("other" ユーザの READ や WRITE へのアクセスがない) お問い合わせdatasets.xmlお問い合わせ
    • お問い合わせERDDAP™パスワードやその他の接続プロパティは「プライベート」に保存されます。Java変数。
    • クライアントからのリクエストは、データベースのSQLリクエストを生成する前に、バリデーションをパースしてチェックします。
    • データベースへのリクエストは SQL の PreparedStatements で行なわれます。SQLインジェクションお問い合わせ
    • データベースへのリクエストの実行 クエリ (実行しない状態) 読み取り専用のリクエストを制限する (そのため、データベースを変更するSQLインジェクションがこの理由で失敗します。) お問い合わせ  

ログイン

  • なのでOPeNDAP's の表データリクエストは SQL の表形式のデータリクエストを移行するように設計されていました。ERDDAP™表形式のデータリクエストをシンプルなSQL PreparedStatementに変換します。 例えば、ERDDAP™リクエスト
    time,temperature&time>=2008-01-01T00:00:00Z&time&lt;=2008-02-01T00:00:00Z  

SQL PreparedStatement に変換されます。

    SELECT "time", "temperature" FROM *tableName*  
WHERE "time" >= 2008-01-01T00:00:00Z AND "time" &lt;= 2008-02-01T00:00:00Z

ERDDAP™&distinct のリクエスト () および/または及びorderBy ( 変数 ) DISTINCT や ORDER BY を追加 変数 SQL の準備されたステートメントに。 一般的に、データベースからの応答を非常に遅くします。 ERDDAP™preparedStatement のログログインとして

    statement=*thePreparedStatement*  

これは、準備された状態のテキスト表現になります。これは、実際の準備された状態とは若干異なります。 たとえば、 PreparedStatement では、特別な方法で時刻がエンコードされます。 しかし、テキスト表現では、ISO 8601の日付時刻として表示されます。  

データベース速度

  • データベースを遅くすることができます。 あなたができることがあります:
    • 一般 - SQLの性質は、クエリが宣言お問い合わせ ユーザが何を望むかを指定するだけです。 クエリが処理または最適化される方法の仕様やヒントは含まれていません。 そのため、方法はありません。ERDDAP™データベースがクエリを最適化するのに役立つような方法でクエリを生成する (または、クエリが処理される方法を指定する) お問い合わせ 一般的には、物事をセットアップするデータベース管理者までです。 (例えば、インデックス) 特定の種類のクエリを最適化します。
フェッチサイズを設定する

データベースはデータを返すERDDAP™チャンクで. デフォルトでは、異なるデータベースはチャンク内の異なる行数を返します。 多くの場合、この数字は非常に小さく、非常に非効率です。 例えば、デフォルトはOracle10 です! データベースの JDBC ドライバーの JDBC ドキュメントを読んで、これを増やすために設定する接続プロパティを見つけ、データセットの記述にこれを追加します。datasets.xmlお問い合わせ 例えば、 MySQL と Amazon RDS の場合、

        <connectionProperty name="defaultFetchSize">10000</connectionProperty>  

MariaDBでは、フェッチサイズを変更する方法はありません。 しかし、それは要求された機能なので、これが実装されているかどうかを確認するWebを検索します。 お問い合わせOracle、使用して下さい

        <connectionProperty name="defaultRowPrefetch">10000</connectionProperty>  

PostgreSQL では、

        <connectionProperty name="defaultRowFetchSize">10000</connectionProperty>  

しかし、数を変えるために自由に感じて下さい。 余りに大きい数を置くことは引き起こしますERDDAP™メモリを多く使用し、メモリから実行する可能性が高い。

接続プロパティ

各データベースには、他の接続プロパティが指定できるものがあります。datasets.xmlお問い合わせ これらの多くは、データベースのパフォーマンスに影響を及ぼしますERDDAP™接続。 データベースのJDBCドライバのドキュメントをお読みください。 便利な接続プロパティが見つかられば、詳細にメールを送信してくださいerd dot data at noaa dot govお問い合わせ

  • テーブルを作る -- 定期的に応答が早くなります。 (毎日? 新しいデータがある場合、いつでも?) 実際のテーブルを生成する (VIEW を生成する方法と同様に) そして言うことERDDAP™VIEWの代わりにテーブルからデータを取得する。 JOINingの別のテーブルなしでテーブルを要求する任意のので、応答ははるかに高速になります。
  • テーブルを真空 - MySQL と Amazon RDS は、使用するとはるかに高速に応答します。カスタマイズテーブルお問い合わせ マリア 使用するとDBがより速く応答しますカスタマイズテーブルお問い合わせ PostgreSQL がより速く応答します。真空ポンプテーブル。 Oracleアナログコマンドがない場合、または必要ありません。
  • メイクインデックス一般的に制約された変数については -- 変数のデータベースにインデックスを作成することで、多くの/most クエリを高速化できます。 (どのデータベースが「列」と呼ぶか) ユーザーの問い合わせに制約されることが多いです。 一般的に、これらは[]で指定された同じ変数です。<subsetVariables>> (#サブセット変数) そして/または緯度、経度、時間変数。
関係のプールの使用

普通、ERDDAP™リクエストごとにデータベースへの個別の接続を行います。 これは最も信頼できるアプローチです。 より高速な選択肢は、接続プールをサポートするDataSourceを使用することです。 設定するには、 (例えば)

        <dataSourceName>java:comp/env/jdbc/postgres/erddap</dataSourceName>  

隣接する<sourceUrl>,<ドライバ名><アクセス プロパティ>. そして、 トームキャット /conf/context.xml は、例えば同じ情報を持つリソースを定義します。

        <Resource  
name="jdbc/postgres/erddap" auth="Container" type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="*jdbc:postgresql://somehost:5432/myDatabaseName*"
username="*myUsername*" password="*myPassword*"
initialSize="0" maxActive="8" minIdle="0" maxIdle="0" maxWait="-1"/>

DataSourceの使用に関する一般的な情報は、 https://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html お問い合わせ お問い合わせTomcatのデータソース情報そして、Tomcat DataSourceの事例または、他のアプリケーションサーバーで DataSources の使用例の Web を検索します。

  • 他のすべてが失敗した場合, 収集したデータの保存を検討するNetCDFv3の.ncファイル (特に.nc使用するファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 一貫性のあるレイド配列のデータ構造なので、ERDDAPお問い合わせEDDTableFromNcCFファイル) お問い合わせ 論理的に整理されている場合 (スペースと時間のチャンクのためのデータとそれぞれ) ,ERDDAP™データを素早く抽出することができます。  

EDDTableFromDatabase スケルトン ログイン

  <dataset type="EDDTableFromDatabase" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
        <!-- The format varies for each type of database, but will be
          something like:
          For MariaDB: jdbc:mariadb://xxx.xxx.xxx.xxx:3306/databaseName
          For MySql jdbc:mysql://xxx.xxx.xxx.xxx:3306/databaseName
          For Amazon RDS: jdbc:mysql://xxx.xxx.xxx.xxx:3306/databaseName
          For Oracle: jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:databaseName
          For Postgresql: jdbc:postgresql://xxx.xxx.xxx.xxx:5432/databaseName
          where xxx.xxx.xxx.xxx is the host computer's numeric IP address
          followed by :PortNumber (4 digits), which may be different for your
          database. REQUIRED. -->
      <driverName\>...</driverName>
        <!-- The high-level name of the database driver, for example,
          "org.postgresql.Driver". You need to put the actual database
          driver .jar file (for example, postgresql.jdbc.jar) in
          tomcat/webapps/erddap/WEB-INF/lib. REQUIRED. -->
      <connectionProperty name="name">value</connectionProperty>
        <!-- The names (for example, "user", "password", and "ssl")
          and values of the properties needed for ERDDAP™ to establish
          the connection to the database. 0 or more. -->
      <dataSourceName>...</dataSourceName> <!-- 0 or 1 -->
      <catalogName>...</catalogName>
        <!-- The name of the catalog which has the schema which has the
          table, default = "". OPTIONAL. Some databases don't use
          this. -->
      <schemaName>...</schemaName> <!-- The name of the
        schema which has the table, default = "". OPTIONAL. -->
      <tableName>...</tableName> <!-- The name of the
        table, default = "". REQUIRED. -->
      <columnNameQuotes><columnNameQuotes> <!-- OPTIONAL. Options:
        " (the default), ', \[nothing\]. -->
      <orderBy>...</orderBy> <!-- A comma-separated list of
        sourceNames to be used in an ORDER BY clause at the end of the
        every query sent to the database (unless the user's request
        includes an &orderBy() filter, in which case the user's
        orderBy is used). The order of the sourceNames is important.
        The leftmost (first) sourceName is most important; subsequent
        sourceNames are only used to break ties. Only relevant
        sourceNames are included in the ORDER BY clause for a given user
        request. If this is not specified, the order of the returned
        values is not specified. Default = "". OPTIONAL. -->
      <sourceCanOrderBy>no(default)|partial|yes</sourceCanOrderBy>
        <!-- 0 or 1 -->
      <sourceCanDoDistinct>no(default)|partial|yes</sourceCanDoDistinct>
        <!-- 0 or 1 -->
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more.
        Each dataVariable MUST include a <dataType> tag.
        See Database DataTypes.
        For database date and timestamp columns, set dataType=double and
        units=seconds since 1970-01-01T00:00:00Z -->
  </dataset>

EDDTableFromの特長EDDGrid

EDDTableFromの特長EDDGrid EDDTable のデータを任意のデータセットから作成できます。EDDGridデータセット。

  • これを行うためのいくつかの一般的な理由は次のとおりです。
    • これにより、データセットは、OPeNDAP選択制約は、「値でクエリ」の型です。 (ユーザーが要求する可能性があるもの) お問い合わせ
    • データセットは、現在タブラデータセットです。
  • 「maxAxis0」のグローバル属性の値 (type="int" の通常) , (デフォルトは10です) 軸数を制限するために使用される\[0 の 0\] (通常は"time"軸線) 封じられた値EDDGridリクエストごとにデータアクセスできるデータセット。 制限がない場合、0の値を指定します。 この設定は重要なので、そうでなければ、EDDTableFrom をユーザーに尋ねるのは簡単です。EDDGridグリッドされたデータセットのデータをすべて調べる 時間がかかり、タイムアウトエラーでほとんど失敗します。 EDDTableFrom を安全に保つ設定です。EDDGridデータセットERDDAP彼らは、コンピューティングリソースの不当な使用につながることを恐れずに。
  • 封じられた場合EDDGridです。EDDGridErddapからそして、ERDDAP™同じですERDDAP, その後 EDDTableFromEDDGrid参照されたデータセットの現在利用可能なバージョンを直接使用します。 これはEDDTableFromのための非常に効率的な方法ですEDDGridグリッドされたデータへのアクセス
  • このクラスの[<リロード 毎分> (#reloadeveryn分) カウント数です。 封じられたEDDGridお問い合わせ<reloadEveryNMinutes> は無視されます。
  • 値が[の場合]<更新EveryNMillis> (#updateeverynmillis, オーストラリア) このデータセットは無視されます。 封じられたEDDGridお問い合わせ<updateEveryNMillis> は何か問題です。
  • 生成データセットXmldataset type=EDDTableFrom のオプションEDDGridURL を要求するERDDAP (通常同じERDDAP) ("/erddap/" で終わる) 正規表現。 生成データセット Xml は、EDDTableFrom 用の XML を生成します。EDDGrid各グリッドデータセットのデータセットERDDAP™そこにあるdatasetID正規表現にマッチする (.\* を使用して、すべてにマッチします。datasetIDグリッドデータセット用のs) お問い合わせ

各データセットのGenerateDatasetsXmlによって生成されるXMLのチャンクは次のとおりです。

  • ツイートdatasetIDです。EDDGridお問い合わせdatasetID"\_AsATable" を使う
  • 新しいサマリーグローバル属性で、EDDGrid's 要約とこのデータセットが何であるかを説明する新しい最初の段落.
  • 新しいタイトルのグローバル属性で、EDDGrid's title と ", (テーブルとして) お問い合わせ
    1. の値を持つ新しい maxAxis0 のグローバル属性

EDDTableFromの特長EDDGridスケルトンXML

  <dataset type="EDDTableFromEDDGrid" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
        For EDDTableFromEDDGrid, this calls lowUpdate() of the underlying
        EDDGrid. -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataset>...</dataset> <!-- 1
         Any type of EDDGrid dataset. You can even use an
         EDDGridFromERDDAP™ to access an independent EDDGrid dataset on
         this server. -->
    </dataset>

EDDTableFromFileNames(ファイル名)

EDDTableFromFileNames(ファイル名) サーバのファイルシステム内のファイルのグループに関する情報からデータセットを作成します。各ファイルの URL を含むため、ユーザーはファイルを経由してダウンロードできます。ERDDAPお問い合わせ"files"システムお問い合わせ すべてとは違ってEDDTableFromFiles (EDDTableFromFiles) は、サブクラスでは、このデータセットタイプはファイル内のデータを提供していません。

  • EDDTableFromFileNames は以下のような場合に便利です。
    • 通常のデータファイルがデータを持っているのと同じ方法で「データ」が含まれていないため、ファイルを全体として配布したいファイルのグループがあります。 たとえば、画像ファイル、ビデオファイル、Word文書、Excelスプレッドシートファイル、PowerPointプレゼンテーションファイル、または未構造のテキストファイル。
    • あなたは、その形式でデータを持っているファイルのグループを持っていますERDDAP™読むことができません。 例えば、プロジェクト固有の、カスタム、バイナリ形式です。  

EDDTableFromFileNames データ

ファイル ディル
  • <ファイルDir> -- これにより、サーバーのファイルシステム内のソースディレクトリがこのデータセットのファイルを指定します。 実際にサーバーのファイルシステムにあるファイル<fileDir> は、指定された仮想ディレクトリ内のこのデータセットの url 列に表示されます。 https://serverUrl/erddap/files/datasetID/ お問い合わせ 例えば、datasetIDお問い合わせRSSお問い合わせ そして、<fileDir> は /home/data/mur/ です。 そのディレクトリには、jplMUというファイルがあります。RSST20150103000000.png、 その後、そのファイルのユーザーに表示されるURLは、 https://serverUrl/erddap/jplMURSST/jplMURSST20150103000000.png お問い合わせ

ローカルディレクトリを使用する以外<fileDir> は、リモートの URL やディレクトリのような Web ページを指定することもできます。 この作品は、

オンザフライ

\\\*fromOnTheFlyからお問い合わせ 巨大なS3のバケツのため (noaa-goes17 のような, 持っている 26 百万ファイルファイル) , かかる場合がありますERDDAP™バケットの内容に関するすべての情報をダウンロードするには最大12時間 (そして他の問題があります) お問い合わせ これを回避するには、特別な方法があります<EDDTableFromFileNames の fileDir> は、AWS S3 の Bucket からディレクトリとファイル名を持つデータセットを作る。 データセットは、ユーザーがデータセットにリクエストを経由して検索できるS3バケットのディレクトリとファイル名のすべてのリストを持っていません。 しかし、データセットは、ユーザがデータセットでディレクトリ階層を横断する場合、ディレクトリとファイルの名前をオンザフライで取得します"files"オプション。 そのため、ユーザーはデータセットのS3バケットのファイル階層とファイルを閲覧できます。"files"システム。 これを行うには、S3 バケットの URL を "Starting directory" に指定する代わりに (GenerateDatasetで Xmlの) または<ファイルDir> (お問い合わせdatasets.xml) , 使用:

\\*\\*\\*fromOnTheFly,*theS3BucketUrl*  

例えば:

\\*\\*\\*fromOnTheFly,https://noaa-goes17.s3.us-east-1.amazonaws.com/  

ドキュメントを見るS3のバケツと働かせて下さいERDDAP™S3 バケット URL で使用する必要がある特定のフォーマットの説明。 見る これらの詳細と例使用方法\\\*OnTheFlyから

再帰的
  • <再帰> -- サブディレクトリ内のファイル<fileDir> 一致する名前<fileRegex> は同じサブディレクトリに同じサブディレクトリに表示されます。"files"URL の場合<recursive> は true に設定されます。 デフォルトは false です。
  • ツイート<pathRegex> (#pathregex ディレクティブ) お問い合わせ recursive=true の場合、pathRegex にマッチするディレクトリ名のみ (デフォルト=".\*") 受付けます。 recursive=false の場合、無視されます。 これはまれに使われますが、異常な状況で非常に役立ちます。 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)
ファイルRegex
  • <ファイルRegex> -- ファイル名全体がファイル名だけ (ディレクトリ名を含めない) マッチする<fileRegex> はこのデータセットに含まれています。 例えば、jplMURSSお問い合わせ (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)
     
ファイル名のデータテーブルコンテンツから

テーブルには、次の列があります。

  • ログイン ユーザーがファイルをダウンロードするために使用できるURLERDDAPお問い合わせ"files"システムお問い合わせ

  • 名前 -- ファイル名 (ディレクトリ名なし) お問い合わせ

  • 最後の修正 -- ファイルが最後に修正された時刻 (保存される倍と"seconds since 1970-01-01T00:00:00Z") お問い合わせ この変数は、指定したファイルの内容が最後に変更されたときに、ユーザーが確認できるので便利です。 この変数はタイムタイム スタンプ変数なので、数値の値としてデータが表示される (1970-01-01T00:00:00Z以来の秒) または 文字列の値 (ISO 8601の:2004年 (Eメール) フォーマット) , 状況に応じて.

  • サイズ -- バイト内のファイルのサイズは、二重として保存されます。 それらは、ファイルによっては、ints よりも大きくなる可能性があるため、保存され、応答ファイルの種類によっては長がサポートされていないためです。 二重は、非常に大きなファイルでも、正確なサイズを与えます。

  • 定義される追加カラムERDDAP™ファイル名から抽出された情報を持つ管理者 (例えば、ファイル内のデータに関連した時間) 各追加カラムのメタデータに指定した2つの属性に基づくdataVariable: : :

    • 抽出Regex -- これは、正規表現 (チュートリアル) お問い合わせ regex 全体がファイル名全体に一致しなければなりません (ディレクトリ名を含めない) お問い合わせ regex は、少なくとも 1 つのキャプチャ グループを含む必要があります。 (括弧に囲まれた正規表現のセクション) お問い合わせERDDAP™ファイル名のどのセクションがデータになるかを調べるために使用します。
    • ソリューション グループ -- キャプチャグループ数です。 (#1は最初のキャプチャグループです) 正規表現で。 デフォルトは1です。 キャプチャグループは括弧で囲む正規表現のセクションです。

以下は2つの例です。

            <dataVariable>
<sourceName>time</sourceName>
<destinationName>time</destinationName>
<dataType>String</dataType>
<addAttributes>
<att name="extractRegex">jplMURSST(.{14})\\.png</att>
<att name="extractGroup" type="int">1</att>
<att name="units">yyyyMMddHHmmss</att>
</addAttributes>
</dataVariable>
            <dataVariable>
<sourceName>day</sourceName>
<destinationName>day</destinationName>
<dataType>int</dataType>
<addAttributes>
<att name="extractRegex">jplMURSST.{6}(..).{6}\\.png</att>
<att name="extractGroup" type="int">1</att>
<att name="ioos\\_category">Time</att>
</addAttributes>
</dataVariable>

時刻変数の場合、ファイルが jplMU の名前を持っている場合RSST20150103000000.png、extractRegexはファイル名に一致し、最初のキャプチャグループに一致する文字を抽出します ("20150103000000" の) dataType=String として、それから使用して下さい文字列時間に適した単位文字列を時間データ値にパースする (2015-01-03T00:00:00Z) お問い合わせ

日変数の場合、ファイルが jplMU の名前を持っている場合RSST20150103000000.png、extractRegexはファイル名に一致し、最初のキャプチャグループに一致する文字を抽出します (3月3日) として [<データタイプ> (#データ型) \=int のデータ値を 3 で取得します。

その他の情報

  • いいえ [<更新EveryNMillis> (#updateeverynmillis, オーストラリア) お問い合わせ このタイプのデータセットは不要で、使用できません。<updateEveryNMillis> タグは、EDDTableFromFileNames が提供した情報は、常に最新です。ERDDAP™データの各リクエストに対応するため、ファイルシステムに問い合わせます。 膨大な数のファイルが存在する場合でも、このアプローチは合理的にうまくいくはずです。 膨大な数のファイルがある場合、応答が遅くなる可能性があり、しばらくの間、データセットがqueriedされていない。 しかし、その後数分間、オペレーティングシステムはキャッシュに情報を保持しているため、応答は非常に高速でなければなりません。  
  • 使うことができます。生成データセット Xmlプログラム作るためにdatasets.xmlこのタイプのデータセットのチャンク。 上記のように、ファイル名から抽出された情報を追加/定義することができます。  

EDDTableFromFileNames スケルトン ログイン

  <dataset type="EDDTableFromFileNames" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <fileDir>...</fileDir>
      <recursive>...</recursive> <!-- true or false (the default) -->
      <pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
        match the pathRegex (default=".\*") will be accepted. -->
      <fileNameRegex>...</fileNameRegex>
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more.
         Each dataVariable MUST include <dataType> tag. -->
  </dataset>

EDDTableFromFiles (EDDTableFromFiles) は、

EDDTableFromFiles (EDDTableFromFiles) は、 EDDTableFrom...Files クラスは、すべての EDDTableFrom...Files クラスのスーパークラスです。 EDDTableFromFiles は直接使用できません。 代わりに、EDDTableFromFiles のサブクラスを使用して、特定のファイルタイプを処理します。

現在、他のファイルタイプは対応しておりません。 しかし、他のファイルタイプのサポートを追加するのは比較的簡単です。 リクエストがあればご連絡ください。 または、データが古いファイルフォーマットにある場合は、ファイルを変換することをお勧めします。NetCDFv3の.ncファイル (特に.ncファイルとファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 目立たせられた配列のデータ構造 --ERDDAP™データを素早く抽出できる) お問い合わせNetCDF広くサポートされています。バイナリ形式は、データへの高速ランダムアクセスを可能にし、既にサポートされています。ERDDAPお問い合わせ

FromFilesの詳細

以下の情報は、EDDTableFromFiles のサブクラスすべてに適用されます。

集計

ローカルファイルからデータを集計するクラスです。 各ファイルが保持されます (比較的) 小さなテーブルのデータ。

  • 結果データセットは、すべてのファイルのテーブルが組み合わされたかのように表示されます。 (ファイル#1、ファイル#2からのすべての行と...) お問い合わせ
  • ファイルが指定された変数の全てを持っている必要はありません。 指定したファイルが指定された変数を持たない場合、ERDDAP™必要に応じて、不足している値を追加します。
  • すべてのファイルの変数は、MUSTに同じ値を持つ必要がありますadd\_offset,missing\_value,\_料金 バリュー,scale\_factorユニット属性 (お問い合わせ) お問い合わせERDDAP™checks, しかし、それは不完全テストです -- 異なる値がある場合,ERDDAPどのファイルが正しいかわからないため、ファイルが無効です。 問題が起きた場合は、ログインまたはNCO問題を解決するため。  
圧縮されたファイル

すべてのEDDTableFromFilesサブクラス用のソースデータファイルが外部に圧縮することができます (例:.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2または .Z) お問い合わせ 詳細はこちら外部圧縮されたファイル文書お問い合わせ  

キャッシュされたファイル情報
  • EDDTableFromFiles のデータセットが最初に読み込まれると、EDDTableFromFiles は関連するすべてのファイルから情報を読み込み、テーブルを作成します。 (各ファイルの1列) 各有効なファイルと各 "bad" に関する情報 (異なるまたは無効) ファイル。
    • 表もディスクに保存されます。NetCDFv3の.ncファイル bigParentディレクトリ /データセット/ last2CharsOfデータセットID / / / / datasetID / ファイル名: dirテーブル.nc (ユニークなディレクトリ名のリストを保持する) , ファイル テーブル.nc (有効なファイルの情報ごとにテーブルを保持する) , 悪いファイル.nc (悪いファイルの情報ごとにテーブルを保持する) お問い合わせ
    • EDDTableFromFiles データセットへのアクセスを高速化 (しかし、より多くのメモリを使用する費用で) 、使用することができます ツイート<fileTableInMemory>true のファイル</fileTableInMemory>/ファイルTableInMemory> (#ファイルテーブルインメモリー)
      お問い合わせERDDAP™メモリ内のファイル情報テーブルのコピーを保持する。
    • ディスク上のファイル情報テーブルのコピーも便利ですERDDAP™シャットダウンして再起動: EDDTable を保存 FromFiles は、すべてのデータファイルを再読み込みする必要がありました。
    • データセットをリロードすると、ERDDAP™変更した新しいファイルやファイルでデータを読む必要があります。
    • ファイルが他のファイルから異なる構造を持っている場合 (例えば、変数の1つに対して異なるデータ型、または "ユニット属性) ,ERDDAP"bad" ファイルの一覧にファイルを追加します。 ファイルの問題に関する情報は、 bigParentディレクトリ /logs/log.txt ファイル
    • これらのファイルを削除または使用する必要はありません。 1つの例外は、データセットの変更をまだ作成している場合datasets.xmlセットアップ, これらのファイルを強制的に削除したい場合ERDDAP™ファイルの読み込み/解釈が異なるため、すべてのファイルを再読み込みします。 これらのファイルを削除する必要が生じた場合は、ERDDAP™実行中です。 (すると、ログインデータセットASAPを再ロードします。) しかし、ERDDAP™通常、その通知datasets.xml情報はファイルと一致しません 表情報とファイルテーブルを自動的に削除します。
    • 奨励したい方ERDDAP™保存したデータセット情報を更新する (例えば、データセットのデータディレクトリにファイルを追加、削除、または変更した場合) 、使用して下さいフラグシステム強制するERDDAP™キャッシュされたファイル情報を更新します。  
リクエストの処理
  • ERDDAP™表形式のデータリクエストは、任意の変数に制約を置くことができます。
    • クライアントのデータのリクエストが処理されると、EDDTableFromFiles は有効なファイル情報でテーブルをすばやく見ることができ、どのファイルが関連したデータがあるかを確認することができます。 たとえば、各ソースファイルが1つの固定位置のbuoyのデータを持っている場合、EDDTableFromFilesは、特定の経度範囲と緯度範囲内のデータがあるかを非常に効率的に決定できます。
    • 有効なファイル情報テーブルには、有効なファイルごとに変数の最小値と最大値が含まれているため、EDDTableFromFilesは他のクエリを非常に効率的に処理することができます。 たとえば、buoys が空気圧センサーを持っていない場合、AirPressure!=NaN、EDDTableFromFiles のクライアントリクエストデータは、どのbuoys が空気圧データを持っているかを効率的に判断できます。  
キャッシュされたファイル情報の更新

データセットがリロードされると、キャッシュされたファイルが更新されます。

  • データセットは、決定どおりに定期的にリロードされます<reloadEveryNMinutes> データセットの情報datasets.xmlお問い合わせ
  • データセットは、可能な限り迅速にリロードされますERDDAP™追加した検出、削除、お問い合わせ ) (ファイルの最後に変更する 変更された時間) データファイルの変更
  • データセットは、ご使用の際にはできるだけ早くリロードされます。フラグシステムお問い合わせ

データセットをリロードすると、ERDDAP™現在利用可能なファイルとキャッシュされたファイル情報テーブルを比較します。 有効なファイルテーブルに新しいファイルが読み込まれ、追加されます。 有効なファイル表から、存在しないファイルが削除されます。 ファイルのタイムスタンプが変更されたファイルが読み込まれ、その情報は更新されます。 新しいテーブルは、メモリとディスク上の古いテーブルを置き換えます。  

悪いファイル

悪いファイルの表とファイルが悪いと宣言された理由 (破損したファイル、不足している変数、誤った軸値など) メールでのお問い合わせ お問い合わせ メールアドレス (おそらくあなた) データセットが再ロードされるたびに。 これらのファイルをできるだけ早く交換または修理する必要があります。  

変数の欠損

ファイルがいくつかある場合dataVariableデータセットで定義される sdatasets.xmlチャンク、それは大丈夫です。 EDDTableFromFiles がそれらのファイルの 1 つを読み込みた場合は、ファイルが変数を持っていた場合として機能しますが、すべての欠落した値で。  

リアルタイムデータ
  • EDDTableFromFilesは、最新のデータを特別なケースとしてリクエストを処理します。 問題: データセットを構成するファイルが頻繁に更新されると、ファイルが変更されるたびにデータセットが更新されない可能性があります。 そのため、EDDTableFromFiles は変更されたファイルを認識しません。 (あなたは使用することができますフラグシステム, しかし、これはにつながる可能性がありますERDDAP™ほぼ継続的にデータセットをリロードします。 ほとんどの場合、お勧めしません。) 代わりに、EDDTableFromFiles は、次のシステムでこれを処理します。 いつかERDDAP™過去20時間以内にデータを要求する (例えば、今まで8時間前) ,ERDDAP™最後の20時間に任意のデータを持つすべてのファイルを検索します。 したがって、ERDDAP™最新のデータを見つけるために、すべてのファイルを完全に最新のデータする必要はありません。 あなたはまだ設定する必要があります [<リロード 毎分> (#reloadeveryn分) 合理的に小さい値に (例えば、60) , しかし、それは小さなものでなければなりません (例えば、3) お問い合わせ  
    • お勧めしない ファイル内のほぼリアルタイムデータの組織: たとえば、複数のステーションのデータを保存するデータセットがある場合 (または buoy, または trajectory, ...) たとえば、ステーションごとに1つのファイルがあります。 しかし、ステーションの新しいデータが到着するたびに、大きな古いファイルを読み、大きな新しいファイルを書く必要があります。 そして時ERDDAP™データセットをリロードし、一部のファイルが変更されていることに気づくので、これらのファイルを完全に読み込みます。 それは非効率です。  

    • おすすめ商品 ファイル内のほぼリアルタイムデータの組織: チャンク内のデータを保存します。例えば、1つのステーション/buoy/trajectoryのすべてのデータを1年間保存します。 (または1ヶ月) お問い合わせ その後、新しいダムが到着すると、今年のファイルのみが (または月の) データは影響を受ける。

    • ベスト: 使用条件NetCDFv3の.nc無制限の次元のファイル (タイムタイム) お問い合わせ 次に、新しいデータを追加するには、ファイル全体を読み書きすることなく新しいデータを追加できます。 変更は、非常に効率的かつ本質的に原子的に行われます。そのため、ファイルは矛盾しない状態ではありません。

    • それ以外の場合: 利用できない場合.nc無制限の次元のファイル (タイムタイム) 新しいデータを追加する必要がある場合は、影響を受けるファイル全体を読み書きする必要があります (年だけでも過ごせるので、 (または月の) データの価値) お問い合わせ 幸いなことに、以前の年のすべてのファイル (または数か月) その駅が変わらず、

どちらの場合もERDDAP™データセットをリロードし、ほとんどのファイルは変更されません。少数の小さなファイルだけが変更され、読み込まれる必要があります。  

ディレクター

ファイルは1つのディレクトリ、またはディレクトリとそのサブディレクトリにすることができます。 (再帰的に) お問い合わせ 多数のファイルがある場合 (例:>1,000) 、オペレーティング システム (このようにEDDTableFromFiles) サブディレクトリの一連のファイルを保存すると、より効率的に動作します (1 年 1 回、または 1 ヶ月あたりのデータセットに非常に頻繁なファイル) , 与えられたディレクトリに膨大な数のファイルが存在しないので.  

リモートディレクトリとHTTPレンジリクエスト
  • リモートディレクトリとHTTPレンジリクエスト (AKA バイト サービング、バイト レンジ リクエスト) お問い合わせ EDDGridFromNcFiles, EDDTableFromMultidimNcFiles, EDDTableFromNcFiles, EDDTableFromNcCFFiles, 時々 からデータを提供できます.ncリモートサーバ上のファイルと、サーバーがサポートしている場合はHTTP経由でアクセスバイテ サービングHTTP レンジリクエスト (バイトサービングの HTTP メカニズム) お問い合わせ これはnetcdf-javaで可能 (お問い合わせERDDAP™使用して読む.ncファイル) リモートからの読み取りデータをサポート.ncHTTP レンジリクエストによるファイル。

    お問い合わせ
    代わりに [[] を使用します。<cacheFromUrl> システム (パスワード) お問い合わせ

キャッシュFromUrl
  • ツイート ** <キャッシュFromUrl> ** . . (パスワード) ・ すべてEDDGridFromFiles と EDDTableFromFiles のデータセットは、タグのセットをサポートERDDAP™リモート・データセットの全てのファイルのコピーをダウンロードし、維持するため、またはいくつかのファイルのキャッシュ (必要に応じてダウンロード) お問い合わせ これは信じられないほど便利な機能です。
    • ザ・オブ・ザ・<cacheFromUrl> タグは、リモートファイルリストからリモートデータセットのファイルのリストを持つ URL を指定できます。

      ERDDAP™これらのファイルをコピーまたはキャッシュします。<fileDir> ディレクトリ。 別のタイプのリモートファイルリストのサポートが必要な場合 (例:FTP) Chris へのリクエストをメールで送信してください。 noaaa.gov のジョン。

      • デフォルト値は、<cacheFromUrl> タグは null です。 値を指定しない場合<cacheFromUrl> タグは、このデータセットにコピー/キャッシュシステムが使われません。
      • データセットの場合<ファイルRegex> .\* 以外の設定はERDDAP™fileRegex と一致するファイルのみをダウンロードします。
      • データセットの場合<recursive> 設定は本当であり、リモートファイルはサブディレクトリにあります、ERDDAP™リモートサブディレクトリで、データセットの [<pathRegex> (#pathregex ディレクティブ) , ローカルで同じディレクトリ構造を作成し、同じサブディレクトリにローカルファイルを置く.
      • GenerateDatasetで Xml を指定すると、<cacheFromUrl> 値、Generate データセット Xmlはローカルを作成する<fileDir> ディレクトリに 1 つのリモートファイルをコピーします。 生成データセット Xml が生成されます。datasets.xmlそのサンプルファイルに基づいてチャンク (サンプルを指定する ファイル=nothing) お問い合わせ
      • データソースがリモートの場合ERDDAP™、使用して下さいEDDGridErddapからまたはEDDTableFromErddapの特長代わりに<cacheFromUrl>. つまり、あなたのローカルERDDAP™データセットがあるように見えますが、ローカルにデータを保存する必要はありません。 利用する唯一の理由<cacheFromUrl> リモートからデータを取得するERDDAP™データファイルのローカルコピーが必要な場合は、他の理由があります。 その場合:
        • このデータセットはリモートでデータセットを購読しようとしますERDDAPデータセットの変更は、このデータセットのフラグを呼び出します ウルは、このローカルデータセットをリロードし、変更されたリモートファイルをダウンロードすることを引き起こします。 したがって、ローカルデータセットはリモートデータセットに変更がなされた直後に最新になります。
        • リモートの管理者にメールを送る必要がありますERDDAP™お問い合わせdatasets.xmlリモートデータセットのため、ローカルでデータセットを作ることができますERDDAP™リモートのデータセットのように見えるERDDAPお問い合わせ
      • データソースがリモートの場合ERDDAP™ローカルデータセットは、リモートデータセットを購読しようとします。
        • サブスクリプションが成功した場合、リモートでいつでもERDDAP再読み込みと新しいデータがあり、このデータセットのフラッグURLに連絡し、新しいおよび/または変更されたデータファイルをリロードしてダウンロードします。
        • サブスクリプションが失敗した場合 (何らかの理由で) ローカルデータセットが最新の状態であることを確認したい場合、ログインローカルデータセットのため、リロードされますので、新しいリモートデータファイルや変更されたリモートデータファイルをチェックします。
      • データソースがリモートでない場合ERDDAP: 再読み込み時に、データセットは、新しいリモートファイルと/または変更されたリモートファイルをチェックします。 通常、これは[によって制御されます]<リロード 毎分> (#reloadeveryn分) お問い合わせ しかし、新しいリモートファイルがある場合に知っていれば、ログインローカルデータセットでは、新しいファイルや/またはリモートデータファイルをリロードしてチェックします。 一日の特定の時間でこれが日常的に起こる場合 (例:午前7時) 、使用する cron ジョブを作ることができます。curlフラグに連絡する このデータセットでは、新しいファイルと/または変更されたリモートデータファイルのリロードおよびチェックを行います。
    • ザ・オブ・ザ・<cacheSizeGB> タグは、ローカルキャッシュのサイズを指定します。 クラウドストレージシステムと連携する際には、おそらくこれを使用する必要があります。アマゾンS3これは、一般的に使用されるストレージシステムの一部であるAmazon Webサービス (ツイート) お問い合わせ デフォルトは-1です。

      • 値が<=0の (例:-1 のデフォルト値) , ERDDAP™ダウンロードして維持します 完全なコピー データセット内のすべてのリモートデータセットのファイル<fileDir>.
        • 可能な限りお勧めする設定です。
        • データセットが再ロードされるたびに、リモートファイルとローカルファイルの名前、サイズ、および lastModified 時刻を比較し、新しいファイルまたは変更されたリモートファイルをダウンロードします。
        • リモートサーバ上にあるファイルが消えた場合、ERDDAP™対応するローカルファイルを削除します。 (それ以外の場合は、リモートサーバーで何かが一時的に間違っていた場合、ERDDAP™ローカルファイルの一部または全部を削除できます!) お問い合わせ
        • この設定では、通常設定します<updateEveryNMillis> から -1 まで、データセットが新しいデータファイルをコピーしたときに認識されているからです。
      • 値が >0 の場合、 ERDDAP™必要に応じてリモートデータセットからファイルをローカルにダウンロードします キャッシュ (データセット内)<fileDir>) は、指定された GB の数のしきい値サイズで指定します。
        • キャッシュは複数のデータファイルを保持するのに十分な大きさでなければなりません。
        • 一般的に、キャッシュが大きいほど、次の要求されたデータファイルが既にキャッシュにある可能性が高いからです。
        • キャッシュはいつしか使用すべきERDDAP™クラウドコンピューティングサーバーで実行中 (e.g.、AWS 計算インスタンス) クラウドストレージシステム内のリモートファイル (例:AWS S3) お問い合わせ
        • ローカルファイルによって使用されるディスクスペースがキャッシュを超えた場合 サイズGB、ERDDAP™お問い合わせ (多分すぐに) キャッシュされたファイルの削除 (現在、最近使用したLeastに基づいて (ログイン) アルゴリズム) ローカルファイルで使用されるディスク容量まで<0.75\*キャッシュサイズGB (「ゴール」) お問い合わせ はい、LRUが非常に悪い場合があります。完璧なアルゴリズムはありません。
        • ERDDAP™キャッシュされたファイルを削除しようとすることはありません。ERDDAP™過去10秒で使用開始 これは、キャッシュシステムとデータファイルリーダーシステムにのみ緩やかに統合する欠陥システムです。 このルールのため、ERDDAP™その目標に到達するために十分なファイルを削除することはできません。この場合、WARNINGをlog.txtファイルに印刷し、システムがキャッシュをプルーンしようとする時間を大幅に無駄にし、キャッシュ内のファイルのサイズがCashSizeGBを大幅に上回る可能性がある。 今までに起きた場合は、そのデータセットの大きい cacheSizeGB 設定を使用してください。
        • 現在、ERDDAP™リモートサーバがローカルキャッシュにあるファイルの新しいバージョンを持っているかどうかはチェックしません。 この機能が必要な場合は、Chrisにメールでお問い合わせください。 noaaa.gov のジョン。
      • 同じタグ名の使用は、コピーシステムとキャッシュシステムが同じアンダーリングシステムを使用していることを意味するかもしれませんが、それは正しいものではありません。
        • コピーシステムは、データセットが再ロードされるたびに、タスクをタスクスレッドでダウンロードし、ファイルを変更します。 実際にローカルディレクトリにコピーしたファイルだけは、ERDDAP™データセット。
        • キャッシュシステムは、データセットがリロードされ、これらのすべてのファイルがすべてのファイルがすべてのファイルで利用可能であることを宣言するたびにリモートファイルリストを取得しますERDDAP™データセット。 興味深いことに、すべてのリモートファイルがデータセットの /files/ Web ページに表示され、ダウンロードできます。 (ファイルが最初にリモートサーバからローカルキャッシュにダウンロードされる間、遅延が遅れるだけではありません。)
      • cacheSizeGB を使用するデータセットは、使用から利益を得ることができます。nスレッド1よりも大きい設定は、データセットが1つ以上のリモートファイルを一度にダウンロードできるようにするためです。
    • ザ・オブ・ザ・<cachePartialPathRegex> タグは、データセットの代わりに指定できるまれに使われたタグです [<pathRegex> (#pathregex ディレクティブ) お問い合わせ デフォルトは null です。

      • デフォルトでデータセット全体をコピーする場合にのみ使用します。<cacheSizeGB> -1 の値。<cacheSizeGB> の値の >1 は、非センシカルであるため無視されます。
      • [ドキュメント] を参照してください。<pathRegex> (#pathregex ディレクティブ) レグレックスの建設方法に関するガイダンス
      • これが指定されている場合は、データセットが再ロードされるたびに使用されます。ただし、データセットが1か月の初めに再読み込みされます。
      • これは、リモート・データセットがサブディレクトリの迷路に格納され、それらのファイルの大半がまれに、かつてないと変更する場合に便利です。 ( )<ログイン NASAとは<ログイン 例えば、例えば、<cachePartialPathRegex> は、現在の年または現在の月と一致します。 これらのregexeは、すべての部分的およびフルパス名が一致しなければならないので、指定するのは非常に難しいです<cachePartialPathRegex> と<cachePartialPathRegex> は、リモート URL とローカルディレクトリで動作しなければなりません。 実際の生活例は:
            <cacheFromUrl>https://data.nodc.noaa.gov/ghrsst/GDS2/L4/GLOB/JPL/MUR/v4.1/</cacheFromUrl>  
\\>!-- \\[2020-10-21 This server is no longer reliably available.\\] For most types of remote directories, omit the filename (e.g., contents.html for Hyrax). -->
<fileDir>/u00/satellite/MUR41/</fileDir>
<fileNameRegex>\\*\\.nc</fileNameRegex>
<recursive>true</recursive>
<pathRegex>.\\*</pathRegex>
<cachePartialPathRegex>.\\*/v4\\.1/(|2018/(|01./))</cachePartialPathRegex>

上のサンプルURLは、年に基づいてサブディレクトリにファイルを持っています (2018年11月11日) 年末年始 (例:001、002、...、365、366) お問い合わせ 注意:<キャッシュPartialPathRegex> .\* から始まる その後、リモートURLとローカルディレクトリに共通する特定のサブディレクトリがあります。例えば、 /v4\.1/ その後、最初のオプションが何もないネストされたキャプチャグループのシリーズを持っています 2番目のオプションは特定の値です。

上記の例は、2018年2月10日のディレクトリにのみ一致します。 https://data.nodc.noaa.gov/ghrsst/GDS2/L4/GLOB/JPL/MUR/v4.1/2018/010/ \[2020年10月21日 このサーバは、もはや確実に利用可能ではありません。\]
日 011, 012, ..., 019. (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)
助けが必要な場合<cachePartialPathRegex> は、Eメールをお送りください。<cacheFromUrl> から Chris へ。 noaaa.gov のジョン。

  • 共通のアプローチ: 使用したい方<cachePartialPathRegex> は、最初に使用しません。ERDDAP™すべてのファイルを初期にダウンロードします。 アフターERDDAP™すべてのファイルをダウンロードし、データセットのチャンクに追加します。datasets.xmlお問い合わせ  
ファイル数千

データセットに何千ものファイルがある場合、ERDDAP™データセットからのデータリクエストに対する応答が遅くなる場合があります。 2つの問題があります。  

  1. ディレクトリごとのファイル数。 内部的に、ERDDAP™nファイルが1つのディレクトリにあるか、複数のディレクトリに分散しているかにかかわらず、同じ速度で動作します。   しかし、問題があります。 指定したディレクトリ内のファイルが増えると、オペレーティングシステムがディレクトリ内のファイルのリストを返すと遅くなります。 (ファイルごと) お問い合わせERDDAPお問い合わせ 応答時間は O である可能性があります。 (n ログ n) お問い合わせ 1つのディレクトリのファイル数が多すぎると言うのは難しいですが、10,000は多すぎます。 そのため、セットアップがたくさんのファイルを生成する場合、ここで推奨事項: 論理的に整理されたサブディレクトリにファイルを置く (例:駅・駅・駅・年) お問い合わせ

サブディレクトリを使用するもう1つの理由:ユーザーが使用したい場合はERDDAPお問い合わせ"files"ステーションXの最古のファイルの名前を見つけるためのシステム, ファイルがステーション/年サブディレクトリにある場合、それはより速く、より効率的です, それほど情報が転送される必要があるため.

  1. ファイルの総数。 表形式のデータセットの場合、ERDDAP™各ファイルに各変数の値の範囲を追跡します。 ユーザがリクエストを作成するとき、ERDDAP™ユーザーの要求に一致するデータがあるかもしれないすべてのファイルからすべてのデータを読む必要があります。 ユーザーが限られた時間からデータを求める場合 (例えば、1日または1ヶ月) , それからERDDAP™データセットで複数のファイルを開く必要はありません。 しかし、ほぼすべてのファイルが一致するデータを持っている可能性がある極端な例があります (例: waterTemperature=13.2C) お問い合わせ お問い合わせERDDAP™少しの時間 (部分的に HDD の検索時間、部分的にファイルのヘッダを読む時間) 特定のファイルを開く (ディレクトリにたくさんのファイルがある場合など) , 重要な時間ペナルティは、そのファイルの総数の場合ERDDAP™開くべきことは非常に大きいです。 1000枚のファイルが開けても、かなりの時間がかかります。 そのため、毎日ファイルをより大きな塊に定期的に統合する利点があります (例1年1駅) お問い合わせ 様々な理由でこれを行いたくないかもしれないが、より速い応答につながります。 極端な場合 (例:GTSPPデータセットに約35万個のソースファイルがあります。) , 膨大な数のソースファイルからデータを処理することは、ERDDAP'単純なクエリに対する応答は時間を取ることができ、メモリのトンを使うことができます。 ソースファイルを小数に集約することで (GTSPP では、私は 720 今、 1 ヶ月あたりの 2 を持っています) ,ERDDAP™迅速に対応できます。 お問い合わせファイルの百万
     

N.B.ソリッドステートドライブは素晴らしい! 最も速く、最も簡単で、最も安い方法で助けるERDDAP™膨大な数の取引 (小さい) ファイルがソリッドステートドライブを使用することです。 お問い合わせソリッドステートドライブは素晴らしいです!
 

ファイルの百万
  • 一部のデータセットには、何百万ものソースファイルがあります。ERDDAP™これを処理することができますが、混合結果で。

    • にリストされている変数だけを含む要求のため [<subsetVariables>> (#サブセット変数) ,ERDDAP™データファイルからすでに抽出された必要な情報をすべて1つのファイルに保存されているため、非常に迅速に対応できます。
    • その他のご要望ERDDAP™データセットのスキャンキャッシュされたファイル情報リクエストに関連したデータがいくつかあるため、素早く対応できる可能性があることを確認しましょう。
    • しかし、他の要求のために (例えば、waterTemperature=18 度\_C) どのファイルが関連データを持っているか、ERDDAP™各ファイルがリクエストに関連するデータを持っているかどうかを確認するために多数のファイルを開く必要があります。 ファイルが連続して開きます。 任意のオペレーティングシステムと任意のファイルシステム (ソリッドステートドライブ以外の) 、これは長い間かかります (お問い合わせERDDAP™ゆっくり反応する) ファイルシステムと本当に連携 (お問い合わせERDDAP™他のリクエストにゆっくりと対応) お問い合わせ

幸いにも解決策があります。

  1. 非公開でデータセットを設定するERDDAP™ (パーソナルコンピュータ?) お問い合わせ
  2. シリーズをリクエストするスクリプトの作成と実行.ncCFファイル、データセットの大きなチャンク、通常は期間 (例えば、指定した月の全てのデータ) お問い合わせ すべての結果ファイルが2GB未満であるように、期間を選択してください (しかし、1GB以上の大成功) お問い合わせ データセットがほぼリアルタイムのデータがある場合、スクリプトを実行して、現在の期間のファイルを再生します。 (例えば、今月) 頻繁に (10分毎に? 毎時?) お問い合わせ リクエストERDDAP™お問い合わせ.ncCFファイルを作成するNetCDFv3の.nc使用するファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 強烈な配列のデータ構造)。
  3. セットアップEDDTableFromNcCFファイル公開データセットERDDAP™そこからデータを取得する.nc (CFシリーズ) ファイル。ERDDAP™これらのファイルからデータをすばやく抽出できます。 そして今数十人や数百人だから (百万の代わりに) ファイルが、ERDDAP™ファイルのすべてを開く必要があります。

はい、このシステムはセットアップに時間と労力を要しますが、非常にうまく機能します。 ほとんどのデータリクエストは、以前よりも100倍速く処理できます。 \[ボブはこれが可能性だったことを知ったが、最初にこのことをしたケビン・オビエンさんで、うまくいくことが示された。 今、 Bob は、約 18 百万のソースファイルを持つ GTSPP データセットにこれを使用します。ERDDAP™現在、約500台を突破.nc (CFシリーズ) ファイル。\]

N.B.ソリッドステートドライブは素晴らしい! 最も速く、最も簡単で、最も安い方法で助けるERDDAP™膨大な数の取引 (小さい) ファイルがソリッドステートドライブを使用することです。 お問い合わせソリッドステートドライブは素晴らしいです!
 

巨大なファイル
  • 単一の巨大なデータファイル (非常に巨大な ASCII データファイル) OutOfMemoryError を引き起こす可能性があります。 これが問題であるならば、それは明らかであるべきですERDDAP™データセットをロードできません。 feasible なら、ファイルを複数のファイルに分割することです。 理想的には、ファイルを論理チャンクに分割できます。 たとえば、ファイルに20か月分のデータが含まれている場合は、1か月分のデータをそれぞれ20ファイルに分割します。 しかし、メインファイルが任意に分割されている場合でも利点があります。 このアプローチには複数の利点があります: a) データファイルを1/20に読み込むために必要なメモリを1つだけ減らします。 b) しばしば,ERDDAP™特定のリクエストのデータを見つけるために1つまたは少数のファイルを見る必要があるため、リクエストをはるかに迅速に対処できます。 c) データの収集が進行中の場合、既存の20ファイルが変更されていないままになり、データセットに次の月の値を追加するには、1つの小さな新しいファイルだけを変更する必要があります。  
FTPのトラブル/アドバイス
  • FTP の新しいデータファイルを FTP に更新する場合ERDDAP™サーバ間ERDDAP™走るチャンスがあり、ERDDAP™FTP プロセス中にデータセットを再読み込みします。 思った以上に頻繁に起こります! ファイルが起こると、ファイルが有効になります (有効な名前があります) ファイルが有効ではありません。 お問い合わせERDDAP™その無効なファイルからデータを読み込み、結果のエラーは、ファイルが無効なファイルの表に追加される原因となります。 これは良いではありません。 この問題を回避するには、FTP ファイルの拡張子が ABC2005 の場合は一時ファイル名を使用します。.nc\_TEMP 。それから、fileNameRegexテスト (詳しくはこちら) これは関連するファイルではないことを示します。 FTP プロセスが完了したら、ファイルを正しい名前に変更します。 renaming プロセスは、ファイルを瞬時に関連づけるようになります。
ファイル名抽出物

\[この機能はDEPRECATEDです。 お問い合わせ\\\*fileName 擬似sourceName代わりに。\]
EDDTableFromFiles は、各ファイル名から文字列を抽出し、擬似データ変数を作るためのシステムです。 現在、これらの文字列を日付/時刻として解釈するシステムはありません。 このシステムを設定するには、いくつかのXMLタグがあります。 このシステムの一部または全部を必要としない場合は、これらのタグを指定したり、""" 値を使用するだけです。

  • preExtractRegex は正規表現 (チュートリアル) ファイル名の先頭から削除されるテキストを識別するために使用されます。 regex が一致すれば除去だけ起こります。 通常はファイル名の先頭にマッチする「^」で始まります。
  • ニュース ExtractRegexは、ファイル名の末尾から削除されるテキストを識別するために使用される正規表現です。 regex が一致すれば除去だけ起こります。 通常はファイル名の末尾にマッチする "$" で終了します。
  • エキストラRegex 現時点では、preExtractRegex と postExtractRegex の後にこの正規表現が使われ、ファイル名から抽出される文字列を識別します。 (例えば、stationID) お問い合わせ regex が一致しない場合は、ファイル名全体が使用されます。 (マイナスプレエクストラクターとポスト エキストラ) お問い合わせ ".\*" を使用して、preExtractRegex と postExtractRegex 後に残っているファイル名全体に一致させます。
  • コラム NameForExtract は、抽出された文字列のデータ列のソース名です。 ツイートdataVariableお問い合わせsourceNameお問い合わせdataVariables リスト (任意のデータタイプで、通常は文字列) お問い合わせ

例えば、データセットにXYZAbleのような名前のファイルがある場合.nc、 XYZBaker.nc, XYZCharlie.nc、...、新しい変数を作成したい (stationID) 各ファイルが読み込まれると、ステーション ID の値が (Able, Baker, チャーリー, ・・・) ファイル名から抽出され、これらのタグを使うことができます。

  • <プレエクストラクターRegex>^XYZ</preExtractRegex> 初期 ^ は強制的な正規表現の特殊文字ですERDDAP™ファイル名の先頭に XYZ を探します。 これにより、ファイル名の先頭にあるXYZが削除される (例えば、ファイル名 XYZAble.ncアブルになる.nc) お問い合わせ
  • <postExtractRegex>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.ncドル</postExtractRegex> エンドの $ は、強制的な正規表現の特別な文字ですERDDAP™お問い合わせ.ncファイル名の最後に。 .は正規表現の特殊文字ですから (どのキャラクターにもマッチする) \ としてエンコードされます。 詳しくはこちら (2Eは、期間の16進数文字数であるため) お問い合わせ この原因.nc, ファイル名の最後に見つかった場合, 削除する (例えば、部分的なファイル名 アブル.ncアブルになる) お問い合わせ
  • <抽出Regex>.\</extractRegex> .\ 正規表現はすべての残りの文字にマッチします (例えば、部分的なファイル名 Able は最初のファイルの抽出物になります) お問い合わせ
  • <columnNameForExtract>stationID</columnNameForExtract> これは、ERDDAP™呼び出される新しいソース列を作成するstationID各ファイルを読み込みます。 指定したファイルに対するデータ列には、そのファイル名から抽出されたテキストが表示されます。 (例えば、 アブル) 値としてstationIDカラム。

ほとんどの場合、同じ結果をもたらすこれらの抽出タグには多くの値があります。正規表現は非常に柔軟です。 しかし、いくつかのケースでは、目的の結果を手に入れる方法が1つあります。  

サインインsourceNameツイート

すべてのデータセットの全ての変数ERDDAP™[ ]<sourceName>> (#ソース名) 変数のソースの名前を指定します。 EDDTableFromFiles はいくつかの擬似をサポートしていますsourceName他の場所から価値を抽出するs (例えば、ファイル名やグローバル属性の値) そして、その値がデータのチャンクの定数値の列であることを促進します (例えば、そのファイルのデータの表) お問い合わせ これらの変数では、変数のデータ型を[<データタイプ> (#データ型) タグ。 抽出された情報が dateTime 文字列の場合、dateTime 文字列の形式を指定します。unit 属性お問い合わせ 仮説sourceNameオプションは:  

グローバル:sourceNameツイート

各ソースデータファイルのグローバルメタデータ属性は、データの列となるよう推進することができます。 変数の場合<sourceName> フォーマットがあります

        <sourceName>global:*attributeName*</sourceName>

それから時ERDDAP™ファイルからデータを読み込みます。ERDDAP™その名のグローバル属性を探します (例えば、PI) 属性の値で埋め込まれたカラムを作成します。 これは、属性が異なるソースファイルで異なる値を持っている場合に便利です。そうしないと、ユーザはデータセット全体に対するそれらの値の1つしか表示されません。 例えば、

        <sourceName>global:PI</sourceName>

属性をデータとして宣伝する場合ERDDAP™対応する属性を削除します。 これは、すべてのファイルに値が推定的に異なるため、適切です。 集計されたデータセットでERDDAP™1つの値しかありません。 必要に応じて、追加することで、データセット全体に新しい値を追加できます。<att 名称 属性属性 お名前 (必須) ツイート 新着情報 バリュー </att> データセットのグローバルに [<addAttributes>> (#addattributes(アダットリブリュート)) お問い合わせ グローバルな属性の場合ERDDAP™たとえば、機関、属性に新しい値を追加する必要があります。  

変数:sourceNameツイート

各ファイルの変数のメタデータ属性は、データの列となるように推進することができます。 変数の場合<sourceName\> 形式

        <sourceName>variable:*variableName*:*attributeName*<sourceName>

それから時ERDDAP™ファイルからデータを読み込みます。ERDDAP™指定された属性を探します (例えば、ID) 指定された変数の (例えば、器械) 属性の値で埋め込まれたカラムを作成します。 親変数 (例えば、器械) 必要ありません。dataVariableデータセットの定義に含まれているsERDDAPお問い合わせ 例えば、

        <sourceName>variable:instrument:ID</sourceName>

これは、属性が異なるソースファイルで異なる値を持っている場合に便利です。そうしないと、ユーザはデータセット全体に対するそれらの値の1つしか表示されません。

属性をデータとして宣伝する場合ERDDAP™対応する属性を削除します。 これは、すべてのファイルに値が推定的に異なるため、適切です。 集計されたデータセットでERDDAP™1つの値しかありません。 必要に応じて、追加することで、データセット全体に新しい値を追加できます。<att 名称 属性属性 お名前 (必須) ツイート 新着情報 バリュー </att> 変数 [<addAttributes>> (#addattributes(アダットリブリュート)) お問い合わせ 属性についてERDDAP™例えば、ioos\_category (セットアップに応じて) 属性に新しい値を追加する必要があります。

ファイル名sourceNameツイート

ファイルの fileName の一部を抽出し、データの列であることを宣伝することができます。 この擬似のフォーマット [<sourceName>> (#ソース名) お問い合わせ

        <sourceName>\\*\\*\\*fileName,*regex*,*captureGroupNumber*</sourceName>

例えば、

        <sourceName>\\*\\*\\*fileName,A(\\d{12})\\.slcpV1.nc,1</sourceName>

EDDTableFromFiles がファイルからデータを読み込みている場合は、fileName が必ず確認されます。 (例:A201807041442.slcpV1.nc) 指定された正規表現にマッチする (「正規表現」) そして指定を抽出して下さい (この場合、最初の) キャプチャグループ (これは括弧に囲まれた部分です) 例:「201807041442」 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ) regex は、引用符を囲むことなく文字列として指定することができます。 regex が周囲の引用符で文字列として指定されている場合は、文字列はJSONスタイルの文字列 (\ 文字でエスケープされた特別な文字で) お問い合わせ キャプチャグループ番号は通常 1 (最初のキャプチャグループ) , しかし、任意の数であってもよい.  

パス名sourceNameツイート

ファイルのフルパスの一部を抽出できます お名前 (必須) (/ディレクトリ/fileName.ext) データの列となるよう促します。 この擬似のフォーマット [<sourceName>> (#ソース名) お問い合わせ

        <sourceName>\\*\\*\\*pathName,*regex*,*captureGroupNumber*<sourceName>

例えば、

        <sourceName>\\*\\*\\*pathName,/data/myDatasetID/(\\[A-Z0-9\\]\\*)/B(\\d{12}).nc,1</sourceName>

EDDTableFromFiles がファイルからデータを読み込みている場合は、完全な pathName を確認します。 (例: /data/myDatasetID/BAY17/B201807041442.ncお問い合わせ このテストでは、ディレクトリ区切り文字は常に'/', 決して '\' お問い合わせ) 指定された正規表現にマッチする (「正規表現」) そして指定を抽出して下さい (この場合、最初の) キャプチャグループ (これは括弧に囲まれた部分です) 例えば「BAY17」。 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ) regex は、引用符を囲むことなく文字列として指定することができます。 regex が周囲の引用符で文字列として指定されている場合は、文字列はJSONスタイルの文字列 (\ 文字でエスケープされた特別な文字で) お問い合わせ キャプチャグループ番号は通常 1 (最初のキャプチャグループ) , しかし、任意の数であってもよい.  

"0 ファイル" エラーメッセージ
  • 実行する生成データセットXmlまたはダスDdsまたは EDDTableFrom をロードしようとすると... ファイルのデータセットERDDAP™「0ファイル」エラーメッセージが表示され、ERDDAP™ディレクトリに 0 の一致するファイルが見つかりました (そのディレクトリに一致するファイルがあると思うとき) : : :
    • ファイルがそのディレクトリにあることを確認してください。
    • ディレクトリ名のスペルを確認してください。
    • fileNameRegex をチェックします。 それは本当に、本当に簡単にregexesで間違いを作ることです。 テストの目的のために、すべてのファイル名に一致すべきregex .\*を試してください。 (お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ)
    • プログラムを実行しているユーザーを確認してください (例:user=tomcat (お問い合わせ) トムキャット/ERDDAP) これらのファイルに対する'read'許可が必要です。
    • 一部のオペレーティングシステム (例えば、SELinux) システム設定に応じて、プログラムを実行したユーザーは、ファイルを持つディレクトリに導くディレクトリ全体のチェーンに対する「読み込み」権限を持つ必要があります。  
標準化 新着情報
  • EDDTableFromFiles のサブクラスがソースファイルのセットを集計する場合、指定した変数に対して、ソースファイルのすべてが複数の属性に対して同じ属性値を持つ必要があります。scale\_factor,add\_offset, \_Unsigned,missing\_value, \_FillValue, 単位). それについて考える: 1つのファイルがwindSpeed unit=knotsと別のファイルがwindSpeed unit=m/sを持っている場合は、2つのファイルからのデータ値が同じ集計されたデータセットに含まれているべきではありません。 そのため、EDDTableFromFiles が最初にデータセットを作成すると、属性値を 1 つのファイルから読み出し、それらの重要な属性に異なる値を持つすべてのファイルを拒否します。 ファイルのほとんどのコレクションでは、すべての変数の属性が一貫しているため、これは問題ではありません。 ただし、ファイルの他のコレクションについては、「悪い」ファイルとして拒否されたファイルの1%、10%、50%、90%、または99%につながります。 トラブルです。

EDDTableFrom ファイルには、この問題に対処するシステムがあります。 お問い合わせ 標準化 EDDTableFromFiles は、EDDTableFromFiles が、 EDDTableFromFiles が一貫性のあるかどうかを調べる直前に、ファイルを EDDTableFromFiles に示す設定です。

フリップ側は: データセットがこの問題がなければ、標準化を使用しないで下さい お問い合わせ 標準化 潜在的なリスクがいくつかあること (以下について) そして、非効率性。 そのため、実際に標準化の機能を必要としていない場合 何, 潜在的なリスクや不満に直面しる必要はありません。. 最大の不効率性: 様々な標準化時 どのようなオプションがデータセットによって使用されるか、ソースファイルが大幅に異なる方法でデータを格納していることを意味する (例えば、異なるscale\_factorそして、add\_offset、または異なるフォーマットを使用して時間文字列で) お問い合わせ そのため、ユーザリクエストで指定された制約のために、ERDDAP™すべてのソースファイルに適用できる単一のソースレベルの制約を作る。 お問い合わせERDDAP™影響を受ける制約をより高いレベルでのみ適用できます。 お問い合わせERDDAP™より高い、宛先レベルの制約を適用する前に、より多くのファイルからデータを読み込みます。 そのため、標準化を使用するデータセットへのリクエスト 処理する時間が長くなります。

このシステムを使用するには、

    <standardizeWhat>*standardizeWhat*</standardizeWhat>  

お問い合わせdatasets.xmlEDDTableFrom について ファイルデータセット(内)<dataset> タグ)。

ザ・オブ・ザ・ 標準化 新着情報 value は、EDDTableFromFiles が適用しようとする変更を指定します。 変更は、いくつかの組み合わせの合計です。

  1. アンパック これは、ファイル内の数値列を標準化するための多くの一般的で安全な操作を行います。
    • お問い合わせscale\_factorおよび/またはadd\_offset属性は存在し、それらを削除し、それらをデータ値のアンパックに適用します。
    • パックされていない属性 (例:実際の\_min、実際の\_max、actual\_range,data\_min,data\_max, データ\_range,valid\_min,valid\_max,valid\_range) , 変数がパックされた場合, 属性値がパックされた場合 (これはトリッキーですが、合理的に信頼できる) お問い合わせ
    • \_FillValueと/またはmissing\_value現在、これらのデータ値を変換するERDDAP'標準" の欠損値: 整数型 MAX\_VALUE (例えば, 127 バイト, 32,767 ショート, と 2,147,483,647 インッツ, 9223372036854775807 ロング) 二重および浮遊物のためのNaN。
    • 古い \_FillValue と / またはmissing\_value属性 (お問い合わせ) \_FillValue= で置き換える\[お問い合わせERDDAP™標準欠損値\]お問い合わせ  
  2. Numeric Timesの標準化 数値列にCF型数値時間単位がある場合 (ツイート タイムユニット お問い合わせ ベースタイム 「1900-01-01以来の日」) 、これは日付を変換します 時間値に"seconds since 1970-01-01T00:00:00Z"値と単位属性を変更して、その値を示します。 これが選択されれば、この変数が持つ可能性があるscale\_factorまたはadd\_offset, #1 選択する必要も.  
  3. 文字列を適用missing\_value
    文字列カラムに\_FillValueと/またはmissing\_value属性は、これらの値を "" に変換し、属性を削除します。  
  4. 数字を見つけるmissing\_value
    数値列が \_FillValue やmissing\_value属性、これは未定義の数値を識別しようとしますmissing\_value (例:-999, 9999, 1e37f) インスタンスを「標準」値に変換 (MAX\_VALUE 整数タイプ、および NAN のダブルとフロート) お問い合わせ このオプションにはリスクがあります。 最大の有効なデータ値が不足している値のように見える場合 (例:999) すると、有効なデータ値が不足している値に変換されます (例:NaN) お問い合わせ  
  5. 文字列 "N/A" を "" に変更する 各文字列の列では、複数の文字列を一般的に変換して、行方不明の文字列値を "" に表示します。 現在、これは ".", "...", "-", "?", "??", "N/A", "NA", "none", "non", "null", "unspecified", "unspecified". 文字列の検索は、文字列がトリムされた後に大文字小文字を区別し、適用されます。 "nd" と "other" はリストには特にありません。 このオプションにはリスクがあります。 有効な値であることを考慮する文字列を "" に変換できます。  
  6. 文字列ISO 8601 DateTimesへの標準化 各文字列列では、非純粋に数値文字列 dateTimes を変換しようとします。 (例:「Jan 2, 2018」) ISO 8601 文字列 dateTimes に (2018年01月02日) お問い合わせ お問い合わせ 列のすべてのデータ値が同じ形式を使用する必要があります。そうしないと、このオプションは与えられた列に変更を加えません。 このオプションにはリスクがあります。 よくある日付のように見えるように起こる文字列値を持つ列がある場合 時刻形式は ISO 8601 文字列 dateTimes に変換されます。  
  7. ISO 8601のDateTimesに密集したDateTimesを標準化して下さい 各文字列または整数型列の場合は、ピュアに数値文字列 dateTimes を変換してみてください。 (例:「20180102」) ISO 8601 文字列 dateTimes に (2018年01月02日) お問い合わせ お問い合わせ 列のすべてのデータ値が同じ形式を使用する必要があります。そうしないと、このオプションは与えられた列に変更を加えません。 このオプションにはリスクがあります。 コンパクトな日付ではない値を持つ列がある場合 タイムズは、コンパクトな dateTimes のように見えますが、ISO 8601 文字列 dateTimes に変換されます。  
  8. ユニットの標準化 これにより、各変数のユニット文字列を標準化します。 例えば、 "メートル/秒", "メートル/秒","m.s^-1","m s-1""m.s-1" はすべて "m.s-1" に変換されます。 データ値を変更しません。 この作品は有効UDUNITS単位の文字列, しかし、無効または複雑な文字列の問題を持つことができます. 特定の対のペアを指定することで問題に対処することができます<スタンダード化ユニット> お問い合わせERDDAPお問い合わせ \[トームキャット\]/webapps/erddap/WEB-INF/classes/gov/noa/pfel/erddap/util/messages.xml ファイル。 変更をChrisに送信してください。 noaaa.gov の John ではデフォルトの message.xml に組み込むことができます。 このオプションにはリスクがあります。 これは、複雑なユニットまたは無効なユニットを縮小する可能性があります。ただし、上記の回避策を使用して、問題が発生した場合に問題を回避することができます。  

標準化のデフォルト値 何もしない 0 です。

正規化の値を変更したとき データセットが再ロードされる時、ERDDAP™各ファイルに関するミニデータベースを再構築するために、データセット用のすべてのデータファイルを読み直します。 データセットにたくさんのファイルがある場合、これは長い間かかります。

注意:

  • トリッキーなことです。 標準化 ソースファイル内のすべての列にどのような設定が使用されます。 そのため、例えば、 #2048 を使うと、圧縮文字列 dateTimes の列を ISO 8601 文字列 dateTimes に正常に変換するかもしれませんが、それはまた単にコンパクトな dateTimes のように見えるように起こる文字列で列を誤って変換するかもしれません。  
  • datasets.xmlと GenerateDatasets Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - Xml - X 特に正しい設定を取得するのは難しいですdatasets.xmlデータセットを作成するには、必要な方法を使用します。 最高のアプローチ (常に) は:
    1. 使用条件生成データセットXml標準化する値を指定します。 使用したいもの
    2. 使用条件ダスDdsデータセットが正しく読み込まれ、標準化を反映するように 指定した設定について
    3. データセットを手でテストするERDDAP™影響を受ける変数が期待どおりに動作するようにします。  
  • リスク - オプション #256 以上は危険性が高い、すなわち、より大きなチャンスがあるERDDAP™行かない変更を行います。 例えば、オプション #2048 は、ISO 8601 "compact" の日付を見るために起こるステーション ID 文字列で変数を誤って変換する可能性があります。 (例: 20180102) ISO 8601への"extended"スケジュール (2018年01月02日) お問い合わせ  
  • 変更後のスロー -- 標準化の大切さから EDDTableFromFiles が各データファイルで参照するデータ値の変更は、標準化を変更した場合 どのような設定を行うか、EDDTableFromFiles は、各ファイルに関するすべてのキャッシュされた情報を捨てます (各ファイル内の各データ変数の min と max を含む) 各データファイルを再読み込みします。 データセットに多数のファイルがある場合、これは非常に時間を消費することができますので、データセットが初めてリロードするのに長い時間がかかりますERDDAP™変更をしてから再読み込みします。  
  • ヒューリスティックス - オプション #256 以降では、ヒューリスティックを使用して変更を行います。 ヒューリスティックスが悪い決定を下す状況に遭遇した場合は、Chrisに問題の説明をメールでお問い合わせください。 ノアのヨハネ。 そのため、ヒューリスティックスを改善することができます。  
  • 代替品 -- 与えられたデータセットに問題が解決しない場合、あなたは問題を作ることによって問題を解決することができるかもしれない.ncml ファイルすべてのデータファイルを並列化し、ファイルを一貫性のあるように、ファイル内の物事の変化を定義します。 その後、EDDTableFrom を指示します... ファイルを集計するためのデータセット.ncml ファイル。

または、使用して下さいNCOファイルを一貫性のあるように、実際にファイルに変更を加える。

年、月、日付、時間、分、秒のための別のコラム

年、月、日付、時間、分、秒ごとに異なる列を持つ表形式のデータファイルはかなり一般的です。 新着情報ERDDAP™v2.10 は、その列を統一した時間列にまとめるデータファイルを編集する唯一のソリューションでした。 とERDDAP™2.10+ は、使用することができます ツイート<sourceName>==== パスワード <sourceName>> (#ソース名) お問い合わせERDDAP™ソース列を結合して、統一された時間列を作る方法、ソースファイルを編集する必要はありません。

<skipHeaderToRegex> は、
  • ツイート<skipHeaderToRegex> を飛ばす (#skipheadertoregex(スキーヘッド)) お問い合わせ オプション (EDDTableFromAsciiFiles と EDDTableFromColumnarAsciiFiles データセットのみ。)
    EDDTableFromAsciiFiles がデータファイルを読み込むと、この正規表現にマッチする行を含む全ての行を無視します。 デフォルトは "" で、このオプションは使用しません。 例は
    <skipHeaderToRegex>\\\*\\\*\\\* END OF HEADER.\\*<skipHeaderToRegex>  

" で始まる行を含むすべての行を無視します。\\\* ヘッダーのエンド。

このタグを使うと、<columnNamesRow> と<firstDataRow> ファイルが読み込まれる前にヘッダーが削除されたかのように動作します。 例えば、ヘッダの直後に列名が行にある場合は、 columnNamesRow=0 を使用します。

生成したいなら データセット このタグが必要なデータセットでXml:

  1. 既存のファイルをコピーしてヘッダを削除することで、新しい、一時、サンプルファイルを作成します。
  2. 実行生成 データセット Xml と、サンプルファイルを指定します。
  3. 手動で追加する<skipHeaderToRegex> タグをdatasets.xmlチャンク。
  4. 仮ファイル、サンプルファイルを削除します。
  5. データセットを使用するERDDAPお問い合わせ
<skipLinesRegex>

オプション (EDDTableFromAsciiFiles と EDDTableFromColumnarAsciiFiles データセットのみ。)
EDDTableFromAsciiFiles がデータファイルを読み込むと、この正規表現に一致する全ての行は無視されます。 デフォルトは "" で、このオプションは使用しません。 例は

    <skipLinesRegex>#.\\*<skipLinesRegex>  

"#" で始まる全ての行を無視します。

このタグを使うと、<columnNamesRow> と<firstDataRow> ファイルが読み込まれる前に、すべての一致行が削除されたかのように動作します。 例えば、ファイルの先頭に「#」など、複数の行が始まってもカラム名Row=0を使う。

EDDTableFromFiles スケルトンXML

  <dataset type="EDDTableFrom...Files" datasetID\="..." active\="..." >
      <nDimensions>...</nDimensions> <!-- This was used prior to ERDDAP™
        version 1.30, but is now ignored. -->
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
        EDDTableFromFiles subclasses, this uses Java's WatchDirectory system
        to notice new/deleted/changed files quickly and efficiently. -->
      <standardizeWhat>...</standardizeWhat> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <nThreads>...</nThreads> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <specialMode>mode</specialMode> <-- This rarely-used, OPTIONAL tag
        can be used with EDDTableFromThreddsFiles to specify that special,
        hard-coded rules should be used to determine which files should
        be downloaded from the server. Currently, the only valid mode
        is SAMOS which is used with datasets from
        https://tds.coaps.fsu.edu/thredds/catalog/samos to download only the
        files with the last version number. -->
      <sourceUrl>...</sourceUrl> <-- For subclasses like
        EDDTableFromHyraxFiles and EDDTableFromThreddsFiles, this is where
        you specify the base URL for the files on the remote server.
        For subclasses that get data from local files, ERDDAP™ doesn't use
        this information to get the data, but does display the
        information to users. So I usually use "(local files)". -->
      <fileDir>...</fileDir> <-- The directory (absolute) with the data
        files. -->
      <recursive>true|false</recursive> <!-- 0 or 1. Indicates if
        subdirectories of fileDir have data files, too. -->
      <pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
        match the pathRegex (default=".\") will be accepted. -->
      <fileNameRegex>...</fileNameRegex> <-- 0 or 1. A regular expression
        (tutorial) describing valid data file names, for example,
            ".\
\.nc" for all .nc files. -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <metadataFrom>...</metadataFrom> <-- The file to get metadata
        from ("first" or "last" (the default) based on file's
        lastModifiedTime). -->
      <charset>...</charset>
        <!-- (For EDDTableFromAsciiFiles and EDDTableFromColumnarAsciiFiles
        only) This OPTIONAL tag specifies the character set (case
        sensitive!) of the source files, for example, ISO-8859-1
        (the default) and UTF-8. -->
      <skipHeaderToRegex>...</skipHeaderToRegex>
      <skipLinesRegex>...</skipLinesRegex>
      <columnNamesRow>...</columnNamesRow> <-- (For EDDTableFromAsciiFiles
        only) This specifies the number of the row with the column
        names in the files. (The first row of the file is "1".
        Default = 1.) If you specify 0, ERDDAP™ will not look for
        column names and will assign names: Column#1, Column#2, ... -->
      <firstDataRow>...</firstDataRow>
        <-- (For EDDTableFromAsciiFiles and EDDTableFromColumnarAsciiFiles
        only) This specifies the number of the first row with data in the
        files. (The first row of the file is "1". Default = 2.) -->
      <dimensionsCSV>...</dimensionsCSV> <-- (For EDDTableFromNcFiles
        and EDDTableFromMultidimNcFiles only) This is a comma-separated
        list of dimension fullNames. If specified, ERDDAP™ will only read
        variables in the source files which use some or all of these
        dimensions, plus all of the scalar variables. If a dimension
        is in a group, you must specify its fullName,
        e.g., "groupName/dimensionName". -->
      <-- The next four tags are DEPRECATED. For more information, see
        File Name Extracts. -->
      <preExtractRegex>...</preExtractRegex>
      <postExtractRegex>...</postExtractRegex>
      <extractRegex>...</extractRegex>
      <columnNameForExtract>...</columnNameForExtract>
      <sortedColumnSourceName>...</sortedColumnSourceName>
        <-- The sourceName of the numeric column that the data files are
        usually already sorted by within each file, for example, "time".
        Don't specify this or use an empty string if no variable is
        suitable. It is ok if not all files are sorted by this column.
        If present, this can greatly speed up some data requests.
        For EDDTableFromHyraxFiles, EDDTableFromNcFiles and
        EDDTableFromThreddsFiles, this must be the leftmost (first) axis variable.
        EDDTableFromMultidimNcFiles ignores this because it has a better
        system. -->
      <sortFilesBySourceNames>...</sortFilesBySourceNames>
        <-- This is a space-separated list of sourceNames
        which specifies how the internal list of files should be sorted
        (in ascending order), for example "id time".
        It is the minimum value of the specified columns in each file
        that is used for sorting.
        When a data request is filled, data is obtained from the files
        in this order. Thus it determines the overall order of the data
        in the response. If you specify more than one column name, the
        second name is used if there is a tie for the first column; the
        third is used if there is a tie for the first and second
        columns; ... This is OPTIONAL (the default is
        fileDir+fileName order). -->
        
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or
        false (the default)) -->
      <cacheFromUrl>...</cacheFromUrl> <!-- 0 or 1 -->
      <cacheSizeGB>...</cacheSizeGB> <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
        <-- For EDDTableFromHyraxFiles, EDDTableFromMultidimNcFiles,
        EDDTableFromNcFiles, EDDTableFromNccsvFiles, and
        EDDTableFromThreddsFiles, the source's axis variables (for
        example, time) needn't be first or in any specific order. -->
  </dataset>

EDDTableFromAsciiサービス

EDDTableFromAsciiサービス 基本的にはスクリーンスクレーパーです。 データを要求するためのシンプルなWebサービスを持っているデータソースに対処することを意図しています (多くの場合、Webページ上のHTMLフォーム) 構造化された ASCII 形式でデータを返すことができます。 (たとえば、comma-separated-value または columnar ASCII のテキスト形式は、多くの場合、データの前後に、または後に他の情報で) お問い合わせ

EDDTableFromAsciiService は、EDDTableFromAsciiService クラスのスーパークラスです。 EDDTableFromAsciiServiceを直接使用することはできません。 代わりに、EDDTableFromAsciiService のサブクラスを使用して、特定の種類のサービスを処理する。

現在、他のサービスタイプは対応しておりません。 しかし、同様の方法で作業する場合、通常、他のサービスをサポートするのは比較的簡単です。 リクエストがあればご連絡ください。

インフォメーション

以下の情報は、EDDTableFromAsciiService のサブクラスすべてに適用されます。

  • 制約 --ERDDAP™表形式のデータリクエストは、任意の変数に制約を置くことができます。 基本的なサービスは、すべての変数の制約を許さない場合があります。 たとえば、駅名、緯度、経度、時間に関する制約のみをサポートする多くのサービス。 そのため、EDDTableFromAsciiServiceのサブクラスがデータセットのサブセットのリクエストを取得すると、ソースデータサービスにできるだけ多くの制約が渡され、ユーザーがデータを渡す前に、サービスによって返されたデータに対する残りの制約が適用されます。
  • 有効な範囲 -- 他の多くのデータセットタイプとは異なり、EDDTableFromAsciiServiceは通常、各変数のデータ範囲がわからないため、有効な範囲の外でデータのリクエストを迅速に拒否することはできません。
  • ASCII テキスト応答をパースする -- EDDTableFromAsciiService が ASCII テキスト サービスから応答を取得する場合、応答が期待される形式と情報を持っていることを検証し、データを抽出する必要があります。 このデータセットのXMLのチャンクで様々な特別なタグを使用してフォーマットを指定できます。
    • <beforeData1> を通して<beforeData10> タグ -- 一連のテキストを指定できます (あなたが望む限り、最大10) EDDTableFromAsciiService は、サービスによって返される ASCII テキストのヘッダで見なければなりません。<beforeData1> を通して<前のデータ10> たとえば、これは、期待する単位を使用して、レスポンスが期待する変数を含むことを検証するのに便利です。 最後の beforeData タグは、データが始まる直前に発生したテキストを識別します。
    • <アフターデータ> お問い合わせ これにより、EDDTableFromAsciiService が、データの末尾を示すサービスによって返される ASCII テキストで探すテキストを指定します。
    • <ノーデータ> お問い合わせ EDDTableFromAsciiService がサービスによって返される ASCII テキストでこのテキストを見つけた場合、リクエストに一致するデータがないと結論付けます。

EDDTableFromAsciiServiceスケルトンXML

  <dataset type="EDDTableFromAsciiService..." datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <sourceUrl>...</sourceUrl>
      <beforeData1>...<beforeData1> <!-- 0 or 1 -->
      ...
      <beforeData10>...<beforeData10> <!-- 0 or 1 -->
      <afterData>...<afterData> <!-- 0 or 1 -->
      <noData>...<noData> <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
  </dataset>

EDDTableFromAsciiServiceNOSから

EDDTableFromAsciiServiceNOSから 提供する ASCII テキストデータサービスから EDDTable のデータセットを作成します。NOAAお問い合わせ国民の海洋サービス (ノーズ) お問い合わせ このクラスの使い方や使い方については、このクラスのスーパークラスをご覧ください。EDDTableFromAsciiサービスお問い合わせ ボブサイモン以外の誰もがこのサブクラスを使用する必要があるとは違います。

NOSサービスからの応答内のデータが、カラムの ASCII テキスト形式を使用しているため、緯度と経度以外のデータ変数は、各データ行のどの文字がその変数のデータを含むかを指定する特殊な属性を持つ必要があります。

<att name="responseSubstring">17, 25</att>  

 

EDDTableFromAllデータセット

EDDTableFromAllデータセット 現在ロードされている他のすべてのデータセットに関する情報が高レベルのデータセットです。ERDDAPお問い合わせ 他の種類のデータセットとは異なり、allDatasetsデータセットdatasets.xmlお問い合わせERDDAP™自動的に 1 つの EDDTableFromAllDatasets データセットを作成します (お問い合わせdatasetIDパスワードallDatasets) お問い合わせ したがって、allDatasets各データセットが作成されますERDDAP™取付けはそれぞれ同じ方法で働きますERDDAP™インストール。

ザ・オブ・ザ・allDatasetsデータセットは、表形式のデータセットです。 各データセットの情報は行なっています。 それぞれのデータセットに関する情報を持つ列があります。datasetID、アクセス可能、機関、タイトル、minLongitude、maxLatitude、maxLatitude、minTime、maxTime、等。 なのでallDatasetsタブラデータセットで、他のタブラデータセットをクエリできるのと同じ方法でクエリできます。ERDDAP™レスポンスのファイルタイプを指定できます。 これにより、ユーザーは非常に強力な方法で関心のあるデータセットを検索できます。  

EDDTableFromAsciiFiles (EDDTableFromAsciiFiles) からの投稿

EDDTableFromAsciiFiles (EDDTableFromAsciiFiles) からの投稿 comma-, tab-, Semicolon-, またはスペース分離した ASCII データファイルからデータを集計します。

  • ほとんどの場合、ファイルは最初の行と2番目の行で始まるデータに列名が表示されます。 (ここでは、ファイルの最初の行は行番号1と呼ばれます。) しかし、あなたは使用することができます<columnNamesRow> と<最初のDataRow> でdatasets.xml異なる行番号を指定するファイル。
  • ERDDAP™データの行が異なるデータ値を持つことを可能にします。ERDDAP™不足しているデータ値が行の最終列であると仮定します。ERDDAP™不足しているデータ値の標準的な欠落値値を割り当てます。 (追加 v1.56)
  • ASCII ファイルは簡単に使用できますが、データを保存/取得するための最も効率的な方法ではありません。 より大きい効率のために、ファイルをとして保存して下さいNetCDFv3の.ncファイル (すべての変数によって共有される1つの次元、"row"を使って) 代わりに。 お問い合わせ使用方法ERDDAP™新しいファイルを生成するお問い合わせ
  • このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 ASCII ファイルのメタデータの総欠如のため、GenerateDatasetsXml の結果を編集する必要があります。
  • 警告: いつERDDAP™指定した行のエラーが見つかられば、ASCII のデータファイルを読み込みます。 (例えば、誤ったアイテム数) 警告メッセージ (「警告: 悪い行 (ツイート) データ "... 続いて行の悪い行のリストを持つ) お問い合わせlog.txt ファイルデータファイルの残りの部分を引き続き読み続けます。 そのため、定期的に見ることがあなたの責任です。 (スクリプトを書くか、) ログ内のメッセージ txt では、データファイル内の問題を解決できるようにします。ERDDAP™ユーザーがファイルの一部行が欠陥を持っているにもかかわらず、利用可能なすべての有効なデータを読み続けることができるように、このように設定されています。  

EDDTableFromの特長 AwsXmlファイル

EDDTableFromの特長 AwsXmlファイル 自動気象ステーションのセットからデータを集計 (ツイート) WeatherBug Rest XML APIを使用したXMLデータファイル (もはや活動しません) お問い合わせ

EDDTableFromColumnarAsciiFilesから

EDDTableFromColumnarAsciiFilesから 固定幅の列を持つ表形式の ASCII データファイルからデータを集計します。

  • ほとんどの場合、ファイルは最初の行と2番目の行で始まるデータに列名が表示されます。 ファイルの最初の行/列は行#1と呼ばれます。 しかし、あなたは使用することができます<columnNamesRow> と<最初のDataRow> でdatasets.xml異なる行番号を指定するファイル。

  • ザ・オブ・ザ・<addAttributes> それぞれ<dataVariable> これらのデータセットには、次の2つの特別な属性が含まれます。

    • <att name="startColumn"> インテガー <att> -- このデータ変数の開始である各行の文字列を指定します。
    • <att 名前="stopColumn"> インテガー <att> -- このデータ変数の最後に 1 である各行の文字列を指定します。

最初の文字列は列#0と呼ばれます。 たとえば、このファイルでは、温度値の割り当てを時間値とする:

      0         1         2        <-- character column number 10's digit
0123456789012345678901234567 <-- character column number 1's digit
time temp
2014-12-01T12:00:00Z12.3
2014-12-02T12:00:00Z13.6
2014-12-03T12:00:00Z11.0

時間データ変数は、

      <att name="startColumn">0<att>  
  <att name="stopColumn">20<att>

と時刻データ変数は

      <att name="startColumn">20<att>  
  <att name="stopColumn">24<att>

これらの属性は、すべての変数に指定される必要があります。固定値そして、ファイル名変数。

  • ASCII ファイルは簡単に使用できますが、データを保存/取得するための効率的な方法ではありません。 より大きい効率のために、ファイルをとして保存して下さいNetCDFv3の.ncファイル (すべての変数によって共有される1つの次元、"row"を使って) 代わりに。 お問い合わせ使用方法ERDDAP™新しいファイルを生成するお問い合わせ
  • このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 各データ列の開始位置と終了位置を判断し、ASCIIファイルのメタデータの総欠如を判断する難しさのために、GenerateDatasetsXmlから結果を編集する必要があります。  

EDDTableFromHttpGetの特長

EDDTableの特長 FromHttpGet は他のすべての種類のデータセットと異なるERDDAP™特定の "authors" が定期的にデータを追加したり、データを修正したり、データセットからデータを削除したりできるシステムを持っていることHTTP GETまたはポストコンピュータプログラム、スクリプト、ブラウザからのリクエスト。 データセットは、他のすべてのEDDTableデータセットがクエリできるのと同じ方法でユーザーによって照会可能です。ERDDAPお問い合わせ このクラスのスーパークラスの説明を参照してください。EDDTableFromFiles (EDDTableFromFiles) は、, そのスーパークラスから継承されている機能について読みます.

EDDTableFromHttpGet のユニークな機能は、以下に記載されています。 この初期セクションをすべて読み、それを理解する必要があります。それ以外の場合は、現実的な期待を持っているか、修正が難しい問題に自分自身を得る可能性があります。

意図した使用

このシステムは、以下のために意図されています。

  • タプル (サインイン) データ、グリッドデータではなく。
  • リアルタイムデータ - 目標は、著者を許可することです (例えば、センサー、自動QCスクリプト、または特定の人間) データセットに変更を加える (フォロー.insert または .delete コマンド) その変更をアクセス可能にするためにERDDAP™ユーザは1秒未満で、おそらくはるかに高速です。 その1秒はネットワーク時間です。ERDDAP™リクエストを1ms程度で処理でき、データがすぐにアクセス可能です。 これは、高速,堅牢な信頼できるシステムお問い合わせ
  • ほぼすべてのデータの頻度 - このシステムは、不十分なデータを受け入れることができます (例:毎日) 非常に頻繁にデータを通して (例:100Hzのデータ) お問い合わせ システムを最適化すれば、より高い頻度データを扱うことができます (極端に行けばおそらく10のKHzデータ) お問い合わせ
  • 1つのセンサーまたは類似センサーの収集からのデータ。
  • バージョン/ / / /再生科学/ / / /DOIお問い合わせ データを変更できるようにする必要がある状況 (例えば、品質管理の旗を変えて下さい) , 著者が各変更を行ったか知っている, 著者が変更を行ったときのタイムスタンプを知っている, そして (リクエストに応じて) 変更前の元のデータを見ることができます。 したがって、これらのデータセットは、DOIツイートお問い合わせ 彼らが会うのでDOI集計を除いて、データセットが変更されていない要件。 一般的には、リアルタイムのデータセットが対象外です。DOIs データがレトロアクティブに変更されることが多いため (e.g.、QA/QCの目的のために) お問い合わせ  

データが EDDTableFromHttpGet のデータセットにあると、他の EDDTable データセットからデータを要求するような方法でデータをリクエストできます。  

実験: お問い合わせ

このシステムは新しく、失われた環境データが要求できないため、EDDTableFromHttpGetを実験的に処理する必要があります。 別のシステムから移行する場合は、新しいシステムがうまく機能する自信があるまで、古いシステムと新しいシステムを並行して実行してください。 (週または月、わずか時間または日) お問い合わせ この場合、システムが .insert と .delete の URL を EDDTableFromHttpGet データセット に分けてアーカイブすることを確認してください。 (Apache および/または Tomcat のログにすぎても) , 少なくともしばらくの間. また、すべてのケースでは、EDDTableFromHttpGet のデータセットによって作成されたデータファイルが外部のデータストレージデバイスに定期的にバックアップされていることを確認してください。 (注意:ログイン. EDDTableFromHttpGet が作成したデータファイルを非常に効率的にバックアップできます。)
 

.insert と .delete

任意のデータセットのためにERDDAP™への要求を送るとき、ERDDAP™データセット内のデータのサブセットには、レスポンスに必要なファイルタイプを指定します。例えば、.csv,.htmlTable,.nc,.jsonお問い合わせ EDDTableFromHttpの特長 インサートできる2つの追加「ファイルタイプ」をサポートするために、このシステムを拡張します (または変更) データセットでデータを削除するか:

  • ログイン
    • '&' で区切られた key=value のペアで、標準の HTML フォームの応答のようにリクエストされます。 例えば、 https://some.erddap.url/erddap/tabledap/myDataset**.insert**?stationID=46088&time=2016-03-30T12:37:55Z&latitude=10.1&longitude=-150.1&airTemp=17.23&waterTemp=12.3&author=JohnSmith\_someKey1
      インフォメーションERDDAP™データの追加または変更stationID=46088 指定された時間。
    • この変更の作者はJohnSmithであり、キーはsomeKey1です。
    • URL には有効な値を含める必要があります。 (値が見つからない) すべてのためにhttp取得必須
    • 値が値の場合httpお問い合わせ リクエストの変数 (例:stationID時間と時間) 既にデータセットの行に値を付け、新しい値が有効に古い値を上書きする (以前の値がまだアクセス可能ですが、ユーザが以前のデータからデータをリクエストする場合バージョンデータセットの) お問い合わせ
    • .insert URL は &timestamp= を含まない (ERDDAP™値を生成する) または &command= (.insert で指定される (command=0 は) または .delete (コマンド = 1) ) お問い合わせ
    • .insert URL がデータセットにある他のカラムの値を指定しない場合は、ネイティブの欠落値となると仮定します。 (MAX\_VALUE 整数データタイプ、Nan はフロートとダブルス、文字列の "") お問い合わせ  
    • .deleteさん
      • '&' で区切られた key=value のペアで、標準の HTML フォームの応答のようにリクエストされます。 例えば、 https://some.erddap.url/erddap/tabledap/myDataset**.delete**?stationID=46088&time=2016-03-30T12:37:55Z&author=JohnSmith\_someKey1
        インフォメーションERDDAP™データの削除stationID指定された時刻の=46088
      • この変更の作者はJohnSmithであり、キーはsomeKey1です。
      • URL は、URL を指定する必要があります。http取得必須リクエストで (例:stationID時間と時間) お問い合わせ これらの値が既にデータセットの行の値を一致させる場合 (彼らは通常、) , 古い値は効果的に削除されます (以前の値がまだアクセス可能ですが、ユーザが以前のデータからデータをリクエストする場合バージョンデータセットの) お問い合わせ
      • リクエストを認証するために必要な非HttpGetrequiredVariables以外の値を指定する必要はありません。  

詳細:

  • .insert と .delete のリクエストは、標準の HTML フォームのレスポンスのようにフォーマットされ、key=value のペアは '&' で区切られます。 値は、パーセントエンコードお問い合わせ したがって、特殊な文字をフォーム%HHにエンコードする必要があります。HHは文字の2桁の16進数値です。 通常、あなたはちょうど数の句読点文字を変換する必要があります: % に %25, に %26, 「に %22,<%3C, =%3D, >%3E, +%2B,|に%7C、\[に%5B、\]%5D にスペースを %20 に変換し、#127 を超えるすべての文字を UTF-8 形式に変換し、UTF-8 の各バイトを %HH 形式に変換します。 (プログラマに助けを求める) お問い合わせ
  • .insert と .delete リクエストには、http取得必須、例えば、stationIDそして時間。 .insert リクエストの場合、リクエストで指定されていない変数は、値が不足していると仮定します。 (整数変数の MAX\_VALUE, フロート変数の NaN, 文字列変数の空の文字列) お問い合わせ .delete リクエストの場合、non-HttpGetrequired の値 変数 (作者以外は、必要な) 無視されます。
  • .insert と .delete のリクエストには、作者の名前と作者のキーをフォームauthor= のパラメーターで含める必要があります。 投稿者\_key 要求の最後の変数として。 リクエスト全体が受け取られたことを最後に確認するためにこれを要求して下さいERDDAPお問い合わせ 著者のみ (キーではなく) データファイルに保存されます。 許可されたリストを指定する必要があります 投稿者\_key 's はグローバル属性でhttpリソース
  • .insert と .delete のパラメーターはスケーラ (シングル) フォーム内の任意の長さの値または配列\[値1、値2、値3、値N\]お問い合わせ 指定したリクエストの場合、配列を持つ全ての変数は同じ値の配列を持つ必要があります。 (他のエラーです) お問い合わせ リクエストスケーラと配列の値がある場合、スケーラ値が指定された配列と同じ長さで配列になるようにレプリカされます。stationID=46088 は、stationIDパスワード\[46088,46088,46088\]お問い合わせ 配列はキーです高いスループットお問い合わせ 配列がなければ、.insert や .delete がリモートの作者から毎秒 8 行以上のデータにチャレンジするようになります。 (すべてのネットワークのオーバーヘッドのため) お問い合わせ 配列では、リモートセンサーから毎秒1000行以上のデータを .insert または .delete するのは簡単です。
  • .insertおよび.deleteは受け入れます (エラーメッセージなし) 整数が期待されると、ポイント番号を浮動させます。 この場合、データセットは整数値を丸めます。
  • .insertおよび.deleteは受け入れます (エラーメッセージなし) 変数のデータ型の範囲外にある整数と浮動小数。 この場合、データセットは値が値として保存されます。ERDDAP' は、そのデータ型に対するネイティブな欠損値 (MAX\_VALUE は、フロートとダブルの整数型とNaNの整数) お問い合わせ  

ソリューション

.insert または .delete URL が成功した場合、HTTP レスポンスコードは 200 になります。 (お問い合わせ) 応答はテキストとテキストになります.jsonオブジェクト、例えば、

    {
"status":"success",
"nRowsReceived":1,
"stringTimestamp":"2018-11-05T22:12:19.517Z",
"numericTimestamp":1.541455939517+E9
}

タイムスタンプにはミリ秒単位の精度があります。

.insert または .delete URL が失敗した場合は、200 以外の HTTP レスポンスコードを取得します。 (お問い合わせ) 、例えば、間違い403 不正なauthor\_key 値を送信した場合は禁止します。ERDDAP™HTTPレスポンスコードを送信します (たとえば、.jsonフォーマットされたエラー) それはインターネットで物事が行われる方法であり、システム内のどこにもエラーが発生する可能性があるためです (例えば、ネットワーク内で HTTP エラーを返す) お問い合わせ エラーがからある場合ERDDAP™回答にはテキストが含まれている場合があります。 (コメントはありません.json) 何が間違っていたのかを詳しく説明しましたが、HTTPレスポンスコード (200=Okay、何か他の問題は悩みます) .insert または .delete が成功したかどうかを確認する適切な方法です。 HTTP レスポンスコードが確認できない場合、または不便な場合は、応答テキストの "status":"success" を検索して、成功の信頼できる表示になります。

ログファイル

EDDTableFromHttpGet が .insert と .delete コマンドを受信すると、ログファイル一式に関連したファイルへの情報を追加するだけです。それぞれは、それぞれに格納されているテーブルです。ジェイソン CSVファイルラインお問い合わせ ユーザがデータをリクエストする場合、ERDDAP™関連するログファイルをすばやく読み、作成した順序でデータセットの変更を適用し、ユーザーの制約によりリクエストをフィルタリングします。ERDDAP™データ。 要求 さまざまなログファイルへのデータの分割、さまざまな情報の保存 (例: コマンドのタイムスタンプ、コマンドが .insert か .delete であったか) データセットのセットアップのさまざまな側面と、すべてはそれを可能にしますERDDAPデータを保存し、このデータセットからデータを迅速かつ効率的に取得します。  

セキュリティと著者

.insert と .delete コマンドは、&author= を含める必要があります。 投稿者\_key author\_key が作者の識別子で構成されている最後のパラメーターとして (あなたが選んだ: 名前、初期値、擬似番号) , アンダースコア, 秘密鍵. ザ・オブ・ザ・ERDDAP™管理者は、いつでも変更できる有効なauthor\_keyの値のリストを生成するために、著者と連携します。 EDDTableFromHttpGet が .insert または .delete コマンドを受信すると、authorID\_key が最後のパラメーターで有効であることを確認します。 最後のパラメータなので、コマンドライン全体が到達したことを示します。ERDDAP™捨てられなかった。 秘密鍵は、特定の著者だけがデータセットにデータを入力または削除する可能性があることを保証します。ERDDAP™authorID を抽出し、作者の変数にその値を保存します。これにより、データセットに与えられた変更について誰が責任を負っているかを見ることができます。 .insert と .delete コマンドは、https: (セキュア) ERDDAP™サイトマップ これにより、転送中の情報が秘密に保たれていることを確認します。  

タイムスタンプ

ログシステムの一環として、EDDTableFromHttpGet はタイムスタンプを追加します。 (その時間ERDDAPリクエストを受け取った) ログファイルに保存する各コマンドへ。 なのでERDDAP™作者ではなくタイムスタンプを生成し、異なる作者がクロックセットから少し異なる時間に変更を加えるかどうかは関係ありません。 タイムスタンプは、変更がデータセットに行われた時刻を確実に示します。  

HTTP ホスト

  • 「HTTP POSTとは?」
    スタッフポストはよりよい代わりです (比較するHTTP GET) クライアントから HTTP サーバに情報を送信する できるか、またはセキュリティを改善したい場合は、 GET の代わりに POST を使用して情報を送信するERDDAPお問い合わせ POST は、GET と、https安全な方法でURLが送信されますが、URL全体が (author\_key を含むパラメーターを含む) Apache、Tomcat、およびERDDAP™ファイルが適切に保護されていない場合は、誰かがそれらを読み取ることができるログファイル。 POST では、パラメーターは安全な方法で送信され、ログファイルに書き込まれません。 POSTは、クライアントが機能し、クライアントソフトウェアによって広くサポートされていないが、プログラミング言語はそれをサポートするため少し難しくなっています。 GET または POST を介してデータセットに送信するコンテンツは、別の方法でフォーマットされるだけです。  

httpお問い合わせ 変数 グローバル属性

このシステム全体が機能する重要な部分は、必要なグローバル属性です。httpお問い合わせ 変数は、コンマ区切りのリストです。dataVariableデータを一意に識別するソース名。 これは可能な限り最小限で、ほぼ常に時間変数を含める必要があります。 例えば、ここがおすすめです。httpお問い合わせ 各変数CFシリーズ 分離されたサンプリングの幾何学 (DSGについて) (もちろん、データセットではID名が異なる場合があります。) : : :

  • TimeSeriesの場合:stationID, 時間

  • 軌跡のため:trajectoryID、時間

  • プロフィールのため: 時間 (想定時間は Profile\_id です。) , 深さ

  • 時間系列 プロフィール:stationID, 時間 (想定時間は Profile\_id です。) , 深さ

  • トラジェクトリーのため プロフィール:trajectoryID、時間 (想定時間は Profile\_id です。) , 深さ

TimeSeriesを例に挙げる: .insert コマンドを 含むstationID=46088 と time=2016-06-23T19:53:00Z (他の変数のその他の値) : : :

  • そのステーションとその時間に既存のデータがない場合、その効果はデータセットにデータを追加することになります。
  • そのステーションとその時間に既存のデータがある場合、この新しいデータで既存のデータの行を置き換えることになります。 (もちろんですからERDDAP™受け取るすべてのコマンドのログを保持し、古いデータはログに残っています。 この変更前のデータセットのバージョンからデータをリクエストする場合、古いデータが表示されます。)
     

httpGetDirectory構造

  • httpリソース 構造 グローバル属性とデータ (ログイン) ファイル名
    このシステム全体が効率的に機能する部分は、ERDDAP™一連のデータを作成する (ログイン) データセットの異なるチャンクを持つファイル、それぞれ。 これらがうまく設定されている場合、ERDDAP™ほとんどのデータリクエストに対して迅速に対応できます。 この設定は、httpGetDirectoryStructure のグローバル属性は、相対的なファイル名のように見える文字列です。例えば、「stationID/10years はディレクトリ構造の仕様です。 その部分は、データのディレクトリとファイル名を示す (ログイン) ファイルが組み立てられます。

    • 部分が整数である場合 (>==== 1) プラス時間Period (ミリ秒、秒、分、時間、日付、月、年、または複数) , 例えば, 10years, その後 EDDTableFromHttpGet データセットは、データの行のタイム値を取ります (例: 2016-06-23T19:53:00Z) 、その精密にtuncated時間を計算して下さい (例:2010年) フォルダや fileName をそこから作成します。

目標は、データを各ファイルに合理的に大きなチャンクを取得することですが、2GB以下です。

  • それ以外の場合は、仕様の部分は、dataVariableお問い合わせsourceName、例えば、stationIDお問い合わせ この場合、EDDTableFromHttpGet は、データの新しい行の変数の値からフォルダーまたはファイル名を作成します。 (例:「46088」) お問い合わせ

.insert と .delete コマンドのデータが特定のデータに保存されるため (ログイン) files, EDDTableFromHttpGet は通常 1 つまたは複数のデータを開く必要があります。 (ログイン) 特定のユーザー要求のデータを見つけるためのファイル。 それぞれのデータが (ログイン) file には、データセットのチャンクに関するすべての関連情報があり、EDDTableFromHttpGet が特定のバージョンを作るのは高速で簡単です。 (または現在のバージョン) そのファイルのデータセットの (データセット全体のリクエストされたバージョンを生成する必要はありません。) お問い合わせ

一般的なガイドラインは、データの量と頻度に基づいています。 データの行ごとに100バイトを想定した場合、

    | Frequency  <br>of measurements | Recommended  <br>httpGetDirectoryStructure |
| --- | --- |
| \\>=1 per second | *featureID*/1year/1day |
| \\>=1 per minute | *featureID*/2months |
| \\>=1 per hour | *featureID*/10years |
| \\>=1 per day | *featureID* |

例えば、ディレクトリ構造がstationID/2ヶ月で2つのステーションからデータを投入 (46088 と 46155) 2015年12月~2016年5月 EDDTableFromHttp 46088 と 46155 という名前のディレクトリを作成し、2015-11 という名前のファイルを作成します。.json2016年01月01日.json2016年03月01日.json2016年05月08日.jsonログイン (各保有期間 関連する駅の2か月分のデータ) お問い合わせ 将来的には、.insert または .delete を使用してデータを変更または削除する場合、たとえば 2016-04-05T14:45:00Z、EDDTableFromHttp コマンドを46088/2016-03 に追加します。.jsonl、関連するデータ (ログイン) ファイル。 データセットは、新しいステーションからデータを保持するために必要な追加のディレクトリを作成するため、将来的には、他のステーションのデータを追加するのは良いです。

httpリソース

すべてのEDDTable ログイン データセットを取得するには、グローバル属性が必要ですhttpGetKeys は、許可された作者とその秘密鍵のリストをコンマ区切りのリストとして指定します。 投稿者\_key 、例えば、 JohnSmith\_someKey1、HOBOLogger\_someKey2、QCScript59\_someKey3。

  • author\_key は大文字を区別し、全 ASCII 文字 (#33 - #126, 任意のコンマなし, または ' 文字
  • キーはパスワードのようなので、 >=8 文字、推測が難しく、内部辞書の単語なしでなければなりません。 パスワードを扱いますので、それらをプライベートに保つ必要があります。
  • 最初の '\' 文字はキーから作者を分離するので、作者名は '\' 文字を含まない (しかし、キーは) お問い合わせ
  • 著者が 1 つ以上のauthor\_key's、例えば JohnSmith\_some キー1、JohnSmith\_some キー7等
  • この属性の値をいつでも変更できます。 変更は、データセットが読み込まれる次回に影響します。
  • 公開される前に、データセットのグローバルアトリビュートから削除されます。
  • データをインサートまたは削除するためのリクエストごとに、&author= を含める必要があります。 投稿者\_key パラメータ。 キーの妥当性を検証した後、ERDDAP™著者の部分だけを保存します (キーではなく) データファイルで。

セットアップ

ここでは、EDDTableFromHttpGet のデータセットを設定するための推奨手順は次のとおりです。

  1. このデータセットのデータを保持するメインディレクトリを作ります。 この例では /data/testGet/ を使うようにしましょう。 ユーザーが GenerateDatasetsXml を実行し、実行しているユーザERDDAP™このディレクトリへのアクセスを読み込みます。  

  2. サンプルを作成するためにテキストエディタを使用する.json拡張子を持つl CSVファイル.jsonディレクトリ内の l 名前は重要ではありません。 たとえば、サンプルを呼び出すことができます。.jsonログイン 2ラインを作る.jsonl CSVファイル、最初の行とdummy/typical値の列名 (正しいデータ型) 第二線。 ここでは、コレクションに適したサンプルファイルですfeatureType=空気と水温を測定した時間シリーズデータ。 \[お問い合わせfeatureType=軌跡、変更する可能性がありますstationIDtrajectoryID であること。\]
    \[お問い合わせfeatureType=プロファイル、変更する可能性がありますstationIDProfileID で、深さ変数を追加します。\]

    \[ツイートstationIDお問い合わせ"time", "緯度", "経度", "airTemp", "waterTemp", "timestamp", "author", "command"\] \["myStation", "2018-06-25T17:00:00Z", 0.0, 0.0, 0.0, 0.0, "SomeBody", 0\]

注意:

  • このファイルを最終的に削除するので、実際のデータ値が重要ではありませんが、正しいデータタイプでなければなりません。 同様に、ソースからの実際のデータが使用する時間変数は同じフォーマットを使うべきです。
  • すべての変数の場合、sourceName等しい意志destinationNameそのため、時刻、緯度、経度、時には深さ、または高度などの正しい/final変数名を、その情報を含む変数が含まれる場合に使用します。
  • 観察が行われた時間を記録する変数名はほぼ常にあります。 dataType 文字列は、文字列時間に適した単位 (例:yyyy-MM-dd'T'HH:mm:ss.SSSZ' は、) またはデータ タイプ 倍と数値時間に適した単位 (例:1970-01-01T00:00:00Z以降、またはその他の拠点時刻) お問い合わせ
  • 列の3つ (通常、最後の3) タイムスタンプ、作者、コマンドでなければなりません。
  • timestamp カラムは EDDTableFromHttpGet で使用し、指定したデータ行をデータファイルに追加したときに示すタイムスタンプを追加します。 1970-01-01T00:00:00Z以降、dataType の倍数と単位秒数があります。
  • dataType 文字列を持つ著者の列は、この行のデータを指定した権限の著者が記録するために使用されます。 認可された著者は、httpGetKeys グローバル属性お問い合わせ 鍵は指定されますが、 投稿者\_key そして、そのフォームの "request" URL にあるので、著者の部分だけがデータファイルに保存されます。
  • dataType バイトのコマンド列は、この行のデータがインサートであるかどうかを示します。 (0 の 0) または削除 (1) お問い合わせ  
  1. GenerateDatasetを実行 Xml とそれを言う

    1. データセットのタイプはEDDTableFromHttpGetです
    2. ディレクトリは (この例について) /data/testの お問い合わせ
    3. サンプルファイルが (この例について) /data/testGet/スタートアップ.jsonログイン
    4. ザ・オブ・ザ・httpお問い合わせ 変数は (この例について) stationID, 時間 説明を参照してください。http取得必須お問い合わせ
    5. 5分以内にデータを収集する場合、httpこの例の GetDirectoryStructure はstationID/2ヶ月 . 説明を参照してください。httpGetDirectory構造お問い合わせ
    6. ザ・オブ・ザ・httpリソース

出力を追加する (チャンクのdatasets.xmlデータセットの場合) お問い合わせdatasets.xmlお問い合わせ   4. 編集するdatasets.xmlこのデータセット用のチャンクで、正しく完了します。 確かに、すべての ? を置き換える? 正しい内容で。   5. お問い合わせ<fileTableInMemory> 設定:

  • データセットが通常頻繁な .insert および/または .delete リクエストを取得する場合は、これを true に設定します。 (例: 10秒ごとに1回以上) お問い合わせ これにより、EDDTableFromHttpGet が .insert や .delete リクエストに迅速に対応できます。 これを true に設定すると、EDDTableFromHttpGet は、定期的にファイルテーブルと関連情報をディスクに保存します。 (必要に応じて、約5秒) お問い合わせ
  • これを false に設定する (デフォルト) データセットが通常、 .insert および/または .delete リクエストが不足している場合 (例:10秒ごとに1回未満) お問い合わせ  
  1. 注意: 利用することも可能です。<cacheFromUrl> および関連する設定datasets.xmlEDDTableのため ログイン リモートEDDTableFromHttpGetデータセットのローカルコピーの作成と維持方法としてデータセットを取得するERDDAPお問い合わせ ただし、この場合、このローカルデータセットは .insert と .delete リクエストを拒否します。

EDDTable の使用 FromHttpGet データセット

  • 著者は "requests" を作ることができます。データセットからデータを入力または削除するお問い合わせ  
  • 実際のデータがデータセットに投入された後、元のサンプルデータファイルを削除できます。  
  • ユーザーは、他のEDDTableデータセットでデータセットからデータをリクエストできます。ERDDAPお問い合わせ timestamp 列に制約がない場合、リクエストはデータセットの現在のバージョンからデータを取得します。 (インサートと削除コマンドをすべて処理した後のログファイルと再選別http取得必須) お問い合わせ  
  • ユーザーは、EDDTableFromHttpGet のデータセットに固有のリクエストを作成することもできます。
    • リクエストが含まれている場合<または<= タイムスタンプ列の制約, その後ERDDAP™ログファイルの行を指定したタイムスタンプまで処理します。 エフェクトでは、このタイムスタンプ値からデータセットに行われたすべての変更を一時的に削除します。 詳しくは、バージョンお問い合わせ
    • リクエストに >, >=, または = タイムスタンプカラムの制約が含まれている場合、例えば, &timestamp<=0, それからERDDAP™インサートや削除コマンドを処理することなく、データファイルからデータをそのまま返します。
  • 今後、ツールが構築されると想定しています。 (お問い合わせ お問い合わせ) これらのデータセットを扱うため。 たとえば、生ログファイルを読み込み、異なるキャリブレーション式を適用し、その派生情報と異なるデータセットを生成/更新するスクリプトがあるかもしれません。 スクリプトはリクエストを介して元のデータを取得できることに注意してくださいERDDAP™ (スクリプトが動作する最も簡単なファイル形式でデータを取得する) .insert "requests" を使って新しいデータセットを生成/更新するERDDAPお問い合わせ スクリプトは、データファイルへの直接アクセスを必要としません。 許可された作者のコンピューターに使用できます。  

EDDTableFromHttpGetに関する詳細情報

トピックは次のとおりです。

詳細はこちら:

セットアップを変更!

データセットが作成され、データを追加したら、

  • DON'T 追加または削除dataVariableお問い合わせ
  • DON'T 変更sourceNameまたはdestinationNameお問い合わせdataVariableお問い合わせ
  • DON'T データを変更 タイプのdataVariableお問い合わせ しかし、あなたは変更することができますdataVariable'メタデータ。
  • DON'T 変更httpお問い合わせ 変数 グローバルな属性。
  • DON'T 変更httpGetDirectoryStructure グローバル属性。

これらのいずれかを変更する必要がある場合は、新しいデータセットを作成し、すべてのデータを新しいデータセットに転送します。  

ログイン

コンピュータサイエンスでは、データセットで作業するための4つの基本コマンドがクリエイト, READ, 更新, 削除 (ログイン) お問い合わせ SQL、リレーショナルデータベースと連携するための言語は、INSERT、SELECT、UPDATE、DELETEに等しい。 EDDTableFromHttpGet では、

  • .insert は CREATE と UPDATE の組み合わせです。
  • .delete は DELETE です。
  • データのサブセットをリクエストするための定期的なシステムが READ です。

このように、EDDTableFromHttpGet は、データセットで作業するための基本的なすべてのコマンドをサポートしています。  

  • .insert または .delete のエラーなしのリクエストは HTTP ステータスコード=200 と JSON オブジェクトを返します。
    {
"status":"success",
"nRowsReceived":1,
"stringTimestamp":"2018-03-26T15:34:05.552Z",
"numericTimestamp":1.522078445552E9
}

2つのタイムスタンプ値は、インサートまたは削除されたデータの行のタイムスタンプ変数に保存されるミリ秒の同じミリ秒を表します。ERDDAP™これらのキーと値のペアの名前とフォーマットを変更しません。ERDDAP™将来の JSON オブジェクトにキー値のペアを追加できます。  

無効リクエスト

Invalid .insert または .delete リクエストは、status=200 以外の HTTP エラーステータスコードを返し、データセットに変更を加えません。 これは、誤った著者情報、誤った変数名、異なる変数の異なる配列の長さ、欠落した必須変数、不足している変数値などを含む。 複数のデータファイルが要求される場合、リクエストの一部が成功し、一部が失敗する可能性があります。 しかし、リクエストを送信するセンサーが完全な故障として任意の故障を治療する場合、これは問題ではありません。 例えば、ERDDAP™インサート (または削除) 同じデータを2列に2回、最悪の場合、その情報は2回保存され、ログファイルで一緒に閉じられます。 トラブルの原因となるのは難しいです。  

HttpGet 速度

.insert または .delete リクエストの場合 (カウントしないhttpオーバーヘッド) , ボールパークは、.insert または .delete の速度を数値化します。 .insert ごとの 1ms のデータ 1 列 .insert ごとの 2ms および配列のデータ 10 列 (\[\])
.insert ごとの 3ms および配列の 100 列のデータ (\[\])
.insert ごとの 13ms は配列のデータの 1000 列の (\[\])
明らかに配列はキーです高いスループットお問い合わせ 配列がなければ、.insert や .delete がリモートの作者から毎秒 8 行以上のデータにチャレンジするようになります。 (すべてのネットワークのオーバーヘッドのため) お問い合わせ 配列では、リモートセンサーから毎秒1000行以上のデータを .insert または .delete するのは簡単です。

大量のデータリクエストで、Tomcatの上限を最大クエリの長さに表示できます。 (デフォルトは8KBですか?) , しかし、それはあなたのmaxHttpHeaderSize設定を編集することによって増加することができます トームキャット /conf/server.xml の HTTP/1.1 コネクターの記入項目。

いつかERDDAP™JSON ライン CSV データの読み込み (ログイン) ファイルには、バイナリデータファイルを読むのに比べ、ペナルティが小さくなります。 読書時にこの時間ペナルティは、データを書くときにシステムの速度と堅牢性のために支払う合理的な価格だったと感じました (第一次の重要性) お問い合わせ

SSDシリーズ

より大きい速度のため、お問い合わせソリッドステートドライブ (SSDシリーズ) データを保存します。 より高速なファイルアクセス時間 (<ハードディスクドライブよりも0.1ms (3 - 12ミリ秒) お問い合わせ また、データ転送速度が速い (200 - 2500 MB/秒) ハードディスクドライブよりも (〜200 MB/秒) お問い合わせ 近年の費用はかなり下がっています。 初期のSSDは、与えられたブロックに多数の書き込みの後に問題がありましたが、この問題は大幅に減少しました。 SSD を使用してデータを一度に書き込むと、コンシューマーグレードの SSD でさえ (エンタープライズグレードのSSDよりもかなり高価です) 長く続くべきです。

ロバスト

可能な限り、簡単に作業ができます。

  • システムは複数の糸を持つように設計されています (例:センサー、自動QCスクリプト、人間) 同じデータセットと同じファイルでも同時に動作する。 これの多くは、データを保存するためのログファイルアプローチを使用して、非常に単純なファイルタイプを使用することで可能です。ジェイソン CSVファイルラインデータの保存
  • JSON ライン CSV へのもう 1 つの大きな利点は、ファイルが破損してしまった場合です。 (e.g. 行上のエラーのため無効) , テキストエディタでファイルを開き、問題を解決するのは簡単です。
  • もう一つの利点は、ファイル内の行にエラーがある場合、システムはまだエラー行の前後に行のすべてのデータを読み込むことができます。 また、システムは、追加の .insert と .delete 情報をログアウトできます。
  • 管理者アクセス可能な標準ファイルを使用する巨大な利点 (リレーショナルデータベースやCassandraや他のソフトウェアと比較して) : : : 維持しなければならない他のソフトウェアはありませんし、データを保存または取得するために実行する必要があります。 また、データがチャンクにあるため、常に標準的なファイルをバックアップするのは簡単です。 (しばらくすると、各駅の現行ファイルのみが変更されます。) お問い合わせ 対照的に、それはかなりの努力とシステムダウン時間を要し、データベースとCassandraから外部バックアップファイルを作成する。  
システム信頼性

1つのサーバーを1つのサーバーと期待するのは合理的ですERDDAP™99.9%稼働時間 - 年間約9時間のダウンタイム (でも、悪夜でも使える!) お問い合わせ あなたが勤勉で幸運な場合は、99.99%の稼働時間を得ることができます (年間53分のダウンタイム) , 更新のためのいくつかの再起動は、それほど時間がかかりますので、. あなたは極端な措置を取る必要があります (別のバックアップ サーバー、無停電電源装置、バックアップ空気調節、24x7x365 人のサイトを監視するため等。) 99.999%の稼働時間にスリムなチャンスを持たせる (年ごとの 5.25 分 downtime) お問い合わせ でも、99.999%の稼働時間を達成するということは、非常に異なっていません (または 99.99%) 問題があなたの制御の外にあるため。 たとえば、Amazon Web Service と Google は、信頼できる Web サービスを提供しますが、そのうちの大きなセクションは数時間ダウンします。

みんなが望むERDDAP™100%の稼働時間、または少なくとも「シックスニン」を持っている (99.9999%の稼働時間は年間32秒のダウンタイムを等しい) , しかし、あなたが費やす時間、労力、お金に関係なく、それを取得しようとしている方法はありません.

しかし、ERDDAP™アップタイムは本当の目標ではありません。 目標は信頼される造りです システム 、データを失うことはありません。 これは解決可能な問題です。

解決策は:データを送るコンピュータソフトウェアに欠陥許容を造りますERDDAPお問い合わせ 具体的には、ソフトウェアがデータ待ちのキューを維持すべきであるERDDAPお問い合わせ キューにデータを追加すると、ソフトウェアは、応答をチェックする必要がありますERDDAPお問い合わせ データが受信されていない場合。 エラーはありません。ソフトウェアは、キュー内のデータを残す必要があります。 より多くのデータが生成され、キューに追加されると、ソフトウェアは再びキュー内のデータを .insert しようとする (多分と\[\]システム) お問い合わせ 成功または失敗します。 失敗すると、あとでやってみます。 この方法で動作するようにソフトウェアを書くと、ソフトウェアが数日分のデータをキューに入れる準備ができたら、実際にセンサーのデータを100%アップロードする良いチャンスがありますERDDAPお問い合わせ そして、あなたは大きな努力や費用を費やすことなくそれを行うだろう。

\[背景: こんな感じではなかった。これは、コンピュータネットワークが信頼性を達成する方法です。 ) コンピュータネットワークは、本質的に信頼できません。 1つのコンピュータから別のコンピュータにファイルを転送すると、ソフトウェアの送信は、いくつかのパケットが失われる可能性があることを知っています。 受信機から指定したパケットに対して、適切な認識が取れていない場合は、失われたパケットを返します。 このアプローチでは、比較的簡単な送信者と受信機ソフトウェアは、信頼できないネットワークの上に信頼性の高いファイル転送システムを構築することができます。\]

JSON が CSV ファイルを並べる理由

EDDTableFromHttpGet の使用ジェイソン CSVファイルライン. データを保存するための 理由は次のとおりです。

  • 主な理由は: JSON ライン CSV ファイルの単純性は、複数のスレッドが特定のファイルに書き込むことを可能にする高速で簡単かつ信頼性の高い方法を提供します (例:ファイル名に同期することで) お問い合わせ
  • JSON ライン CSV ファイルが破損していた場合 (e.g. 行上のエラーのため無効) , EDDTableFromHttpGet は、エラー行の前と後のすべての行のすべてのデータをまだ読み込むことができます。 .insert と .delete システムは、データファイルに新しいデータを追加し続けることができます。
  • JSON ライン CSV ファイルが ASCII ファイルなので、ファイルが破損してしまった場合、修正が容易になります。 (テキストエディタで) お問い合わせ
  • JSONラインCSV対応 Unicode 文字列。
  • JSON ライン CSV は可変長文字列をサポートしています (いくつかの最大長さに限定されない) お問い合わせ
  • JSON ライン CSV は 64 ビット整数に対応 (ロング) お問い合わせ
  • JSON ライン CSV の正式な性質と追加の構文 (古い学校 CSV 対) 特定の行が破損していないという追加の保証を提供します。

まずは使ってみた.nc無制限の次元の3つのファイル。 しかし、問題がありました。

  • 主な問題は: 複数のスレッドに書き込むための信頼できる方法はありません.nc3つのファイル、スレッドが同期された方法で書き込みを行うことで協力している場合でも。
  • もし.nc3 ファイルが破損し、.insert と .delete システムがファイルを引き続き使用することはできません。
  • なので.ncファイルが破損した場合は3つのファイルがバイナリです。 (それらはマルチスレッドの問題のために行う) 難しく、修正できない。 修理に役立つツールはありません。
  • CFは文字列のエンコーディングを指定する方法がないため、Unicode、UTF-8エンコーディングをサポートする公式な方法はありません。 \_Encoding 属性をサポートするために CF を取得しようとしましたが、どの進捗もできませんでした。 (Unidata\_Encoding 属性をサポートしている。)
  • .nc固定長文字列のみをサポートする3つのファイル。 再び、CFを取得しようとしました。Unidata変数長文字列をサポートするためには、どの進捗もできなかった。
  • .nc3つのファイルは、文字列変数から単一の文字変数を区別する簡単な方法をサポートしません。 再び、CFを取得しようとしました。Unidataこれらの2つのデータタイプを区別するためのシステムをサポートするために、, しかし、任意の進捗をすることはできませんでした.
  • .nc3つのファイルは、指定されていないエンコーディングで8ビットの文字のみをサポートする。 再び、CFを取得しようとしました。Unidataエンコーディングを指定するためのシステムをサポートするためには、どんな進捗もできませんでした。
  • .nc3 ファイルは 64 ビット整数をサポートしていません (ロング) お問い合わせ 再び、CFを取得しようとしました。Unidata長いシステムをサポートするためには、進行をしませんでした。  
バージョン

EDDTable のため ログイン タイムスタンプと各変更の作者とデータセットのすべての変更のログを保存し、そのデータをいつでもすぐに再作成できます。 意味では、時間内に任意のポイントのためのバージョンがあります。 ユーザーのデータリクエストにタイムスタンプが含まれている場合<=制約、例えば、&timestamp<=2016-06-23T16:32:22.128Z (または任意の時間ポイント) 著者やコマンドの制約はありません。ERDDAP™最初に、その時点でデータセットのバージョンを生成することにより、リクエストに応答します。 それから、ERDDAP™ユーザーの他の制約を、データに対するその他の要求と同様に適用します。ERDDAPお問い合わせ EDDTableFromHttpGet は、非常に大きなデータセットでも、このプロセスが非常に高速かつ効率的なように設定されます。

同様に、データセットが...?timestamp&timestamp=maxを要求することによって更新されたとき、ユーザーは見つけることができます (タイムスタンプ) ログイン ()

また、データセットの任意のバージョンでは、ユーザーが変更したどの作者であるか、そしてそれらを作ったとき、データを要求するために、データを要求することができます。

このバージョン管理システムにより、再生科学誰が、いつでも、データセットのバージョンからいつでもデータをリクエストすることができます。 当社が知っている他のシステムでは、この細かなバージョンアップは不可能です。 基礎的なメカニズムは、余分記憶スペースを必要としないで非常に能率的であり、処理の頭上は偽りなくです。

誰もがこのタイプの細かいバージョン管理を必要としているわけではありませんが、大きなデータ管理組織のコンテキストでは、非常に有用です (例:OOI、地球キューブ、データワン、NOAANCEIの特長) データセットが複数の著者を持つことができる場所 (例:センサー、自動QCスクリプト、ヒューマンエディタ) お問い合わせ

\[歴史:このタイプのバージョンアップの必要性は、私が最初に来た (ログイン) 2008年にOOIについて読んだり議論したりするとき。 当時、OOIは、Gitに基づいてバージョンアップするための面倒で遅い、非効率的なシステムを持っていた。 Gitは、それがのために設計されたもののために素晴らしいです, しかし、これではありません. 2008年、OOIの議論で、データ管理のための広範な、効率的な代替対OIシステムを設計しました。ERDDAP™その後、このバージョン管理システムを含む。 当時、OOIはバージョン管理システムにコミットし、代替品に興味を持たなかった。 2016年は、この計画の他の側面は、その場に落ち、実装を開始しました。 ほかのプロジェクトで作業する中断が多かったので、2018年までは終了しませんでした。 今でも、データセットを頻繁に変更するために、いつでもデータのバージョンにそのような迅速かつ簡単にアクセスできる他の科学的データシステムには気づいていません。 シンプルなファイルシステムでは提供していません。 リレーショナルデータベースは使用しません。 Cassandraはそうしません。\]

HTTPS を置き、削除して下さい
  • 「HTTPS PUTとDELETEはどうですか?!」
    ハイパーテキスト転送プロトコル (スタッフ) ワールドワイドウェブの基本であり、ウェブページのURLが「始まる」という理由 http://" または " https://" お問い合わせ HTTPS は、追加のセキュリティレイヤーで HTTP です。 毎日、ブラウザ、スクリプト、コンピュータプログラムが数百億のHTTPを作る (ツイート) お問い合わせ リモートソースから情報を取得する要求. スタッフ (ツイート) その他にもライブラリ, かなりPUT (データをサーバーにプッシュする) と DELETE (サーバからDELETEデータへ) お問い合わせ はい、PUTとDELETEは、データを入力し、データを削除するための適切な方法です。 (ツイート) お問い合わせ GET は、HTTP で動作する全てのソフトウェアによってサポートされています。 (ツイート) お問い合わせ GETは、とても使いやすいです。 誰もがすでにGETで働く方法を知っているし、POSTを使用する方法を知っている (これは基本的にはGETと同じ方法で使用することができます) なので、EDDTableFromHttpGet は GET と POST で動作します。 少ない人 (コンピュータープログラマーも少ない) PUTとDELETEで働いた経験があります。 PUTとDELETEは、一般的にはコンピュータ言語でのみサポートされていますので、それらを使用するには、巧みなプログラムが必要です。 そのため、PUTとDELETEは通常、ツールが進化した方法を考えると、より面倒なアプローチです。  
HttpGet ノート
  • インフォメーション
    • なしdataVariabledataType=char があるかもしれません。 代わりに dataType=String を使用します。 dataType=char を実際に必要とすれば、Chris にメールを送ります。 noaaa.gov のジョン。  
お問い合わせ
  • 基本理念のCHORDSのおかげで。
    EDDTableFromHttpGetの基本的な考え方 (i.e.、使用HTTP GETリクエストにデータを追加する) UCARの (NCARの?) クラウドホスト型リアルタイムデータサービス (ログイン) プロジェクト リクエストのパラメータの形式 (繰り返される 名前=値 , &'s で区切る) Webページ上のHTMLフォームで使用されているのと同じ標準フォーマットです。 シンプルで華麗なアイデアであり、さらにはそれで完全にメッシュするのでERDDAPタブラデータを扱うための既存のシステムです。 アイデアは視力で明らかですが、私は (ログイン) 考えなかった。 EDDTableFromHttpの特長 基本的な考え方を使用して、それを実装する方法のアイデアと組み合わせて、システムを作るERDDAP™データのアップロード GET を使用してシステムにデータをプッシュする基本的な考え方以外に、EDDTableFromHttpGet の実装は、CHORDS と完全に独立しており、異なる機能を備えています (例:ログファイル、データのチャンク、異なるセキュリティシステム、CRUDサポート、再現可能なデータ) お問い合わせ CHORDSへの暴露は単なるウェビナーでした。 私たちは、システムを別の方法で実装したいと思ったことをすぐに知ったので、コードを見たり、プロジェクトについて読んだりしませんでした。 しかし、私たちは基本的な考え方のために彼らに感謝しています。 CHORDSへの完全な参照は Daniels, M. D., Kerkez, B., Chandrasekar, V., Graves, S., Stamps, D. S., Martin, C., Dye, M., Gooch, R., Bartos, M., Jones, J., Keiser, K. (2014年12月16日) お問い合わせ 地理科学のためのクラウドホスト型リアルタイムデータサービス (ログイン) ソフトウェア。 UCAR/NCAR -- 地球観測研究所。 https://doi.org/10.5065/d6v1236q
     

EDDTableFromの特長Hyraxファイル

EDDTableFromの特長Hyraxファイル (非推奨) 複数の変数を持つデータファイルを集約し、それぞれに1つ以上の共有寸法 (例えば、時間、高度 (または深さ) 、緯度、経度) , によって提供されるHyrax OPeNDAPサーバーお問い合わせ

  • このデータセットタイプは リリース お問い合わせ 新しく、より一般的なソリューションは、キャッシュ EDDTable の FromUrl オプション ファイルから (または variant) リモートファイルのローカルコピーを作成し、ローカルファイルからデータを配信します。 ザ・オブ・ザ・<cacheFromUrl> オプションは、任意のタイプの表形式のデータファイルで使用できます。 **
    何らかの理由で動作させることができない場合は、Chris にメールを送ってください。 noaaa.gov のジョン。 2020年前の苦情がない場合、このデータセットタイプが削除される場合があります。 **
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。
  • ほとんどの場合、各ファイルが一番左に複数の値を持つ (はじめて) 次元、例えば、時間。
  • ファイルが頻繁に (必要はない) 他の次元のための単一の価値があります (例えば、高度 (または深さ) 、緯度、経度) お問い合わせ
  • 追加の次元でキャラクター変数を持つファイル (例えばnCharacters) お問い合わせ
  • Hyraxサーバは URL の "/dods-bin/nph-dods/" または "/opendap/" によって識別できます。
  • このクラス画面は、Hyrax各ディレクトリ内のファイルのリストを持つWebページ。 このため、現在のフォーマットに非常に特異的です。Hyraxサイトマップ 私達は調節することを試みますERDDAP™将来のバージョンが将来のバージョンの場合の迅速な if/whenHyraxファイルがリストされている方法を変更します。
  • ザ・オブ・ザ・<fileDir> の設定は無視されます。 このクラスは、各リモートデータファイルのローカルコピーをダウンロードして作成するので、ERDDAP™ファイルを強制する 汚れて bigParentディレクトリ /コピー/ datasetID ....
  • お問い合わせ<sourceUrl> では、データセットのベースディレクトリの URL を使用します。Hyraxサーバ、例えば、 <sourceUrlツイート http://edac-dap.northerngulfinstitute.org/dods-bin/nph-dods/WCOS/nmsp/wcos/ </ / / /sourceUrlツイート (しかし、1ラインに置く) (ごめんなさい、サーバが利用できなくなったこと) お問い合わせ ザ・オブ・ザ・sourceUrlWebページは通常「OPeNDAPサーバーインデックス\[ディレクトリ名\]「トップ」
  • このクラスは常に各リモートデータファイルのローカルコピーをダウンロードして作成するので、このデータセットをラップしないでください。EDDTableコピーお問い合わせ
  • このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。
  • 1D,2D,3D,4Dの一例をご覧いただけます。EDDTableFromNcFiles (EDDTableFromNcFiles) は、お問い合わせ  

EDDTableFromInvalidCRAファイル

EDDTableFromInvalidCRAファイル データを集計するNetCDF (v3 または v4) .nc特定の、無効、CF DSG Contiguous Ragged Array の variant を使用するファイル (キュラ) ファイル。 しかし、ERDDAP™このファイルタイプをサポートし、使用し始めるべきでない無効なファイルタイプです。 現在、このファイルタイプを使用するグループが強く推奨されていますERDDAP™有効なCF DSG CRAファイルを生成し、これらのファイルを使用して停止します。

詳細: これらのファイルには、サンプル\_dimension 属性を持つ複数の row\_size 変数があります。 ファイルは複数のサンプルのために非CF標準ファイルです (ログイン) 寸法は、CF DSG仕様の一部ではない、この追加の規則と約束で、互いに解読し、関連づけられます。 「あなたは、与えられた例を関連付けることができます。 (temp\_obs 次元) 特定の深さ値で (z\_obs 次元、最も値の寸法) ですから: 温度行\_size (与えられたキャストのために) 対応する深さ row\_size に 0 または等しい (そのキャストのために) (それはルールです) お問い合わせ そのため、温度行\_size が 0 でなければ、そのキャストの n の温度値は、そのキャストの n 深さ値に直接関連します。 (それは約束です) お問い合わせ

これらのファイルに関する別の問題: プリンシパル\_Investigator row\_size 変数は、sample\_dimension 属性を持たないし、上記の規則に従わない。

このデータセットタイプのサンプルファイルが見つかります https://data.nodc.noaa.gov/thredds/catalog/ncei/wod/ \[2020年10月21日 このサーバは、もはや確実に利用可能ではありません\]お問い合わせ

このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

最初に GenerateDataset を生成します。 質問に答えた後、このタイプのデータセットは、サンプルファイルのncdumpのような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。  

EDDTableFromJsonlCSVファイル

EDDTableFromJsonlCSVファイル データを集計するジェイソン CSVファイルラインお問い合わせ このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

  • jsonlines.org が言うと、この形式は "CSV よりもむしろ" (そして、法的に、連邦の従業員として、私はそれらに同意したり、同意したりすることはできません - どのようにクレイジーはそれですか?) お問い合わせ CSVは、当初のスプレッドシートプログラムに関連していた歴史上の手荷物によって、正式に定義されず、妨げられることはありません。 JSON ライン CSV, 比較で, 完全に定義され、広く使用されている JSON 規格への接続から利点, その接続から恩恵を有効にします。JavaスクリプトとスクリプトJavaお問い合わせ 確かに、長い整数と文字列のUnicode文字のフルサポートがあり、他の特殊な文字を含む明確な方法があります。 (タブと改行) 文字列内で。

この形式は、特定のデータファイルの最後に追加の行を定期的に追加する必要があるデータセットのために特に優れています。 その理由と他のために (詳しくはこちら) ,EDDTableFromHttpGetの特長Json Lines CSV ファイルをデータストレージに使用します。

  • 入力ファイルはUTF-8エンコードされると仮定されます。 しかし、\u を与えられた ログイン 特別な文字をエンコーディングするためのフォーマット (例:\u20ac はユーロ文字のエンコーディングです。) \u を使用して、7ビットの ASCII 文字のみを含むように、ファイルを書くオプションがあります。 ログイン 上記のすべての文字をエンコードするには #127.  
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで最初に行うことは、サンプルファイルの ncdump のような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

  • 警告: いつERDDAP™JSON を読み込む 指定した行のエラーが見つかられば、CSV のデータファイルを行ないます。 (例えば、誤ったアイテム数) 警告メッセージ (「警告: 悪い行 (ツイート) データ "... 続いて行の悪い行のリストを持つ) お問い合わせlog.txt ファイルデータファイルの残りの部分を引き続き読み続けます。 そのため、定期的に見ることがあなたの責任です。 (スクリプトを書くか、) ログ内のメッセージ txt では、データファイル内の問題を解決できるようにします。ERDDAP™ユーザーがファイルの一部行が欠陥を持っているにもかかわらず、利用可能なすべての有効なデータを読み続けることができるように、このように設定されています。  

EDDTableFromMultidimNcファイル

EDDTableFromMultidimNcファイル データを集計するNetCDF (v3 または v4) .nc (または.ncミリリットル) 複数の変数を持つファイル、それぞれに1つ以上の共有された次元があります。 ファイルには、追加次元の有無にかかわらず、文字変数が含まれている場合があります。 (例えば、 ストリング14) お問い合わせ このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

  • ファイルが多次元 CF DSG の variant の場合、このデータセットのタイプを代わりに使用して下さいEDDTableFromNcCFファイルお問い合わせ  
  • からの新しい表形式のデータセットの場合.ncファイル、古いことを試みる前にこの選択を使用しますEDDTableFromNcFiles (EDDTableFromNcFiles) は、お問い合わせ このクラスのいくつかの利点は次のとおりです。
    • このクラスでは、さまざまなファイル構造からより多くの変数を読み込むことができます。 寸法を指定するとCSV (寸法名のコンマ区切りリスト) GenerateDatasetで Xml (または)<寸法CSV>でdatasets.xmlこれらのデータセットの1つのための情報ERDDAP™これらの寸法の一部または全部を使用するソースファイル内の変数とすべてのスカラー変数のみを読みます。 次元がグループの場合、そのfullName を、例えば " グループ名/寸法名 お問い合わせ
    • リクエストの制約に一致しない場合は、このクラスはファイルを素早く拒否することができます。 そのため、大規模なコレクションからのデータを読み込むことは、多くの場合、はるかに高速になります。
    • このクラスは真のchar変数を扱います (非String変数) お問い合わせ
    • このクラスは、作成者がNetcdf-javaの writeStrings を使用しなかったときに文字列変数をトリムできます。 (文字列の終端をマークするためにchar #0を付加する) お問い合わせ
    • このクラスは、特定の変数や寸法を欠く個々のファイルを扱う際に優れています。
    • このクラスでは、行のブロックを削除できます。CFシリーズ 分離されたサンプリングの幾何学 (DSGについて) 不完全な多次元配列ファイル
       
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで最初に行うことは、サンプルファイルの ncdump のような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

グループ -- 生成データセット Xml は「グループ」を尋ねます。 任意のグループを検索する "" を入力することができます。 詳しくはこちら グループ または " 一部グループ/一部サブグループ " 特定のグループを検索するか、"\[ログイン\]「rootグループだけを検索する」 「グループ」の文字列が<グループ>datasets.xmlデータセットの情報 (ですが、\[ログイン\]"" は "") お問い合わせ

寸法CSV -- GenerateDatasets Xml は "DimensionsCSV" 文字列を要求します。 これは、一連の次元のソース名のコンマ区切り値のリストです。 生成データセット Xml は、サンプルのデータ変数のみを読みます。.ncこれらの寸法の一部または全部を使用するファイル (他の次元無し) , ファイル内のスケーラ変数のすべて, これらのデータ変数からデータセットを作る. 次元がグループの場合、そのfullName を、例えば " グループ名/寸法名 お問い合わせ 何も指定しない場合 (空の文字列) , 生成データセット Xml は、最も次元の変数を探します。理論では、最も興味深いものになりますが、他のいくつかのグループのデータ変数からデータセットを作りたいと思う時もあります。 存在しない次元名を指定すれば (例:NO\_MATCH) ,ERDDAP™scalar 変数のすべてを見つけます。 "DimensionsCSV" 文字列は<寸法CSV>でdatasets.xmlデータセットのための情報。

御馳走次元として

無効なカテゴリがあります.ncファイル (CFルールに従わないため) 複数の次元があること (例えば, lat, lon, 時間) 1つの次元だけを使用していれば (例、時間) 例えば:

    dimensions:
time = UNLIMITED ; // (1437 currently)
depth = 10;
lat = 1437 ;
lon = 1437 ;
variables:
double time(time) ;
double lat(lat) ;
double lon(lon) ;
float temperature(time, depth) ;

EDDTableFromMultidimNcFiles には、これらのファイルに対処するための特別な機能があります。グローバル属性「treatDimensionsAs」をデータセットにグローバルに追加する場合addAttributes、言うことができますERDDAP™特定の次元を扱うため (例:latとlon) 別の次元だったら (例、時間) お問い合わせ "from" 寸法を指定して "to" 寸法を指定するコンマ区切りリストで、例えば lat, lon, 時間
それからERDDAP™ファイルがそのまま読み込まれます。

    dimensions:
time = UNLIMITED ; // (1437 currently)
depth = 10;
variables:
double time(time) ;
double lat(time) ;
double lon(time) ;
float temperature(time, depth) ;

もちろん、リストの各寸法の現在のサイズは同じでなければなりません。そうでなければ、ERDDAP™ファイルを「Bad File」として扱います。

これらのファイルは CF ルールに従わないため無効です。 でもERDDAP™CFベースのソフトウェアツールが正しく読み取れないため、このようなファイルを作成することを強くお勧めします。 既にそのようなファイルがある場合、可能な限り迅速に有効なファイルでそれらを置き換えることを強くお勧めします。

EDDTableFromNcFiles (EDDTableFromNcFiles) は、

EDDTableFromNcFiles (EDDTableFromNcFiles) は、 データを集計するNetCDF (v3 または v4) .nc (または.ncミリリットル) ファイルとファイルザラーファイル (バージョン 2.25 の) 複数の変数を使って、1つの共有された次元のそれぞれ (例えば、時間) 1つの共有次元以上 (例えば、時間、高度 (または深さ) 、緯度、経度) お問い合わせ ファイルが同じ寸法名でなければなりません。 特定のファイルには、各寸法の複数の値があり、異なるソースファイルでは値が異なる可能性があります。 追加の次元でキャラクター変数を持つファイル (例えば、 ストリング14) お問い合わせ このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

Zarrファイルには少し異なる動作があり、fileNameRegex または pathRegex のいずれかで "zarr" を含める必要があります。

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで最初に行うことは、サンプルファイルの ncdump のような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

寸法CSV -- GenerateDatasets Xml は "DimensionsCSV" 文字列を要求します。 これは、一連の次元のソース名のコンマ区切り値のリストです。 生成データセット Xml は、データ変数を内部で見つける.ncこれらの次元の一部または全部を使用するファイル、すべてのスカラー変数、およびそれらのデータ変数からデータセットを作る。 何も指定しない場合 (空の文字列) , 生成データセット Xml は、最も次元の変数を探します。理論では、最も興味深いものになりますが、他のいくつかのグループのデータ変数からデータセットを作りたいと思う時もあります。

  • 1D例: 1Dファイルが2D、3D、4D、...ファイルと若干異なります。
    • あなたはセットを持っているかもしれません.nc各ファイルが1か月分の1つのドリフトブイからデータの価値を持っているデータファイル。
    • 各ファイルが1つの次元、例えば、時間 (サイズ =\[詳しくはこちら\]) お問い合わせ
    • 各ファイルは、例えば、時間、経度、緯度、空気の温度、など、その寸法を使用する1つ以上の1D変数を持っています。
    • 各ファイルは2D文字変数を、例えば次元と持つかもしれません (時間、nCharacters) お問い合わせ  
  • 2D例:
    • あなたはセットを持っているかもしれません.nc各ファイルが1か月分の1つのドリフトブイからデータの価値を持っているデータファイル。
    • 各ファイルには2つの次元があります。例えば、時間 (サイズ =\[詳しくはこちら\]) と id (サイズ = 1) お問い合わせ
    • 各ファイルは、次元と同じ名前の2つの1D変数を持ち、例えば、時間 (タイムタイム) , id (ログイン) お問い合わせ これらの1D変数はリストに含まれているべきです<dataVariable>'s は、データセットの XML にあります。
    • 各ファイルは、例えば、経度、緯度、空気温度、水温、水温などの1つ以上の2D変数を持っています...
    • 各ファイルには3D文字変数(例:寸法)があります。 (時間、id、nCharacters) お問い合わせ  
  • 3D例:
    • あなたはセットを持っているかもしれません.nc各ファイルが1か月分の1つの文房具からデータの価値があるデータファイル。
    • 各ファイルは3次元、例えば時間を持っています (サイズ =\[詳しくはこちら\]) , レイト (サイズ = 1) , と lon (サイズ = 1) お問い合わせ
    • 各ファイルは、次元と同じ名前の3つの1D変数を持ち、例えば、時間 (タイムタイム) , レイト (ログイン) , ロン (ログイン) お問い合わせ これらの1D変数はリストに含まれているべきです<dataVariable>'s は、データセットの XML にあります。
    • 各ファイルは、例えば、空気温度、水温、...
    • 各ファイルには、4D 文字変数(例: 寸法) があります。 (時間,lat,lon,nCharacters) お問い合わせ
    • ファイル名は、ファイル名内の buoy の名前が含まれている場合があります。  
  • 4D例:
    • あなたはセットを持っているかもしれません.nc各ファイルが1つのステーションから1か月分のデータを持つデータファイル。 毎回、各駅は一連の深さで読書をします。
    • 各ファイルは4次元、例えば時間を持っています (サイズ =\[詳しくはこちら\]) , 深さ (サイズ =\[詳しくはこちら\]) , レイト (サイズ = 1) , と lon (サイズ = 1) お問い合わせ
    • 各ファイルは、次元と同じ名前の4つの1D変数を持ち、例えば、時間 (タイムタイム) , 深さ (深さ:) , レイト (ログイン) , ロン (ログイン) お問い合わせ これらの1D変数はリストに含まれているべきです<dataVariable>'s は、データセットの XML にあります。
    • 各ファイルは、例えば、空気温度、水温、...
    • 各ファイルは5D文字変数を、例えば次元と持つかもしれません (時間、深さ、lat、lon、nCharacters) お問い合わせ
    • ファイル名は、ファイル名内の buoy の名前が含まれている場合があります。  

EDDTableFromNcCFファイル

EDDTableFromNcCFファイル データを集計してデータを集計NetCDF (v3 または v4) .nc (または.ncミリリットル) 指定したファイル形式の1つを使用するファイルCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) コンベンション このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

多次元CF DSGの変形の1つを使用してファイルのために、使用して下さいEDDTableFromMultidimNcファイル代わりに。

CF DSG 条約は、何十ものファイル形式を定義し、多数のマイナーなバリエーションが含まれています。 このクラスは、我々が認識しているすべてのバリエーションを扱いますが、我々は1を見逃しているかもしれません (以上) お問い合わせ そのため、CF DSGファイルからデータを読み込むことができない場合は、追加のサポートお問い合わせ

強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。  

EDDTableFromNccsvファイル

EDDTableFromNccsvファイル データを集計するNCCSVの特長ASCII .csv ファイル。 このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。

質問に答えた後、GenerateDatasetsXml がこのタイプのデータセットで最初に行うことは、サンプルファイルの ncdump のような構造を印刷します。 そのため、GenerateDatasets で最初のループに対して、いくつかのgoofy 回答を入力すると Xmlは、少なくともあなたは、あなたが見ることができるかどうかERDDAP™ファイルが読み込まれ、どの寸法と変数がファイルにあるかを見ることができます。 それから、GenerateDatasetsXml を通して 2 番目のループに対してより良い答えを与えることができます。

  • 警告: いつERDDAP™NCCSVデータファイルを読み込みます。特定の行のエラーが見つかられば (例えば、誤ったアイテム数) 警告メッセージ (「警告: 悪い行 (ツイート) データ "... 続いて行の悪い行のリストを持つ) お問い合わせlog.txt ファイルデータファイルの残りの部分を引き続き読み続けます。 そのため、定期的に見ることがあなたの責任です。 (スクリプトを書くか、) ログ内のメッセージ txt では、データファイル内の問題を解決できるようにします。ERDDAP™ユーザーがファイルの一部行が欠陥を持っているにもかかわらず、利用可能なすべての有効なデータを読み続けることができるように、このように設定されています。  

EDDTableFromNOSの特長

EDDTableFromNOSの特長 (リリース) データを扱うNOAA ノーズソース, 使用するSOAP+XMLリクエストと応答のため。 それは非常に具体的ですNOAANOSのXML。 datasets2.xml の EDDTableFromNOS のデータセットを参照してください。  

EDDTableFromOBIS(EDDTableFromOBIS)の特長

EDDTableFromOBIS(EDDTableFromOBIS)の特長 海洋生物地理情報システムからデータを処理 (スタッフ) サーバー (あった http://www.iobis.org ) お問い合わせ 現在、OBISサーバーシステムが最新型になっている、よりアクティブなサーバーがインストールされていない可能性もあります。

  • OBISサーバーはXMLリクエストを想定し、XMLレスポンスを返します。
  • すべてのOBISサーバーが同じ変数を同じように提供するので (あった http://iobis.org/tech/provider/questions ) OBIS のデータセットをセットアップする量を指定する必要はありません。ERDDAPお問い合わせ
  • "" を含める必要があります。creator\_email" グローバルな属性addAttributes、その情報はライセンス内で使用されます。 sourceURL から XML レスポンスを読み込み、適切なメールアドレスが見つかります。
  • グローバルな属性を取得することができないか [<subsetVariables>> (#サブセット変数) 与えられたOBISサーバで動作する。 試してみると、1つの変数を試すだけです (たとえば、ScientificName や Genus) お問い合わせ

EDDTableFromOBIS(EDDTableFromOBIS)の特長 スケルトンXML

  <dataset type="EDDTableFromOBIS" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <sourceCode>...</sourceCode>
        <!-- If you read the XML response from the sourceUrl, the
        source code (for example, GHMP) is the value from one of the
        <resource><code> tags. -->
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <-- All ...SourceMinimum and Maximum tags are OPTIONAL -->
      <longitudeSourceMinimum>...</longitudeSourceMinimum>
      <longitudeSourceMaximum>...</longitudeSourceMaximum>
      <latitudeSourceMinimum>...</latitudeSourceMinimum>
      <latitudeSourceMaximum>...</latitudeSourceMaximum>
      <altitudeSourceMinimum>...</altitudeSourceMinimum>
      <altitudeSourceMaximum>...</altitudeSourceMaximum>
      <-- For timeSource... tags, use yyyy-MM-dd'T'HH:mm:ssZ format. -->
      <timeSourceMinimum>...</timeSourceMinimum>
      <timeSourceMaximum>...</timeSourceMaximum>
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
        <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1. This MUST include
        "creator\_email" -->
  </dataset>

EDDTableParquetFilesから

EDDTableParquetFilesから データを扱うパーケットお問い合わせ このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。

  • パーケットは非常に効率的に圧縮するように設計されているので、他のフォーマットよりも小さいファイルサイズを与えることができます。
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。
  • 警告: いつERDDAP™特定の行のエラーが見つかられば、パーケットのデータファイルを読み込みます。 (例えば、誤ったアイテム数) 警告メッセージ (「警告: 悪い行 (ツイート) データ "... 続いて行の悪い行のリストを持つ) お問い合わせlog.txt ファイルデータファイルの残りの部分を引き続き読み続けます。 そのため、定期的に見ることがあなたの責任です。 (スクリプトを書くか、) ログ内のメッセージ txt では、データファイル内の問題を解決できるようにします。ERDDAP™ユーザーがファイルの一部行が欠陥を持っているにもかかわらず、利用可能なすべての有効なデータを読み続けることができるように、このように設定されています。  

EDDTableFromの特長SOS

EDDTableFromの特長SOS センサー観測サービスからデータを処理 (ツイートSOS) サーバ。

  • このデータセット型は、1つのステーションからデータを集約します。SOSサーバ。
  • すべてのステーションは、変数の同じセットに役立ちます (各ステーションのソースがすべての変数を提供する必要はありませんが、) お問い合わせ
  • SOSサーバはXMLリクエストを想定し、XMLレスポンスを返します。
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。 データセットXMLを生成するのは簡単ではありませんSOS手でデータセット。 必要な情報を見つけるには、sourceUrlお問い合わせ サービス=SOSリクエストGetCapabilities" ブラウザで、XML を見て、GetObservation リクエストを手で作成します。XML 応答をリクエストに見てみましょう。
  • 新しいタイプの時折追加でSOSサーバと古いサーバーへの変更、それは難しくなっていますERDDAP™サーバの応答からサーバータイプを自動的に検出します。 利用目的<sosServerType> (IOOS\_NDBC, IOOS\_NOS, IOOS\_NOS,OOSTethys, または WHOI) 今、強くお勧め. このタイプのデータセットに問題がある場合は、GenerateDatasetを再実行してみてください。 Xml 用SOSサーバ。 生成する データセット Xml は別のことを試みることを可能にします<sosServerType> オプションは、指定したサーバーの正しいものを見つけるまでです。
  • SOS概要:
    • スウィー (センサーウェブの有効化) そして、SOS (センサー観測サービス) お問い合わせOpenGIS®規格お問い合わせ 当ウェブサイトでは、標準文書が記載されています。

    • ザ・オブ・ザ・OGCウェブサービス 共通仕様 ver 1.1.0 (OGC06-121r3) GETとPOSTクエリの構築をカバー (セクション 7.2.3 とセクション 9 を参照してください。) お問い合わせ

    • getCapabilities xml リクエストを渡すと、SOSサーバー (sourceUrl+「?service=」SOSリクエストGetCapabilitiesツイート) , あなたは、ステーションと観察されたリストとxml結果を取得します 彼らがデータを持っているプロパティ。

    • validateProperty は、プロパティへの正式な URI リファレンスです。 例えば、urn:ogc:phenomenon:longitude:wgs84 または https://mmisw.org/ont/cf/parameter/sea\\_water\\_temperature

    • validateProperty は変数ではありません。

    • 1つの変数以上が同じ観察されるかもしれません プロパティ (例えば、内部Temp と外側 温度は両方が観察されるかもしれない プロパティ https://mmisw.org/ont/cf/parameter/air\\_temperature ) お問い合わせ

    • getObservation xml リクエストをリクエストに送信する場合SOS応答、フィールド単位、データ内のフィールド名の説明で xml 結果を取得します。 フィールド名には、経度、緯度、深さが含まれます (おそらく) 、および時間。

    • 詳しくはこちらdataVariableEDDTableFrom についてSOS"observedProperty" 属性を含める必要があります。この属性は、サーバーから要求されるべき enabledProperty を識別し、その変数を取得する必要があります。 多くの場合、いくつかdataVariables は、同じコンポジットが観察されたプロパティをリストします。

    • 各々のデータタイプdataVariableサーバが指定しない場合があります。 もしそうなら、サーバーからXMLデータ応答を調べて、適切な割り当てをしなければなりません[[]<データタイプ>s (#データ型) お問い合わせERDDAP™データセットdataVariable定義。

    • (これを書く時) 詳しくはこちらSOSgetObservation リクエストを 1 つ以上監視するサーバ プロパティは、観察されたプロパティの最初の結果を返します。 (エラーメッセージはありません!) コンストラクタのリクエストを参照してください。 観察された専門性別に。

  • EDDTableFromの特長SOS自動的に追加します

    station\_id, longitude, latitude
    データセットが作成されると、データセットのグローバル属性に。

  • SOSサーバは通常エクスプレスユニットお問い合わせカリキュラムシステム。 最近の投稿ERDDAP™サーバは単位をと表現しますUDUNITSシステム。 2つのシステム間で変換する必要がある場合は、ERDDAPUCUMユニットを変換するWebサービスUDUNITSお問い合わせ

EDDTableFromの特長SOSスケルトンXML

  <dataset type="EDDTableFromSOS" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <sosServerType>...</sosServerType> <!-- 0 or 1, but STRONGLY
        RECOMMENDED. This lets you specify the type of SOS server
        (so ERDDAP™ doesn't have to figure it out).
        Valid values are: IOOS\_NDBC, IOOS\_NOS, OOSTethys, and WHOI. -->
      <responseFormat>...</responseFormat> <!-- 0 or 1. Use this only if
        you need to override the default responseFormat for the
        specified sosServerType. -->
      <stationIdSourceName>...</stationIdSourceName> <!-- 0 or 1.
        Default="station\_id". -->
      <longitudeSourceName>...</longitudeSourceName>
      <latitudeSourceName>...</latitudeSourceName>
      <altitudeSourceName>...</altitudeSourceName>
      <altitudeSourceMinimum>...</altitudeSourceMinimum> <!-- 0 or 1 -->
      <altitudeSourceMaximum>...</altitudeSourceMaximum> <!-- 0 or 1 -->
      <altitudeMetersPerSourceUnit>...</altitudeMetersPerSourceUnit>
      <timeSourceName>...</timeSourceName>
      <timeSourceFormat>...</timeSourceFormat>
        <!-- timeSourceFormat MUST be either
        \* For numeric data: a UDUnits\-compatible string (with the format
          "units since baseTime") describing how to interpret
          source time values (for example,
          "seconds since 1970-01-01T00:00:00Z"), where the
          base time is an ISO 8601:2004(E) formatted date time
          string (yyyy-MM-dd'T'HH:mm:ssZ).
        \* For String date time data: specify
          units suitable for string times
          describing how to interpret string times (for example, the
          ISO8601TZ\_FORMAT "yyyy-MM-dd'T'HH:mm:ssZ"). -->
      <observationOfferingIdRegex>...</observationOfferingIdRegex>
        <!-- Only observationOfferings with IDs (usually the station names)
        which match this regular expression (tutorial) will be included
        in the dataset (".+" will catch all station names). -->
      <requestObservedPropertiesSeparately>true|false(default)
        </requestObservedPropertiesSeparately>
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more.
        \* Each dataVariable MUST include the dataType tag.
        \* Each dataVariable MUST include the observedProperty attribute.
        \* For IOOS SOS servers, \every\ variable returned in the text/csv
          response MUST be included in this ERDDAP™ dataset definition. -->
  </dataset>

EDDTableFromThreddsファイル

EDDTableFromThreddsファイル (非推奨) 複数の変数を持つデータファイルを集約し、それぞれに1つ以上の共有寸法 (例えば、時間、高度 (または深さ) 、緯度、経度) , によって提供されるパスワードOPeNDAPサーバーお問い合わせ

  • このデータセットタイプは リリース お問い合わせ 新しく、より一般的なソリューションは、キャッシュ EDDTable の FromUrl オプション ファイルから (または variant) リモートファイルのローカルコピーを作成し、ローカルファイルからデータを配信します。 ザ・オブ・ザ・<cacheFromUrl> オプションは、ディレクトリのようなファイルのリストを公開する任意のWebベースのソースから任意のタイプの表形式のデータファイルで使用できます。 **
    何らかの理由で動作させることができない場合は、Chris にメールを送ってください。 noaaa.gov のジョン。 2020年前の苦情がない場合、このデータセットタイプが削除される場合があります。 **
  • 強くお勧めします。生成データセット Xmlプログラムラフドラフトを作るためにdatasets.xmlこのデータセットのチャンク。 その後、それを微調整するためにそれを編集することができます。
  • ほとんどの場合、各ファイルが一番左に複数の値を持つ (はじめて) 次元、例えば、時間。
  • ファイルが頻繁に (必要はない) 他の次元のための単一の価値があります (例えば、高度 (または深さ) 、緯度、経度) お問い合わせ
  • 追加の次元でキャラクター変数を持つファイル (例えばnCharacters) お問い合わせ
  • URL内の「/thredds/」でTHREDDSサーバーを識別できます。 例えば、
    https://www.ncei.noaa.gov/thredds/catalog/uv/6h\\_strs\\_agg/catalog.html
  • THREDDSサーバーには様々な場所でカタログがあります。 このクラス URL に "/thredds/catalog/" が含まれていることを要求します。 通常、ルートカタログのブラウザで起動して、目的のサブcatalogにクリックすることで、この変数を見つけることができます。
  • このクラスでは、THREDDS が提供している Catalog.xml ファイルをリストで読み込みます。<カタログ参照> (追加の Catalog.xml サブファイルへの参照) そして、<データセット>s (データファイル) お問い合わせ
  • ザ・オブ・ザ・<fileDir> の設定は無視されます。 このクラスは、各リモートデータファイルのローカルコピーをダウンロードして作成するので、ERDDAP™ファイルを強制する 汚れて bigParentディレクトリ /コピー/ datasetID ....
  • お問い合わせ<sourceUrl>、例えば、THREDDSサーバーのデータセットに、カタログ.xmlファイルのURLを使用します。このURLは、Webブラウザで使用できるものです。 https://data.nodc.noaa.gov/thredds/catalog/nmsp/wcos/catalog.html \[2020年10月21日 このサーバは、もはや確実に利用可能ではありません。\], 使用方法<sourceUrlツイート https://data.nodc.noaa.gov/thredds/catalog/nmsp/wcos/catalog.xml </ / / /sourceUrlツイート (しかし、1ラインに置く) お問い合わせ
  • このクラスは常に各リモートデータファイルのローカルコピーをダウンロードして作成するので、このデータセットをラップしないでください。EDDTableコピーお問い合わせ
  • このデータセットのタイプはOPTIONAL、まれに使用される、特別な札を支えます、<スペシャルモード> モード </specialMode> は、サーバーからどのファイルがダウンロードされるべきかを判断するために、特別なハードコードされたルールを使用するように指定することができます。 現在、有効期間のみ モード からデータセットで使われるSAMOS https://tds.coaps.fsu.edu/thredds/catalog/samos 最後のバージョン番号でファイルのみをダウンロードします。
  • このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、、このクラスがどのように機能するか、どのように使うかについての情報。
  • 1D,2D,3D,4Dの一例をご覧いただけます。EDDTableFromNcFiles (EDDTableFromNcFiles) は、お問い合わせ  

EDDTableFromの特長WFSファイル

EDDTableFromの特長WFSファイル (リリース) すべてのデータをローカルにコピーするArcGIS地図サーバWFSサーバはデータがすぐに保存できるようにERDDAP™ユーザー。

  • 特定のフォーマットを指定する必要がありますsourceUrlグローバルな属性は、ERDDAP™サーバから機能をリクエストする方法 この例をテンプレートとして使用してください。
    <att name="sourceUrl">http://*someUrl/dir1/dir2*/MapServer/WFSServer?request=GetFeature&amp;service=WFS&amp;typename=aasg:BoreholeTemperature&amp;format=&quot;text/xml;%20subType=gml/3.1.1/profiles/gmlsf/1.0.0/0"</att>  

(しかし、すべての行を1行に置く)

  • 特別なグローバル属性を追加するには、ERDDAP™ダウンロードすべきデータのチャンクの名前を識別する方法。 これは、おそらくすべてのEDDTableFromのために動作しますWFSファイルデータセット:
    <att name="rowElementXPath">/wfs:FeatureCollection/gml:featureMember</att>
  • このクラスは常に各リモートデータファイルのローカルコピーをダウンロードして作成するので、このデータセットをラップしないでください。EDDTableコピーお問い合わせ
  • このクラスのスーパークラスを参照してください。EDDTableFromFiles (EDDTableFromFiles) は、このクラスがどのように機能するか、どのように使うかに関する追加情報。  

EDDTableアグレゲートロー

EDDTableアグレゲートロー 「子」EDDTableデータセットのグループからEDDTableデータセットを作ることができます。

  • ここでは、EDDTableAggregateRows のいくつかの用途があります。
    • EDDTableAggregateRows は、2 つの異なる種類のファイルやデータソースからデータセットを作成できます。例えば、データセットは、過去 1 か月間保存されるデータセットです。.ncCFファイルとリレーショナルデータベースに保存された現在の月のデータセット。
    • EDDTableAggregateRows データをソースファイルの変更に対処することができます (例えば、時刻の形式が変更されるか、変数名が変更されるか、またはデータ タイプ/scale\_factor/ / / /add\_offset変更する) お問い合わせ この場合、変更前に作られたファイルから1人の子供がデータを取得し、変更後に作られたファイルから他の子供がデータを取得します。 EDDTableAggregateRowsのこの使用は、使用するための代替手段ですログインまたはNCOお問い合わせ ファイル名に区別機能がない場合(そのため、使用できる)<fileNameRegex> は、どのファイルがどの子データセットに属しているかを判断するために、異なるディレクトリに2つの子データセットのファイルを保存する必要があります。
    • EDDTableAggregateRows のデータセットを 1 つ以上の同様のデータセットの共有サブセットを持つことができます。例えば、プロファイルデータセット、TimeSeriesProfile のデータセット、TrajectoryProfile データセットの組み合わせからプロファイルデータセットを作成するデータセットなどです。 (いくつかの異なる変数と、一般的な変数があります -- この場合、子のデータセットの特別なバリアントを作る必要があります。) お問い合わせ
    • 複数のスタンドアローンのデータセット、それぞれ同じタイプのデータが異なる場所からあります。 これらのデータセットをそのまま残すことができますが、すべてのステーションからデータを持つEDDTableAggregateRowsデータセットも作成できます。各子のデータセットはシンプルなものになります。EDDTableFromErddapの特長既存のステーションデータセットの1つにポイントする。 これを行うと、EDDTableFromErddap のそれぞれに異なるデータセットを与えるdatasetIDオリジナルのスタンドアローンのデータセットよりも、例えば「子供」を元のものに付け加えることによってdatasetIDお問い合わせ
  • お子様のそれぞれ<dataset> の指定は、スタンドアローンのデータセットであったため、完全なデータセットでなければなりません。 それぞれ同じを持っている必要がありますdataVariableツイート、同じ順序で、同じとdestinationNameツイート,データデータ タイプ,missing\_valueツイート,\_料金ユニットお問い合わせ EDDTableAggregateRows のデータセットのそれぞれの変数のメタデータは、最初の子のデータセットの変数から来ますが、EDDTableAggregateRows は更新しますactual\_rangeすべての子供のための実際の範囲であるメタデータ。
  • 推薦: スタンドアローンのデータセットとして機能する子データセットのそれぞれを取得します。 次に、EDDTableAggregateRows データセットを切断し、貼り付けるdatasets.xml新しいEDDTableAggregateにそれぞれのためのチャンク 列のデータセット。
  • データセット デフォルト ソート順 -- 子データセットの順序は、結果の全体的なデフォルトソート順を決定します。 もちろん、ユーザーは、追加して結果のセットのために異なるソート注文を要求することができます &orderBy (ツイート 変数のコンマ区切りリスト ツイート) クエリの最後に。
  • 「ソース」グローバル アトリビュートEDDTableAggregateRows は、最初の子のデータセットから結合された globalAttributes です。 EDDTableアグレゲート 行はグローバルに<addAttributes> 追加のグローバル属性を提供したり、ソースのグローバル属性をオーバーライドしたりします。

EDDTableアグリゲート 列スケルトンXML

  <dataset type="EDDTableAggregateRows" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <dataset>...</dataset> <!-- 1 or more -->
  </dataset>

EDDTableコピー

EDDTableコピー EDDTable のデータセットのローカルコピーを作成し、ローカルコピーからデータをすぐに保存することができます。

  • EDDTableコピー (そして格子データのため、EDDGridコピー) 非常に使いやすく、非常に効果的です リモートデータソースからデータを処理する最大の問題の解決:
    • リモートデータソースからのデータへのアクセスを遅くすることができます。
      • 彼らが本質的に遅いので、彼らは遅くなる可能性があります (例えば、サーバの非効率的なタイプ) ,
      • あまりにも多くの要求に圧倒されるので、
      • またはサーバーまたはリモートサーバーが帯域幅制限されているため。
    • リモート・データセットは時々利用できません (様々な理由で) お問い合わせ
    • データを1つのソースに頼ることは、うまくスケールしない (たとえば、多くのユーザーと多くERDDAPsはそれを利用します) お問い合わせ  
  • EDDTableCopyは、データのローカルコピーを自動的に作成し、ローカルコピーからデータを処理することで、これらの問題を解決します。ERDDAP™ローカルコピーからデータを非常に迅速に配信できます。 ローカルコピーの作成と使用により、リモートサーバへの負担が軽減されます。 ローカルコピーは元のバックアップであり、元の何かが起こる場合に便利です。

データセットのローカルコピーを作成することに関する新しいものはありません。 ここが新しいのは、このクラスがそれを作ることです\*簡単操作\*作成し、\*メンテナンス\*ローカルデータのコピー\*ジャンル\*リモートデータソースの種類と\*メタデータを追加\*データのコピー中に。

EDDTableCopy 対<キャッシュFromUrl>

<cacheFromUrl> は EDDTableCopy の代替手段です。 彼らは異なる動作.

  • EDDTableの特長 リモートサービスからデータのチャンクをリクエストし、ローカルファイル内のチャンクを保存することで、作品をコピーします。 そのため、EDDTableCopy はリモートサービスでデータがアクセスできるケースで便利です。
  • ツイート<キャッシュFromUrl> (パスワード) リモートウェブサイトにリストされている既存のファイルをダウンロードします。<cacheFromUrl> は、新しいリモートデータファイルがある場合やリモートデータファイルが変更されたときに簡単に伝えることができるため、使いやすく、より信頼性が高いです。

EDDTableCopy や<cacheFromUrl> を使うと、<cacheFromUrl> それはより容易で、より信頼できるので。  

<抽出物Destination 名前>

EDDTableの特長 コピーは、リモートデータセットからデータのチャンクを要求することにより、データのローカルコピーを作成します。 EDDTableの特長 コピーは、&distinct を要求することによって、チャンクがどのチャンクを要求するかを決定します () 値の<ExtractDestinationNames> (で指定されたdatasets.xml以下を参照してください。) リモートデータセット内の変数のスペース分離された宛先名である。 例えば、

    <extractDestinationNames>drifter profile</extractDestinationNames>  

ドリフトer=tig17、profile=1017、ドリフトer=tig17、profile=1095、...ドリフトer=une12、profile=1223、ドリフトer=une12、profile=1251、...

1列の状況 (例えば、プロフィール) データの行のグループを一意に識別する必要があるのは、例えば、プロファイルなど、非常に多数のデータがある場合、追加の抽出物を指定するのに便利です。 目的地 お名前 (必須) (例えば、漂流器) プロファイルを分割するのに役立ちます。 これにより、特定のディレクトリ内のデータファイルが少ないため、アクセス速度が速くなります。

ローカルファイル

データの各チャンクは別々に保存されますNetCDFサブディレクトリ内のファイル bigParentディレクトリ /コピー/ datasetID / / / / (で指定されるセットアップ。xml) お問い合わせ サブディレクトリレベルは1つありますが、最後のextractDestinationNameです。 例えば、tig17+1017 のデータが格納されます。 bigParentディレクトリ /copy/sampleデータセット/tig17/1017.ncお問い合わせ 例えば、une12+1251 のデータが保存されます。 bigParentディレクトリ /copy/sampleデータセット/une12/1251.ncお問い合わせ データ値から生成されたディレクトリとファイル名が変更され、ファイル名の安全性が向上 (例えば「x20」にスペースを置換します。) -- これは実際のデータに影響を与えません。  

新しいデータ

各時間EDDTable コピーはリロードされ、リモートデータセットで、どの異なるチャンクが利用できるかを確認します。 データのチャンクのファイルが既に存在していない場合、チャンクを取得するリクエストはキューに追加されます。ERDDAP's TaskThread は、データのチャンクに対するキュードリクエストを 1 つずつ処理します。 タスクThread のアクティビティの統計情報を見ることができます。ステータスページそして、デイリーレポートお問い合わせ (はい、ERDDAP™複数のタスクをこのプロセスに割り当てることができますが、リモートデータソースの帯域幅、メモリ、CPU時間、ローカルの多くを使用することができますERDDAP's の帯域幅、メモリ、 CPU 時間、どちらも良い考えです。)

Note: EDDTableCopy がロードされるのは初めてです。 (すべてがうまく行く場合) データのチャンクに対する多くのリクエストは、taskThread のキューに追加されますが、ローカルのデータファイルが作成されていません。 そのため、コンストラクタは失敗しますが、taskThread は引き続きローカルファイルを実行して作成します。 すべてがうまくいくと、taskThread はローカルのデータファイルと次の試みをリロードします。 (~15分) 成功するが、当初はデータ量が限られている。

Note: ローカルデータセットにデータが含まれている後、データが表示されるERDDAPリモートデータセットが一時的にまたは永続的にアクセスできない場合は、ローカルデータセットはまだ機能します。

警告:リモート・データセットが大きい場合および/またはリモート・サーバーは遅いです (問題ではありませんか?) 完全なローカルコピーを作るのに長い時間かかります。 場合によっては、必要な時間は容認できません。 たとえば、T1 行上の 1 TB のデータを伝送する (0.15 GB/s) 最適な条件下で60日以上かかります。 また、リモートやローカルコンピューターの帯域幅、メモリ、CPU 時間を多く使用しています。 ソリューションは、s/he がデータセットのコピーを作成し、ハードドライブをあなたに郵送できるように、リモートデータの管理者にハードドライブをメールすることです。 そのデータは、開始点とEDDTableCopy として使用して、データを追加します。 (つまり、AmazonのEC2クラウドサービスが問題を処理するのに使われています。システムには帯域幅が多々あります。)

警告: 指定した値の組み合わせがリモートデータセットから消えた場合、EDDTableCopy はローカルのコピーファイルを削除します。 必要に応じて、自分で削除することができます。

テーブルコピー<checkSourceData&gt のチェック

ザ・オブ・ザ・datasets.xmlこのデータセットにはオプションのタグを持つことができます

    <checkSourceData>true</checkSourceData>  

デフォルト値は true です。 false に設定すると、データセットがソースデータセットをチェックして、追加データが利用可能なかどうかを確認します。  

  1. 作成する<データセット> エントリーフォーム (ネイティブタイプ、EDDTableCopy ではなく) リモートデータソースのため。 必要なすべてのメタデータを含む、正しく機能します。
  2. 余りに遅い場合は、XML コードを EDDTableCopy データセットにラップします。
    • 別の使用datasetID (おそらく変更によってdatasetID古いものdatasetIDわずか) お問い合わせ
    • コピーする<アクセス お問い合わせ<reloadEveryNMinutes> と<onChange> リモート EDDTable の XML から EDDTableCopy の XML へ。 (EDDTableCopy の数値。内部データセットの値は、関連性が向上します。)
    • 作成する<ExtractDestinationNames> タグ (詳しくはこちら) お問い合わせ
    • <orderExtractBy> は、リモートデータセット内の宛先変数名の OPTIONAL 空間区切りリストです。 リモートサーバからデータの各チャンクがダウンロードされると、チャンクはこれらの変数によってソートされます。 (最初の変数で、最初の変数がtiedなら2番目の変数で...) お問い合わせ 場合によっては、ERDDAP™リストの最初の変数が数値変数である場合、ローカルデータファイルからデータをより速く抽出することができます ("time"数値変数としてカウント) お問い合わせ しかし、データセットに適した方法でこれらの変数を選択します。
  3. ERDDAP™データのローカルコピーを作成し、維持します。  
  • 警告: EDDTableCopy は、各チャンクのデータ値が変更されていないと仮定します。 もし/when なら、chunk ファイルを手動で削除する必要があります。 bigParentディレクトリ /コピー/ datasetID / 変更・変更ログイン削除されたチャンクが置換されるようにリロードされるデータセット。 データセットに電子メールサブスクリプションがある場合、データセットが最初にデータをリロードし、データをコピーし始めると、データセットが再びロードしたときに2つのメールが届きます。 (自動的に) 新しいローカルデータファイルを検出します。  
  • メタデータの変更 お問い合わせ 変更が必要な場合addAttributesまたはソースのデータセットに関連付けられた変数の順序を変更します。
    1. 変更するaddAttributesソースデータセットのdatasets.xml必要に応じて。
    2. コピーしたファイルの1つを削除します。
    3. 設定するログインデータセットをすぐにリロードします。 フラグを使うと、データセットに電子メールのサブスクリプションがある場合、データセットが最初にデータをリロードし、データをコピーし始めると、データセットが再び読み込まれるときの2つのメールが届きます。 (自動的に) 新しいローカルデータファイルを検出します。
    4. 削除されたファイルは新しいメタデータで再生されます。 ソースデータセットが利用できなくなった場合、 EDDTableCopy のデータは、最も若いファイルであるため、再生されたファイルからメタデータを取得します。  
  • EDDGridコピーEDDTableCopy と非常に似ていますが、グリッド化されたデータセットで動作します。

EDDTableCopy スケルトンXML

  <dataset type="EDDTableCopy" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
      <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
      <addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
      <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
      <iso19115File>...</iso19115File> <!-- 0 or 1 -->
      <onChange>...</onChange> <!-- 0 or more -->
      <extractDestinationNames>...</extractDestinationNames> <!-- 1 -->
      <orderExtractBy>...</orderExtractBy> <!-- 0 or 1 -->
      <fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or false
        (the default)) -->
      <checkSourceData>...</checkSourceData> <!-- 0 or 1 -->
      <dataset>...</dataset> <!-- 1 -->
  </dataset>


インフォメーション

一般的なタグと属性の詳細な説明は次のとおりです。

<angularDegreeUnits> リリース

  • ツイート ** <angularDegreeUnits の仕様 ** . . (#angularユニット) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlこれは、単位文字列のコンマ区切りリストを含むERDDAP™角度単位として扱うべきです。 変数がこれらの単位の1つを持っている場合、tabledapお問い合わせorderByMeanフィルターは特別な方法で平均を計算し、-180 から 180 までの値として平均を報告します。 お問い合わせERDDAP現在のデフォルトリストの 's EDStatic.java ソースコードファイルです。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ

<angularDegreeTrueUnits> リリース

  • ツイート ** <アングル 学位TrueUnits> ** . . (#angulartrueunits ディレクティブ) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlこれは、単位文字列のコンマ区切りリストを含むERDDAP™角度単位として扱われるべきです。 変数がこれらの単位の1つを持っている場合、tabledapお問い合わせorderByMeanフィルターは特別な方法で平均を計算し、0から360までの値として平均を報告します。 お問い合わせERDDAP's 現在のデフォルトリストの EDStatic.java ソースファイル。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ  

<共通標準名>

  • ツイート ** <共通標準名> ** . . (#common標準名) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xml共通のコンマ区切りリストを指定するCF標準名お問い合わせ 例:
    <commonStandardNames>air\\_pressure, ..., wind\\_to\\_direction</commonStandardNames>  

DataProviderForm3.html ではユーザの利便性として利用しています。 この情報を提供したい場合はdatasets.xml, 現在のデフォルトリストをコピーして起動します。<DEFAULT\_common標準名> お問い合わせERDDAPお問い合わせ \[トームキャット\]/webapps/erddap/WEB-INF/classes/gov/noa/pfel/erddap/util/messages.xml ファイル。  

<キャッシュMinutes>

  • ツイート ** <cacheMinutes> ** . . (#キャッシュアウト) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xml年齢を指定する (所要時間) キャッシュ内のファイルが削除される (デフォルト=60) お問い合わせ 例:
    <cacheMinutes>60</cacheMinutes>  

一般的にはイメージファイルのみ (同じ画像が繰り返し要求されることが多いため) そして、.ncファイル (ユーザに送信する前に完全に作成される必要があるため) キャッシュされます。 リクエストが常に同じ応答を返すように見えるかもしれませんが、それは本当ではありません。 例えば、tabledap時間を含むリクエスト> 詳しくはこちら タイムタイム データセットに新しいデータが到着したときに変更されます。 そして含まれているgriddapの要求\[最後の投稿\]データセットに新しいデータが到着したときに時間次元が変化します。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これは、setup.xmlで指定されました, これは、まだ許可されていますが、捨てられます.  

<変換InterpolateRequestCSVExample>

  • ツイート ** <変換InterpolateRequestCSVExample> ** . . (#convertinterpolaterequestcsvexample(コンバート)) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xml \[まずはERDDAP™v2.10の特長\]Interpolate コンバーターの Web ページに表示される例が含まれている。 デフォルト値は: jplMURSST41/分析\_sst/バイリンガル4

<ConvertInterpolateDatasetIDVariableList>

  • ツイート ** <ConvertInterpolateDatasetIDVariableList> ** . . (#convertinterpolatedatasetid変数リスト) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xml \[まずはERDDAP™v2.10の特長\]CSVリストを含むdatasetID/変数 Interpolate コンバーターの Web ページに提案として使用される名前の例。 デフォルト値は: jplMURSST41/分析\_sstお問い合わせ

<変換ToPublicSourceUrl>

  • ツイート ** <変換ToPublicSourceUrl> ** . . (#converttopublicsourceurl(コンバート)) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xml"from" と "to" の属性が含まれているので、マッチしたローカルを変換する方法を指定します。sourceUrl (通常 IP 番号) パブリックにsourceUrl (ドメイン名) . "from" はフォーム "\[お問い合わせ\]// // // //\[お問い合わせ\]. . . これらのタグの 0 以上のものがあります。 詳しくは [<sourceUrl>> (#ソース) お問い合わせ 例えば、
    <convertToPublicSourceUrl from="https://192.168.31.18/" to="https://oceanwatch.pfeg.noaa.gov/" />  

マッチングをローカルに引き起こすsourceUrl (など https://192.168.31.18/thredds/dodsC/satellite/BA/ssta/5day )
パブリックにsourceUrl ( https://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day ) お問い合わせ このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ

しかし、セキュリティ上の理由やサブスクリプションシステムに関連する理由については、 このタグを使用しないでください!
代わりに、常にパブリックドメイン名を<sourceUrl> タグと使用/etc/hostsテーブルローカルドメイン名をDNSサーバーを使用しなくてもIP番号に変換できます。 ドメイン名が正しく IP 番号に変換されていれば、次のようにテストできます。 ピン ドメイン名
 

データ:image/png;base64,

  • ユーザーが要求する場合.htmlTable応答からERDDAP™, 文字列 セル内のデータに data:image/png;base64 が含まれている場合, 続いて base64 エンコード .png イメージ,ERDDAP™アイコンが表示されます (そのため、ユーザーはそれを上回るならイメージを見ることができます) テキストや画像をクリップボードに保存するためのボタン。 この機能を追加ERDDAP™マルコ・アルバによるv2.19。

drawLandMask

  • drawLandMask 時とどのようにランドマスクが描画されるべきかを制御するデフォルト設定を指定します。ERDDAP™地図を描きます。 3つの異なる場所で指定することができますdatasets.xml (最少から最優先まで) : : :

    1. お問い合わせdrawLandMask内の指定<erddapDatasets> (特定のデータセットに接続されていない) では、デフォルト値を指定します。drawLandMaskすべてのデータセットのすべての変数のため。 例えば、
        <drawLandMask>under</drawLandMask>  

このタグの値の変更は、次の時刻に有効になります。ERDDAPフィードバックdatasets.xmlお問い合わせ このタグが存在しない場合は、デフォルト値が下にある。   2. お問い合わせdrawLandMask指定されたデータセットのグローバル属性として指定され、デフォルト値を指定します。drawLandMaskデータセット内の全ての変数に対して、優先度の設定をオーバーライドします。 例えば、

    <att name="drawLandMask">under</att>  

このタグの値の変更は、次の時刻に有効になります。ERDDAP™データセットのリロード。   3. お問い合わせdrawLandMask指定されたデータセット内の変数の属性として指定され、デフォルト値を指定します。drawLandMaskそのデータセットの変数に対して、優先度の設定をオーバーライドします。 例えば、

    <att name="drawLandMask">under</att>  

このタグの値の変更は、次の時刻に有効になります。ERDDAP™データセットのリロード。

ユーザはデフォルトを上書きできます (どこに指定するか) データセットの Make A Graph Web ページにあるドロップダウンリストから「Draw Land Mask」の値を選択するか、&.land= を含む バリュー 地図をリクエストするURLERDDAPお問い合わせ

すべての状況では、属性の4つの値があります。

  • 地図上のデータを描画する前に「アンダー」がランマスクを描画します。 埋め込まれたデータセットのために、土地は一定した軽い灰色色として表示されます。 表形式のデータセットの場合、「アンダー」は、地と海の上に地形データを表示します。
  • "オーバー" -- グリッドデータセットの場合、「オーバー」は、マップ上のデータを描画した後にランマスクを描画し、土地上のデータをマスクします。 表紙データセットの場合、「オーバー」は、海と陸地がある一定の光の灰色の境界線を示しています。
  • 「アウトライン」は、ランドマスク、政治境界、湖、川の輪郭を描きます。
  • "off" は何も描画しません。

<メール診断ToErdData>

  • ツイート ** <メール診断ToErdData ** . . (#電子メール診断toerddata) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlお問い合わせ タグの値は真になります (デフォルト) または false もし、ERDDAP™スタックトレースをChrisにメールします。 ノアのヨハネ。 ログイン (お問い合わせERDDAP™開発チーム) お問い合わせ 機密情報がないため、安全かつ安心です。 (例、リクエストUrl) メールでのお問い合わせ これは、NullPointerExceptions につながるあらゆる障害、全く予期しないバグをキャッチできるはずです。 そうでなければ、ユーザは例外を参照しますが、ERDDAP™開発チームは開発チームではありません (そのため、修正が必要な問題があることは分かりません。) お問い合わせ  

<グラフ背景色>

  • ツイート ** <グラフ背景色> ** . . (#グラフバックグラウンドカラー) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlグラフ上のデフォルトの背景色を指定する。 ほぼすべてのグラフに影響します。 影響を受けない状況はいくつかあります。 色は、AA、RR、GG、BBがそれぞれ、オパシティ、赤、緑、青の各コンポーネントである0xAARRBB形式で8桁の16桁の16進数値として指定されます。 "0x" はケース感度が高いですが、16進数の数字はケース感度ではない。 たとえば、完全に不透明 (ログイン) red=22、green=88、blue=ee の緑がかった青色は 0xff2288ee です。 オパクホワイトは0xffffffffffです。 デフォルトは不透明ライトブルーです (0xffccffの) 、それはデータを引くために使用される多くのパレットの重要な色である白と異なっていることの利点があります。 例えば、
    <graphBackgroundColor>0xffffffff</graphBackgroundColor>  

このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ

<ipAddressMaxRequests>

  • ツイート ** <ipAddressMaxRequests> ** . . (#ipaddressmaxrequests からのメッセージ) まれに使用された任意札です (最初にサポートされるERDDAP™バージョン2.12) お問い合わせ<erddapDatasets> タグdatasets.xmlそれは、過度に積極的な正当なユーザーと悪意のあるユーザーの能力を制限するシステムの一部であり、他のユーザーのためのシステム性能を低下させる多数の同時リクエストを作ることです。 ipアドレス MaxRequests は、特定の IP アドレスから受け入れられる同時リクエストの最大数を指定します。 追加リクエストは HTTP 429 エラー: Too 多くのリクエストを受信します。 erddap/download/ と erddap/images/ の小さな静的ファイルは、このカウントから除外されません。 デフォルトは 15 です。 最大許容値は1000で、クレイジーが高いです。ERDDAP™多くの正当なユーザーがいるため、6未満の番号を受け入れない (特にWebブラウザとWMSクライアント) 一度に最大6リクエストをリクエストできます。 ザ・オブ・ザ・ERDDAP™毎日のレポートと、各メジャー・データセット・リロードでlog.txtファイルに書かれた同様の情報は、「Requester's IP Address」のタイトルの下にあるこれらのIPアドレスによる要求の背が高いものになります (Too 多くのリクエスト) お問い合わせ このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ

status.html の "Major LoadDatasets Time Series" セクションには、ユーザの ipAddressMaxRequests の設定を上回るリクエスト数を一覧表示する "tooMany" カラムが含まれます。 これは、アクティブな過度に積極的な正当なユーザーと悪意のあるユーザーが存在する場合に簡単に確認することができます (オプション) log.txt ファイルを見て、それらのユーザーをブラックリストしたいかどうかを決定します。

この設定をより高い数に設定すると、特に問題はありません。 あなた次第です。 しかし、そうすることで、多くのスレッドを使用してプロジェクトで動作するシステムを設定したり、それらが何をしているかフィードバックを与えたり、利益を得ることはありません。

<ipAddressMaxRequestsActive>

  • ツイート ** <ipAddressMaxRequestsActive> ライセンス ** . . (#ipaddressmaxrequestsactive ディレクティブ) まれに使用された任意札です (最初にサポートされるERDDAP™バージョン2.12) お問い合わせ<erddapDatasets> タグdatasets.xmlそれは、過度に積極的な正当なユーザーと悪意のあるユーザーの能力を制限するシステムの一部であり、他のユーザーのためのシステム性能を低下させる多数の同時リクエストを作ることです。 ipAddressMaxRequestsActiveは、特定のIPアドレスから積極的に処理される同時リクエストの最大数を指定します。 追加リクエストは、前のリクエストが処理されるまでキューに入れられます。 erddap/download/ と erddap/images/ ARE の小さな静的ファイルで、このカウントと関連する回転数を免除します。 デフォルトは2です。 最大許容値は100で、クレイジーが高いです。 攻撃的または悪意のあるユーザーに問題がある場合、特に、これは1を厳格に設定できます。 ユーザーは、要求するすべてのデータをすぐに取得します (ipAddressMaxRequests まで) しかし、システムリソースを占有することができません。 これは、過度に積極的な正当なユーザーと悪意のあるユーザーにdominateを許すため、これはより大きな数に設定することをお勧めしませんERDDAP'処理能力。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ  

<ipAddressUnlimited>

  • ツイート ** <ipAddress無制限> ** . . (#ipaddressunlimitedさん) まれに使用された任意札です (最初にサポートされるERDDAP™バージョン2.12) お問い合わせ<erddapDatasets> タグdatasets.xmlそれは、過度に積極的な正当なユーザーと悪意のあるユーザーの能力を制限するシステムの一部であり、他のユーザーのためのシステム性能を低下させる多数の同時リクエストを作ることです。 ipAddressUnlimited は、IP アドレスのコンマ区切りリストで、無制限のアクセスを許可するERDDAPお問い合わせ ログを見る txt ファイルが IP アドレスにサーバーが使用している形式を確認します。 一部のサーバーでは、IP アドレスは #.#.#.#.# の形式になります。 (# は 0 から 255 までの整数です。) #:#:#:#:#:#:#:#:#:#:#:#:#:#:# お問い合わせ このリストのリクエストは ipAddressMaxRequests または ipAddressMaxRequestsActive 設定の対象外です。 これは二次的である可能性がありますERDDAP™またはシステム内の特定のユーザーまたはサーバーの場合。ERDDAP™常に " (未知のIPAddress) お問い合わせERDDAP™リクエスト者の IP アドレスが同じサーバーで実行される他のプロセスに対して、等、決定できないとき使用します。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ

何らかの理由で、ユーザーのリクエストがエラーメッセージ「処理する他のリクエストを待機するタイムアウト」を取得すると、ipAddressUnlimitedリストにユーザーのIPアドレスを追加し、その変更を適用して、そのリストから削除することで問題を解決できます。

<loadDatasetsMinutes>

  • ツイート ** <loadDatasetsMinMinutes(ロードデータセット) ** . . (#loaddatasets分) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xml最小時間を指定する (所要時間) 主要な負荷間の データセット (いつかERDDAP™再処理datasets.xmlそれぞれのデータセットをチェックして、リロードに応じてリロードする必要があるかどうかを確認します。 EveryNMinutes 設定、デフォルト=15) お問い合わせ 例:
    <loadDatasetsMinMinutes>15</loadDatasetsMinMinutes>  

loadDataset の実行がこの時間よりも少ない場合、 loader は、残りの時間が経過するまで、フラグディレクトリと/またはスリープを繰り返します。 デフォルトは15分で、ほとんどの人にとっては良いでしょう。 これを小数に設定する唯一の欠点は、それが周波数を増加させるということですERDDAP™それらが荷を積んでいることを防ぐ間違いがあるデータセットをretries (例えば、リモートサーバがダウンしている) お問い合わせ このようなデータセットが多く、頻繁に再テストされると、データソースはペスタリング/攻撃的な動作を考慮するかもしれません。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これは、setup.xmlで指定されました, これは、まだ許可されていますが、捨てられます.  

<loadDatasetsMaxMinutes>

  • ツイート ** <loadDatasetsMaxMinutes(ロードデータセット) ** . . (#loaddatasetsmax分) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xml最大時間を指定する (所要時間) 主な荷重 データセットの手間がかかる (負荷の前に "stalled" として扱われ、中断されるデータセットの糸) (デフォルト=60) お問い合わせ 例:
    <loadDatasetsMaxMinutes>60</loadDatasetsMaxMinutes>  

一般的に、これは、すべてのデータセットを再読み込みすることを合理的に考える限り少なくとも2倍に設定する必要があります (累積的) お問い合わせ (コンピュータやネットワークが予想以上に遅くなるので) これは常に loadDatasetsMinutes よりもはるかに長いはずです。 デフォルトは60分です。 一部の人は、これを長く設定します。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これは、setup.xmlで指定されました, これは、まだ許可されていますが、捨てられます.  

<ログレベル>

  • ツイート ** <ログレベル> ** . . (ログレベル) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xmllog.txt ファイルに多くの診断メッセージが送信されるかを指定する。 「警告」に設定できます。 (一番少ないメッセージ) お問い合わせ (デフォルト) , または "all" (ほとんどのメッセージ) お問い合わせ 例:
    <logLevel>info</logLevel>  

このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これは、setup.xmlで指定されました, これは、まだ許可されていますが、捨てられます.  

<partialRequestMaxBytes> および<部分的なRequestMaxCells>

  • ツイート ** <partialRequestMaxBytes> . . (#partialrequestmaxbytes-and-partialrequestmaxcells ディレクティブ) と [ <partialRequestMaxCells> ** . . (#partialrequestmaxbytes-and-partialrequestmaxcells ディレクティブ) ほとんど使用されていない OPTIONAL タグ内で<erddapDatasets> タグdatasets.xmlお問い合わせ 可能な場合 (常にできない) ,ERDDAP™大量のデータリクエストをチャンクに分割してメモリを節約できます。

32ビットを使ってJava, 単純に意味, 最大同時の数 大きい リクエストは、利用可能なメモリのおよそ3分の3です (-Xmx 値が Tomcat に渡された) チャンクのサイズによって分けられる (例: 1200 MB / 100 MB => 12 リクエスト) お問い合わせ その他、メモリを必要とするので、実際のリクエスト数が少ない。 練習では、常にチャンクすることはできない。 そのため、大きすぎるか、大きめの同時無数の要求が32ビットで問題を引き起こす可能性があります。Javaお問い合わせ

64ビットを使ってJava, -Xmx 値が大きくなります。 そのため、メモリが制約になる可能性がはるかに少ない。

これらのタグを定義することで、デフォルトのチャンクサイズをオーバーライドできますdatasets.xml (ここに示すよりも異なる値で) : : : 格子のため:<部分的なRequestMaxBytes>100000000</partialRequestMaxBytes> テーブルのため:<部分的なRequestMaxCells>1000000</partialRequestMaxCells>

partialRequestMaxBytes は、部分的なグリッドデータリクエストの最優先バイト数です。 (リクエスト合計のチャンク) お問い合わせ デフォルト=100000000 (10^8) お問い合わせ より大きいサイズは必ずしもよりよいではないです (それはTHREDDSのデフォルト制限であるため、500メガバイトを超えることはありませんDAP応答) お問い合わせ しかし、より大きなサイズは、大量のファイルへのアクセスが少ない場合があります (考えるERD's の衛星データは、各々の部分的なリクエスト内の各ファイルからより多くのデータを取得する方が良いです。) お問い合わせ

partialRequestMaxCells は、セルの最優先数です。 (nRows \* データテーブルのnColumns) 部分的な TABLE データ要求のため (リクエスト合計のチャンク) お問い合わせ デフォルト = 100000. より大きいサイズは必ずしもよりよいではないです。 ソースからデータの初期のバッチを待ちます。

このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これらはsetup.xmlで指定されました, これはまだ許可されていますが、捨てられます.  

<ブラックリスト&gtリクエスト。

  • ツイート ** <リクエストブラックリスト> ** . . (#requestブラックリスト) OPTIONALタグお問い合わせ<erddapDatasets> タグdatasets.xmlこれは、ブラックリストされる数値IPアドレスのコンマ区切りリストを含む。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ
    • これは、オフにすることができますサービス攻撃の拒否、過度にzealousウェブロボット、または他のタイプの面倒なユーザー。
    • 面倒なユーザー -- お問い合わせERDDAP™クロールまたはフリーズ/ストップに遅くなると、原因は、一度に複数のスクリプトを実行しているか、または非常に大きく、非常に非効率的、または無効な要求、または同時リクエストの多数を作るのが面倒なユーザーです。 お問い合わせログイン面倒なユーザの数値IPアドレスを調べるケースで確認します。 これが問題の場合、そのユーザーをブラックリストにする必要があります。

いつかERDDAP™要求から取得します。 blacklisted IP アドレス, HTTP エラー 403: 禁止. 同行のテキストエラーメッセージは、ユーザーに電子メールを促す、ERDDAP管理者は、問題の解決に取り組みます。 エラーメッセージを読む時間を取る場合 (多くは明らかにない) そして、あなたに連絡して、あなたはそれらを一度に1つのスクリプトを実行するためにそれらを取得するためにそれらと一緒に作業することができます、より効率的なリクエストを作る、自分のスクリプトの問題を解決 (例えば、タイミングアウト前に応答できないリモートデータセットからデータを要求する) トラブルの発生源だったか。

ユーザーは、リクエストが面倒なことに注意することが多いです。 それらはしばしば、バグ、過失の不当性、またはスクリプトの他の問題に気づいています。 彼らはしばしば、あなたのためだと思うERDDAP™複数のスクリプトを実行したり、複数のスレッドを同時に使用することにより、必要に応じて多くのデータを求めることができる、無料のデータを提供します。

  • それぞれに説明できるERDDAP™, 今、どのように大きく、強力な, 有限リソースを持っています (CPU時間、ハードドライブI/O、ネットワーク帯域幅など) ユーザーが他のユーザーやオーバーバーデンをクラウドする方法でデータを要求する場合、それは公正ではありませんERDDAPお問い合わせ
  • ユーザーが2つの同時リクエストを作成する方法を知っていると、追加のリクエストは何も費用がかかるので、5、10または20の同時リクエストを作ることができない理由はしばしば見ません。 それは非対称的な戦場のようなものです:ここでは、攻撃的な武器は途方もない利点を持っています (ゼロコスト) 防御兵器の上に (実質の費用のfiniteの取付け) お問い合わせ
  • より多くの同時リクエストを作るためにリターンを減少させるという点で、追加のリクエストは、他のユーザーの要求をブロックし、それらに対して大きな改善をもたらすことはありません。
  • 他のユーザーが存在することを認める (カジュアルなユーザーとスクリプトを実行している他のユーザーの両方) ですから、すべてのものをホグするためにそれらが公正ではありませんERDDAPリソース
  • テクノロジーの巨人は、Webサービスから無限のリソースを期待するためにユーザーに誘発したことを指摘しています。 セットアップ方法がありますがグリッド/クラスター/フェデレーションERDDAPツイート作るERDDAP™より多くのリソース、ほとんどのシステムERDDAP™管理者は、そのようなシステムを設定するお金やマンパワーを持っていません。そのようなシステムはまだ有益です。 お問い合わせERD例えば、1人1人 (お問い合わせ) ライティングERDDAP™, 管理 2ERDDAPツイート (私の上司からの助けを借りて) 複数のデータソースを管理し、すべての年間ハードウェア予算を$ $0で管理 (私たちは、ハードウェアの支払いに時折付与に依存しています) お問い合わせ Google、Facebook、Amazonなど、100 社のエンジニアや、100 億ドルの収益で、より大きなシステムにリサイクルされることはありません。 そして、私たちを動かすことはできません。ERDDAP™たとえば、Amazon AWS は、データストレージのコストが大きいため、データエグレッションの料金は大きく、変数が大きいため、外部サービスの予算は 0 です。
  • ユーザへのリクエストは、非時間感度リクエストに対して (ほとんどの一般的なケースは、) 彼らのシステムは一度に1つの要求を要求するちょうどべきです。 要求が時間の敏感である場合 (例えば、Webページ上の複数の.pngs、複数のタイルWMSクライアント等) , おそらく 4 同時リクエストは最大でなければなりません (短時間で) お問い合わせ
  • ユーザーの状況を説明する場合、ほとんどのユーザーは、ブラックリストからIPアドレスを削除できるように、必要な変更を理解し、意思表示します。  
  • ユーザーをブラックリストするには、IP アドレスのコンマ区切りリストに数値 IP アドレスを追加します。<リクエストでブラックリスト>datasets.xmlファイル。 面倒なユーザーのIPアドレスを見つけるには、ERDDAP™ bigParentディレクトリ /logs/log.txt ファイル ( bigParentディレクトリ で指定されるセットアップ。xml) この場合、そのユーザーの IP アドレスが表示されるかどうかを確認します。 "{{{{{{#" から始まる行にすべてのリクエストの IP アドレスがリストされ、例えば 123.45.67.8 の期間で区切られた 4 数字です。 「ERROR」を検索すると、無効なリクエストなどの問題が見つかります。
  • また、IPアドレスの最後の番号をIPアドレスに置き換えることができます\(例: 202.109.200)\) IPアドレスの範囲をブロックする, 0-255.
  • また、IPアドレスの最後の2つの数字をIPアドレスに置き換えることができます\お問い合わせ\ (例えば、121.204.\お問い合わせ\) IPアドレス、0-255.0-255の広い範囲をブロックする。
  • 例えば、
    <requestBlacklist>98.76.54.321, 202.109.200.\\*, 121.204.\\*.\\*</requestBlacklist>
  • 再起動する必要はありませんERDDAP™変更について<効果を要求するBlacklist>。 次回以降の変更が検出されます。ERDDAP™どのデータセットもリロードする必要があるか確認してください。 または、訪問することによってプロセスをスピードアップすることができますセットデータセット フラグ URLあらゆるデータセットのため。
  • お問い合わせERDDAP™毎日のレポートには、最もアクティブに許可され、ブロックされたリクエストの一覧/文字が含まれています。
  • ドメイン/機関が数値IPアドレスに関連しているかを把握したい場合は、無料のリバースDNS Webサービスを好きなように使用できます。 https://network-tools.com/ お問い合わせ
  • 悪意のあるユーザーなど、特定のユーザーをより高いレベルでブロックするという感覚が生じる場合があります。 例えば、サーバー上のすべてのアクセスをブロックできます。ERDDAPお問い合わせ Linux では、そのような方法が1つあります。インフォメーションお問い合わせ 例えば、コマンドで198.51.100.0から来るすべてをブロックするルールを追加できます。 iptables -I インプット -s 198.51.100.0 -jのDROP

<スローダウンTroubleMillis>

  • ツイート ** <スローダウンTroubleMillis> ** . . (#スローダウンローブルミリ) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlミリ秒数を指定する整数を含む (デフォルト=1000) 失敗したすべてのリクエストに応答するときに一時停止するには、例えば、未知のデータセット、あまりにも大きすぎるリクエスト、ブラックリスト上のユーザー。 例:
    <slowDownTroubleMillis>2000</slowDownTroubleMillis>

スクリプトが別の直後に1つのリクエストを即座に行なっている場合、別の後に1つの悪いリクエストを迅速に行う可能性があります。 この設定では、失敗したスクリプトを遅くすることができます。ERDDAP™悪いリクエストで洪水はしません。 人間が悪いリクエストをした場合は、この遅延に気づくことはありません。 推薦:

  • トラブルがサービスの分散型拒否である場合 (ツイート) 100以上の攻撃者から攻撃し、これをより小さい数に設定 (100 か。) お問い合わせ 長すぎるためにそれらをすべて下げると、あまりにも多くのアクティブなスレッドにつながります。
  • 問題が 1-10 ソースからなら、これを 1000 ms に設定します。 (デフォルト) , 大きい数 (のような 10000) 適度です。 これにより、ネットワークリソースが少ないため、ネットワークリソースを削減できます。 また、1000 ms 以上の場合、悪いリクエストを行なう人には迷惑なことはありません。

このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ  

<サブスクリプションEmailBlacklist>

  • ツイート ** <サブスクリプション メールブラックリスト> ** . . (#サブスクライブメールブラックリスト) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlこれは、すぐにブラックリストされているメールアドレスのコンマ区切りリストが含まれていますサブスクリプションシステム例えば
    <subscriptionEmailBlacklist>bob@badguy.com, john@badguy.com</subscriptionEmailBlacklist>  

ケースインセンティブなシステムです。 このリストにメールアドレスが追加された場合、そのメールアドレスがサブスクリプションを持っている場合は、サブスクリプションはキャンセルされます。 リストのメールアドレスが購読しようとすると、リクエストは拒否されます。 このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ  

標準的なテキスト

  • 標準的なテキスト お問い合わせ オプションタグがいくつかあります (ほとんど使用しません) お問い合わせ<erddapDatasets> タグdatasets.xmlさまざまな場所で表示されるテキストを指定するERDDAPお問い合わせ デフォルトのテキストを変更したい場合は、同じ名前のタグから既存の値をコピーします。 トームキャット /webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util.messages.xml お問い合わせdatasets.xmlコンテンツを変更します。 これらを持っていることの利点datasets.xmlいつでも新しい値を指定できます。ERDDAP™実行中です。 これらのタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ タグ名は目的を記述しますが、より深い理解のためにmessions.xmlのデフォルトのコンテンツを参照してください。

    • <標準ライセンス>

    • <標準お問い合わせ>

    • <標準データライセンス>

    • <標準免責事項OfEndorsement>

    • <標準免責事項OfExternalLinks>

    • <標準一般販売者>

    • <スタンダード プライバシーポリシー

    • <スタートヘッドHtml5>

    • <startBodyHtml5>は、すべてのWebページの上部の外観をカスタマイズするために変更する良いタグですERDDAPお問い合わせ 残念ながら、これを使って一時的なメッセージを簡単に追加できます。ERDDAP™サイトマップ (例:「新しいJPL MUR SST v4.1 データセットをチェックアウト...」または「これ」ERDDAP™2019-05-08T17:00:00 PDT 2019-05-08T20:00:00 PDT メンテナンスのためオフラインになります。) お問い合わせ このタグを入れる1つの質問datasets.xmlis: 再起動時にERDDAP、非常に最初の要求へのERDDAP™デフォルト開始を返します。 BodyHtml5 HTML が、その後のリクエストは、指定した startBodyHtml5 HTML を使用します。datasets.xmlお問い合わせ

    • <ショート説明 Html>はあなたの記述をカスタマイズするために変更するよい札ですERDDAPお問い合わせ このページの一時的なメッセージを追加するには、簡単に変更できます。 (例:「これ」ERDDAP™2019-05-08T17:00:00 PDT 2019-05-08T20:00:00 PDT メンテナンスのためオフラインになります。) お問い合わせ

    • <エンドボディHtml5>

新着情報ERDDAP™v2.00, これらはsetup.xmlで指定されました, これはまだ許可されていますが、捨てられます.  

<珍しい 活動およびgt;

  • ツイート ** <異常行為> ** . . (#unusual活動) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xml通常の考慮される loadDataset の 2 つの実行間のリクエストの最大数を指定する (デフォルト=10000) お問い合わせ その数を超えた場合は、メールがEverythingToに送信されます (setup.xml で指定された) お問い合わせ 例:
    <unusualActivity>10000</unusualActivity>  

このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ 新着情報ERDDAP™v2.00, これは、setup.xmlで指定されました, これは、まだ許可されていますが、捨てられます.  

<updateMaxイベント>

  • ツイート ** <updateMaxイベント> ** . . (#updatemaxeventsの) まれに使用されていた OPTIONAL の札は内のあります<erddapDatasets> タグdatasets.xmlファイル変更イベントの最大数を指定する (デフォルト=10) で処理されます [<更新EveryNMillis> (#updateeverynmillis, オーストラリア) 代わりにデータセットをリロードするために切り替える前のシステム。 例えば、
    <updateMaxEvents>10</updateMaxEvents>  

updateEveryNMillis システムは、ユーザーのリクエストが処理される直前に非常に迅速に実行するように意図されています。 たくさんのファイル変更イベントがある場合、おそらくすぐに実行できないため、データセットがリロードされるように呼び出します。 もし、ERDDAP™大量のデータファイルに変更があっても、最新のデータセットを扱い、これをより大きな数に設定できます。 (100 か。) お問い合わせ

<ユーザー>

  • ツイート ** <ユーザー> ** . . (#ユーザー) 内の OPTIONAL タグです。<erddapDatasets> タグdatasets.xmlユーザーのユーザー名、パスワードを特定する (認証=カスタムの場合) と役割 (コンマ区切りリスト) お問い合わせ ユーザー名とパスワードの使用は、値に基づいて若干異なります [<認証> (/docs/server-admin/additional-information#authentication) お問い合わせERDDAP's setup.xml ファイル。
    • これは、ERDDAPお問い合わせセキュリティシステム一部のユーザーへのデータセットへのアクセス制限
    • 別のものにする<各ユーザの user> タグ。 必要に応じて、認証=oauth2 の場合、2 を設定できます。<ユーザー> 各ユーザのタグ: ユーザが経由してログインしたときに1つ Google は、ユーザーが Orcid 経由でログインしたときに、同じロールで推定されます。
    • ない場合<user> クライアント用のタグ、s/he はパブリックデータセット、すなわち、データセットにアクセスできるのみ [<にアクセスする> (#アクセス可能) タグ。
    • パスワード 認証=カスタムの場合、ユーザー名は通常、文字、数字、アンダースコア、期間の組み合わせです。 Authentication=email の場合、ユーザー名はユーザーのメールアドレスです。 メールでのお問い合わせ Authentication=google の場合、ユーザー名はユーザのフル Google のメールアドレスです。 これには、Googleのマネージドアカウントが含まれます@noaa.govアカウント。 Authentication=orcid の場合、ユーザー名はユーザーの Orcid アカウント番号です。 (ダッシュで) お問い合わせ Authentication=oauth2 の場合、ユーザー名はユーザのフル Google のメールアドレスか、ユーザーの Orcid のアカウント番号です。 (ダッシュで) お問い合わせ
    • パスワード Authentication=email, google, orcid, oauth2 の場合、パスワード属性を指定しません。 Authentication=custom の場合、ユーザごとにパスワード属性を指定する必要があります。
      • ユーザーが入力するパスワードは、ケースの機密性であり、8以上の文字を持っている必要があります。 最近では、AWS上のコンピュータのクラスターを使用して、8文字でも素早く安価に亀裂させることができます。ERDDAP™ユーザーがログインしようとすると、8文字の最小値だけを強制します(ただし、ログオン時にのみ)<user> タグは処理されます。なぜなら、コードはパスワードのハッシュダイジェストだけを、プレーンテキストパスワードではなく参照するためです。
      • setup.xml の<パスワードエンコーディング> パスワードが保存される方法を決定する<ユーザー> タグdatasets.xmlお問い合わせ セキュリティを強化するためには、以下のオプションがあります。
        • MD5の特長 (お問い合わせ) -- パスワード属性の場合は、ユーザのパスワードのMD5ハッシュダイジェストを指定します。
        • UEPMD5の特長 (お問い合わせ) -- パスワード属性の場合はMD5ハッシュダイジェストを指定します。 パスワード : : :ERDDAP: : : パスワード お問い合わせ ユーザー名と "ERDDAP" を使うソルトハッシュ値、デコードが難しくなります。
        • SHA256の特長 (お勧めしない) -- パスワード属性の場合は、ユーザのパスワードの SHA-256 ハッシュ ダイジェストを指定します。
        • UEPSHA256の特長 (デフォルト, 推奨パスワードエンコーディング. しかし、はるかに優れています。Google、orchid、またはoauth2認証オプションを使用します。) -- パスワード属性の SHA-256 ハッシュ ダイジェストを指定します。 パスワード : : :ERDDAP: : : パスワード お問い合わせ ユーザー名と "ERDDAP「ハッシュ値の塩に使用され、デコードが難しくなります。
      • WindowsではMD5プログラムをダウンロードすることでMD5パスワードの消化値を生成できます (などMD5の特長) 使用して (例えば) : : : md5 -djsmith:ERDDAP: : : 実際のパスワード
      • Linux/Unix では、組み込み md5sum プログラムを使用して MD5 の消化値を生成できます。 (例えば) : : : echo -n "jsmith:ERDDAP: : : 実際のパスワード ツイート|md5sumの
      • プレーンテキストパスワードは、ケースの機密です。 MD5 および UEPMD5 のパスワードの保存された形態は敏感ではないです。
      • 例えば (UEPMD5を使う) , もし username="jsmith" と password="myPassword",<user> タグ:
            <user username="jsmith"  
password="57AB7ACCEB545E0BEB46C4C75CEC3C30"
roles="JASmith, JASmithGroup" />

保存したパスワードが生成された場所 md5 -djsmith:ERDDAP:myパスワード

  • ロールは、ユーザーが権限を付与するロールのコンマ区切りのリストです。 その他<dataset> に [ある] があるかもしれません<にアクセスする> (#アクセス可能) そのデータセットにアクセスできるロールをリストするタグ。 特定のユーザーと与えられたデータセットの場合、ユーザーのロールのリストのロールの1つが、データセットのリストのロールの1つにマッチする場合<accessTo> ロールは、ユーザがそのデータセットにアクセスすることを許可します。

ログオンしたユーザは、自動的にロールを与えられた\[誰でもログイン インスタグラム\]、あるかどうか<user> のタグdatasets.xmlまたはない。 そのため、指定したデータセットが

            <accessibleTo>\\[anyoneLoggedIn\\]</accessibleTo>  

その後、ログインしているユーザは、そのデータセットにアクセスするために許可されます。<user> のタグdatasets.xmlお問い合わせ

  • このタグの値の変更は、次の時刻に有効になります。ERDDAP™フィードバックdatasets.xmlデータセットに対する応答を含むログインお問い合わせ  

<pathRegex>

  • ツイート ** <パスレレックス> ** . . (#pathregex ディレクティブ) パスを制限する正規表現を指定する (サブディレクトリ) データセットに含まれています。 デフォルトは .\* で、すべてのパスにマッチします。 これはまれに使用されて、まれに必要とされて、のためのOPTIONALの札EDDGridFromFiles データセット、EDDTableFromFiles データセット、その他のデータセットタイプ。 しかし、必要な時、本当に必要です。

この仕事をするには、正規表現で本当に良い必要があります。 お問い合わせregex ドキュメントそして、regexチュートリアルお問い合わせ 特に、キャプチャグループについて知る必要があります (括弧の中の何か) と "or" 記号 "|お問い合わせ これらは、オプションの任意の数を指定することができます。例えば、 (オプション1|オプション2|オプション3) お問い合わせ また、オプションのどれも、例えば、 (|オプション2|オプション3) お問い合わせ また、キャプチャグループがネストされる可能性があることを知っておく必要があります。例えば、キャプチャグループ内の任意のオプションは、別のキャプチャグループを含むことができます。 (|オプション2 (|オプション2 ツイート|オプション2c) |オプション3) つまり、option2 は何もない、またはoption2b、またはoption2c で続くことができる。 pathRegexes では、各オプションは、/ に続く 1 つのフォルダー名で、 bar/ になります。

pathRegexのトリッキー部分は次のとおりです。ERDDAP™再帰的にディレクトリツリーを下ると、pathRegex は、データを持つディレクトリに遭遇するすべてのパスを受け入れる必要があります。 Regexのネストされたキャプチャグループでは、これに対処するための良い方法です。

例: 次のディレクトリ構造があるとします。

/foo/bar/D0001/a/\\*.nc  
/foo/bar/D0001/b/\\*.nc
/foo/bar/D0002/a/\\*.nc
/foo/bar/D0002/b/\\*.nc
...
/foo/bar/E0001/a/\\*.nc
...

と指定された fileDirectory は /foo/bar/ で、.ncD内のファイル\[受付時間\]{4}/a/サブディレクトリ。 ソリューションは、pathRegex を /foo/bar/ に設定することです。 (|ダイバーシティ\[受付時間\]お問い合わせ (|ツイート) )
それが言う: パスは /foo/bar/ から始まる必要があります。 何もない、または D に従うかもしれない\[受付時間\]お問い合わせ 何もない、または a/

はい、pathRegex の形式が非常に難しい場合があります。 あなたが立ち往生したら、コンピュータプログラマに尋ねます (世界で一番近いことは、ウィザードの流出の危険性?) または Chris に電子メールを送信してください。 noaaa.govのジョン

<データセット>

  • ツイート ** <データセット> ** . . (#データセット) オプション (常に使用される) 内のタグ<erddapDatasets> タグdatasets.xmlその(全ての情報を含む場合)<データセット>および</dataset>) は 1 つのデータセットを完全に記述します。 例えば、
    <dataset type="EDDGridFromDap" datasetID="erdPHssta8day" active="true"> ... </dataset>  

MAY は、データセットタグの任意の数です。datasets.xmlファイル。 3つの属性 MAYは、<dataset> タグ:  

  • タイプ=" は、 タイプ: ツイート 内のREQUIRED属性<dataset> タグdatasets.xmlデータセット型を識別する (例えば、EDDGrid/gridded または EDDTable/tabular データセット) データのソース (たとえば、データベース、ファイル、またはリモートOPeNDAPサーバー) お問い合わせ 詳細はこちら データセットの種類一覧 お問い合わせ  

データセット ログイン

  • datasetIDツイート データセットID ツイート 内のREQUIRED属性<dataset> ショート (通常) を割り当てるタグ<15文字)、データセットに名前を識別する一意
    • ザ・オブ・ザ・datasetIDsは手紙である必要があります (A-Z、a-zの) A-Z、a-z、0-9、および\_の任意の数に続く(ただし、A-Z、a-z、0-9、および\_の任意の数に続く)<32文字合計)
    • データセット ID は、ケースの機密性ですが、DON'T は 2 つを作成しますdatasetID上文字/下文字のみが異なります。 Windowsコンピュータ上の問題を引き起こします (ユーザーのコンピューターおよび/または) お問い合わせ
    • ベストプラクティス: お問い合わせキャメル 導入事例お問い合わせ
    • ベストプラクティス: 最初の部分は、ソース機関の名前の頭字語または略語であり、2番目の部分は、データセットの名前の頭字語または省略語であることをお勧めします。 可能であれば、データセットのソース名を反映した名前を作成します。 例えば、datasetID電子メールssta8day" データセットからNOAA NMFS SWFSC環境研究部 (ERD) これは衛星/PH/であるために源によって指定されますsst8日間
    • データセットの名前を変更すると、古いデータセット (古い名前で) 生き続けるERDDAPお問い合わせ これは "orphan" データセットです。datasets.xml今は消えます。 これに対処する必要があります:
      1. お問い合わせERDDAP™v2.19 以降、何もする必要はありません。ERDDAP™これらの orphan データセットを自動的に削除します。
      2. お問い合わせERDDAP™v2.18 以前は、 orphan データセットを削除するために何かを行う必要があります。 アクティブ="false" データセットを作る、例えば、
                <dataset type="EDDTableFromNcFiles" datasetID="*theOldName*" active="false" />  

次の大きな負荷の後 データセット, 古いデータセットが非アクティブになった後にタグを削除できます。  

アクティブ

  • アクティブ ログイン ツイート 内の OPTIONAL 属性<dataset> タグdatasets.xmlデータセットがアクティブであるかを示す (使用資格ERDDAP) またはない。
    • 有効な値はtrueです (デフォルト) そして偽り。
    • デフォルトは真であるため、この属性を一時的に使用したり、このデータセットを永久に削除したりする必要はありません。ERDDAPお問い合わせ
    • アクティブな="true" のデータセットをから削除するだけです。datasets.xml, データセットはまだアクティブになりますERDDAP™決して更新しません。 そのようなデータセットは「orphan」となり、ステータスなどに表示されます。 ロードできなかったデータセットのリストのすぐ下にあるhtml Web ページ。
    • Active="false" を設定すると、ERDDAP™データセットを更新しようとする次回のデータを非アクティブ化します。 これを行うと、ERDDAP™データセットについて保存した可能性のある情報を捨てず、実際のデータには何もしません。
    • データセットを削除するためにERDDAP™, 見る力のデータセットの取り外しお問い合わせ  

** 複数のタグは、<データセット>および</dataset> タグ。 **
データセットの種類によってタグが許可されるいくつかのバリエーションがあります。 特定のドキュメントを参照してください。データセットの種類詳しくはこちら

<アクセス ツイート

  • ツイート ** <アクセス お知らせ ** . . (#アクセス可能) OPTIONALタグは、<dataset>コンマ区切りリストを指定するタグロールこのデータセットへのアクセスを許可します。 例えば、
    <accessibleTo>RASmith, NEJones</accessibleTo>  
    • これは、ERDDAPお問い合わせセキュリティシステム一部のユーザーへのデータセットへのアクセス制限
    • このタグが存在しない場合、すべてのユーザ (ログインしていない場合でも) このデータセットにアクセスします。
    • このタグが存在している場合、このデータセットは、指定されたロールの1つを持っているログインユーザーのみ表示およびアクセス可能です。 このデータセットは、ログインしていないユーザーに表示されません。
    • ログオンしたユーザは、自動的にロールを与えられた\[誰でもログイン インスタグラム\]、あるかどうか<user> のタグdatasets.xmlまたはない。 そのため、指定したデータセットが
        <accessibleTo>\\[anyoneLoggedIn\\]</accessibleTo>  

その後、ログインしているユーザは、そのデータセットにアクセスするために許可されます。<user> のタグdatasets.xmlお問い合わせ  

<グラフAccessibleTo>

  • ツイート ** <グラフAccessibleTo> ** . . (#グラフaccessibleto) OPTIONALタグは、<dataset> タグdatasets.xmlデータセットのグラフィックやメタデータが公開されているかどうかを判断します。 データセットの部分的にオーバーライドする方法を提供します。 [<にアクセスする> (#アクセス可能) 設定。 許容値は次のとおりです。
    • 自動 -- この値(または欠如)<dataset の graphsAccessibleTo> タグは、dataset の mimic をデータセットからグラフやメタデータにアクセスします。<accessTo> 設定。 データセットがプライベートの場合、グラフとメタデータがプライベートになります。 データセットが公開されている場合、そのグラフとメタデータは公開されます。
    • パブリック お問い合わせ この設定は、データセットのグラフとメタデータが誰にでもアクセス可能になります。データセットがそうでない場合でも、ログインされていないユーザーでも、データセットがプライベートだからです。<accessTo> タグ。  

<アクセス バイファイル>

値が真の場合、ERDDAP™ユーザーがデータセットのソースデータファイルを閲覧してダウンロードできるようにしますERDDAPお問い合わせ"files"システムお問い合わせ 詳細はこちら"files"システムドキュメント詳しくはこちら

デフォルト値の<アクセス可能なViaFiles> お問い合わせ<デフォルトアクセス可能なViaFiles> お問い合わせセットアップ。xmlお問い合わせ false のデフォルト値がありますが、true. の値で set.xml にそのタグを追加することをお勧めします。

おすすめ -- 設定することで、ファイルシステムからアクセス可能なすべての関連データセットを作ることをおすすめします。<defaultAccessibleViaFiles> は setup.xml で true で、これはデータを取得する好ましい方法であるユーザのグループがあります。 他の理由から、"files"システムは、ユーザーがどのファイルが利用可能であるか、そして最後に変更されたときに、ユーザーがデータセット全体を独自のコピーを維持できるようにするのは簡単です。 一般的にファイルシステムを介してアクセス可能なデータセットを作りたくない場合は、設定<defaultAccessibleViaFiles> を false にします。 どちらの場合も、<accessViaFiles> いくつかのデータセットでは、一般的なポリシーに例外があります。<デフォルトアクセス可能なViaFiles> (例えば、データセットが使用するとき.ncミリリットルユーザーが本当に便利ではないファイル) お問い合わせ  

<アクセス ヴィクトリアWMS>

  • ツイート ** <アクセス ヴィクトリアWMSツイート ** . . (#アクセス可能) OPTIONALタグは、<dataset> タグdatasets.xmlお問い合わせEDDGridサブクラス。 それは真の価値を持つことができます (デフォルト) または false 例えば、
    <accessibleViaWMS>true</accessibleViaWMS>  

値が false の場合、ERDDAPお問い合わせWMSサーバは、このデータセットでは利用できません。 これは、180以上の経度値を持つデータセットに一般的に使用されています (技術的に無効な場合WMSサービス) 、およびあなたがまた範囲-180から180で全経度値とデータセットの変種を-提供しているかどうかEDDGridロンPM180お問い合わせ 値が真の場合、ERDDAP™データセットを利用できるように試みますERDDAPお問い合わせWMSサーバ。 しかし、データセットが完全に不適切な場合WMS (例えば、経度や緯度データがない) データセットは、ERDDAPお問い合わせWMSこの設定に関係なく、サーバー。  

<追加する 変数 所在地と所在地

  • ツイート<addVariablesWhere> は、 (#addvariables どこでも) 内のオプションタグです。<すべてのEDDTableデータセット用のdataset>タグ。

EDDTable データセットへのリクエストは、&add を含むことができます。 変数 アクセス (ツイート 属性属性 お名前 (必須) お問い合わせ 属性属性 バリュー ツイート) , 伝えますERDDAP™データセット内の全ての変数を追加する 属性名:attributeValue 要求された変数のリストに。 例えば、ユーザが&addを追加する場合 変数 アクセス (ツイートioos\_category"、"風") クエリへERDDAPデータセットに含まれる全ての変数を追加します。ioos\_category=要求された変数のリストに対するWind属性 (例えば、windSpeed、windDirection、windGustSpeed) お問い合わせ 属性属性 お名前 (必須) そして、 属性属性 バリュー ケースに敏感です。

インスタグラムdatasets.xmlデータセットの dataset.xml のチャンクがある場合

<addVariablesWhere>*attributeNamesCSV*<addVariablesWhere>  

例えば、

<addVariablesWhere>ioos\\_category,units<addVariablesWhere>  

データアクセスフォーム (.html ウェブページ) データセットにはウィジェットが含まれます (comma-separated リストの各属性名) ユーザーが属性値を指定できる変数のリストのすぐ下。 ユーザーが属性名の1つ以上で属性値を選択すると、&add 経由でリクエストに追加されます。 変数 アクセス (ツイート 属性属性 お名前 (必須) お問い合わせ 属性属性 バリュー ツイート) お問い合わせ したがって、このタグはdatasets.xmlデータセットのデータアクセスフォームに表示される属性名のリストを指定し、ユーザーが&addVariablesを追加するのが簡単です リクエストの関数がどこにあるか。 ザ・オブ・ザ・ 属性名CSV リストはケースに敏感です。

<高度MetersPerSourceUnit>

  • ツイート ** <高度メートルPerSourceUnit> ** . . (#高度メートルパーソナユニット) 内のオプションタグです。<データセットの dataset> タグ。 EDDTableFromのxxmlSOSデータセット (お問い合わせ) ソースの高度値や深さ値によって乗算される数を指定すると、高度値に変換できます。 (海抜メートル) お問い合わせ 例えば、
    <altitudeMetersPerSourceUnit>-1</altitudeMetersPerSourceUnit>  

このタグは、データセットの縦軸値がメートルではなく、前向きな = up の場合に使われる必要があります。 それ以外の場合は、デフォルト値が1であるので、オプションです。 例えば、

  • ソースが海抜メートルで既に測定されている場合は、1 を使用してください。 (1 がデフォルト値であるため、このタグを使用しないでください。) お問い合わせ
  • ソースが海底メートルで測定されている場合は、-1 を使用します。
    <altitudeMetersPerSourceUnit>-1</altitudeMetersPerSourceUnit>
  • ソースが海抜 km で測定されている場合は、0.001 を使用します。  

<デフォルトDataQuery>

  • ツイート ** <defaultDataQuery> ** . . (#デフォルトデータクエリ) OPTIONALタグは、<dataset> タグdatasets.xmlそれが言うERDDAP™指定したクエリを使用する (「?」の後のURLの部分) .html ファイルの場合 タイプ: (データアクセスフォーム) 問い合わせ無しで要求されます。
    • これを使う必要はほとんどありません。
    • XMLエンコードが必要です (パーセントエンコードしない) デフォルトのクエリは、XML ドキュメントにあるためです。 例えば、& は & になります。<なるほど<, > は &gt になります。
    • お仕事内容をご確認ください。 間違いを犯しやすく、欲しいものを手に入れるのは簡単です。ERDDAP™エラーをクリーンアップしようとしますが、それに依存しません。\*使い方\*清掃は変更になる場合があります。
    • Griddapデータセットの場合、この一般的な使用は、異なるデフォルト深さまたは高度次元値を指定することです。 (例えば、\[0 の 0\]代わりに\[最後の投稿\]) お問い合わせ いずれの場合も、常に全ての変数を一覧表示し、常に全ての変数の同じ次元値を使用し、ほとんど常に使用する必要があります。\[0 の 0\],\[最後の投稿\]または\[0:最後\]寸法値のため。 例えば:
        <defaultDataQuery>u\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\],v\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\]</defaultDataQuery>
    • お問い合わせtabledapデータセットは、制約を指定しない場合、データセットに応じて、大幅なデータセット全体を返します。 制約を指定しない場合は、空ではなく、<defaultDataQuery> (デフォルトを指定するのと同じです。 データクエリ) , defaultDataQuery に含まれるすべての変数を明示的にリストする必要があります。
    • お問い合わせtabledapデータセットは、この最も一般的な使用は、異なるデフォルト時間範囲を指定することです。 (最高への相対 (タイムタイム) , 例えば, &time>=max (タイムタイム) -1日、または現在の親戚、例えば、&time>=now-1泊1日) お問い合わせ データ変数を要求しないということは、すべてのデータ変数を指定すると同じなので、通常は新しい時間制約を指定できます。 例えば:
        <defaultDataQuery>&amp;time&gt;=max(time)-1day</defaultDataQuery>  

または

    <defaultDataQuery>&amp;time&gt;=now-1day</defaultDataQuery>  

<デフォルトGraphQuery>

  • ツイート ** <デフォルトGraphQuery> ** . . (#デフォルトグラフ) OPTIONALタグは、<dataset> タグdatasets.xmlそれが言うERDDAP™指定したクエリを使用する (「?」の後のURLの部分) .graphファイルの場合 タイプ: (グラフフォームを作る) 問い合わせ無しで要求されます。
    • これを使う必要はほとんどありません。
    • XMLエンコードが必要です (パーセントエンコードしない) デフォルトのクエリは、XML ドキュメントにあるためです。 例えば、& は & になります。<なるほど<, > は &gt になります。
    • お仕事内容をご確認ください。 間違いを犯しやすく、欲しいものを手に入れるのは簡単です。ERDDAP™エラーをクリーンアップしようとしますが、それに依存しません。\*使い方\*清掃は変更になる場合があります。
    • Griddapデータセットの場合、この最も一般的な使用は、異なるデフォルト深さまたは高度次元値を指定することです。 (例えば、\[0 の 0\]代わりに\[最後の投稿\]) 特定の変数がグラフ化されるかどうかを指定します。 いずれの場合も、ほとんどいつも使う\[0 の 0\],\[最後の投稿\]または\[0:最後\]寸法値のため。 例えば:
        <defaultGraphQuery>temp\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\]&amp;.draw=surface&amp;.vars=longitude|latitude|temp</defaultGraphQuery>  
    (しかし、すべての行を1行に置く)
    • お問い合わせtabledap制約を指定しない場合は、データセットに応じて、データセット全体をグラフ化します。
    • お問い合わせtabledapデータセットは、この最も一般的な使用は、異なるデフォルト時間範囲を指定することです。 (最高への相対 (タイムタイム) , 例えば, &time>=max (タイムタイム) -1日、または現在の親戚、例えば、&time>=now-1泊1日) お問い合わせ データ変数を要求しないということは、すべてのデータ変数を指定すると同じなので、通常は新しい時間制約を指定できます。 例えば:
        <defaultGraphQuery>&amp;time&gt;=max(time)-1day</defaultGraphQuery>  

または

    <defaultGraphQuery>&amp;time&gt;=now-1day</defaultGraphQuery>  

<次元価値InMemory>

  • ツイート ** <寸法: バリューインメモリー> ** . . (#次元値インメモリー) (ログイン (デフォルト) または false) OPTIONAL およびまれに使用された札は内のあります<dataset> 任意のタグEDDGridデータセットは、ERDDAP™寸法のソース値を保持する場所 (またとして知られているaxisVariableツイート) : : :

    • true = メモリ (より速く、より多くのメモリを使用する)
    • false = ディスクに (メモリが遅くてもメモリを使わない)

例えば、

<dimensionValuesInMemory>false</dimensionValuesInMemory>  

デフォルトでない値を false のデフォルトでない値でのみ使用してください。ERDDAP™非常に大きい次元の多くのデータセットがあります (例えば、何百万の価値、例えば、EDDGridFromAudioFiles データセット) そして、ERDDAP'使用メモリ使用量が高すぎます。 メモリを参照してください。: 現在行を使用して\[あなたのドメイン\]/erddap/status.htmlモニターへERDDAP™メモリ使用量。  

<ファイルTableInMemory>

  • ツイート ** <fileTableInMemory(ファイル)> ** . . (#ファイルテーブルインメモリー) (true または false (デフォルト) ) 内のオプションタグです。<dataset> 任意のタグEDDGridファイルとEDDTable FromFiles データセットERDDAP™fileTable を維持する場所 (各ソースデータファイルに関する情報) : : :

    • true = メモリ (より速く、より多くのメモリを使用する)
    • false = ディスクに (メモリが遅くてもメモリを使わない)

例えば、

<fileTableInMemory>true</fileTableInMemory>  

どのデータセットにも当てはまるように設定すれば、メモリに目を向けて下さい: ラインを現在使用しています\[あなたのドメイン\]/erddap/status.htmlそれを確実にするためにERDDAP™まだまだたくさんの記憶があります。  

<fgdcFile>

  • ツイート ** <fgdcFile> ** . . (#fgdcfileの) OPTIONALタグは、<dataset> タグdatasets.xmlそれが言うERDDAP™既製のFGDCファイルを使用する代わりに、ERDDAP™ファイルを生成しようとします。 使用法:
    <fgdcFile>*fullFileName*</fgdcFile>  

スタッフ ファイル名 ローカルファイルを参照することができます (サーバのファイルシステム上のどこか) またはリモートファイルのURL。 お問い合わせ スタッフ ファイル名 \="" またはファイルが見つからない場合、データセットにはFGDCメタデータはありません。 そのため、特定のデータセットに対してFGDCメタデータを抑制したい場合にも便利です。 または、置くことができます<fgdcActive>偽物</fgdcActive> を setup.xml で伝えますERDDAP™データセットにFGDCメタデータを提供していません。  

<イソ19115 ファイル>

  • ツイート ** <iso19115ファイル> ** . . (#iso19115ファイル) OPTIONALタグは、<dataset> タグdatasets.xmlそれが言うERDDAP™既製のISO 19115ファイルを使用する代わりに、ERDDAP™ファイルを生成しようとします。 使用法:
    <iso19115File>*fullFileName*</iso19115File>  
    スタッフ ファイル名 ローカルファイルを参照することができます (サーバのファイルシステム上のどこか) またはリモートファイルのURL。 お問い合わせ スタッフ ファイル名 \="" またはファイルが見つからない場合、データセットにはISO 19115メタデータはありません。 そのため、ISO 19115メタデータを特定のデータセットに抑制したい場合にも便利です。 または、置くことができます<iso19115Active>偽</iso19115Active> 指示する setup.xml のERDDAP™任意のデータセットのためのISO 19115メタデータを提供していません。  

<match軸軸 ニジット>

  • ツイート ** <MatchAxisNDigits(アキシスニグジット) ** . . (#matchaxisndigits(マッチ軸線)) 内の OPTIONAL タグです。EDDGrid <dataset> タグEDDGrid集計されるデータセット、例えばファイルの集計。 データセットがリロードされるたびに、ERDDAP™集計の各コンポーネントの軸値が同じであることを確認します。 試験の精度は、MatchAxisNDigits, オーストラリア、二重精密軸線の値をテストするとき一致しなければならない数字の総数を指定する、0 - 18 (デフォルト) お問い合わせ フロート軸値のテストでは、matchAxisNDigits/2桁でテストを行います。 18以上の値が伝えられますEDDGrid厳密なテストを行うため。 0 の値は、EDDGrid以下に記載されている場合を除き、推奨されるものではありません。

しかし、EDDGrid集計のコンポーネントは、わずかに異なる軸値を持つようにします。1セットの軸値がユーザーに表示されます。 このセットは、データセットのソースメタデータを提供する同じコンポーネントです。 例えば、EDDGridFromFiles のデータセットは、<metadataFrom> 設定 (デフォルト=last) お問い合わせ

matchAxisNDigits\=0 の使用は、すべてのチェックをオフにするので、ほとんどの場合、強くお勧めします。 コンポーネントが集計に適したため、チェックが最小限に抑えられます。 すべてのコンポーネントが適していると仮定しますが、必ずしもそうではありません。 そのため、重要なサニティテストです。 matchAxisNDigits1, 2, 3, 4 の値は、異なる軸値がしばしばコンポーネントが作成されたことを示すため、推奨値です。 (バイナリ?) そのため、集計には適していません。

matchAxisNDigits\=0 を使うと便利です。リモートファイルの集計、S3 バケットのデータなどです。 この場合、dataset が cacheFromUrl, cacheSizeGB, matchAxisNDigits\=0 を使用し、EDDGridFromFilesシステム集約による ファイル名, それからEDDGrid集計を行うためにすべてのリモートファイルを読む必要はありません。 これにより、S3 バケットのデータから作られたデータセットを素早く読み込むことができます。 (とりあえず遅くなるのではなく、EDDGridすべてのファイルをダウンロードして読む必要があります) お問い合わせ

<nThreads>

  • まずはERDDAP™バージョン 2.00, EDDTableFromFiles またはEDDGridソースからデータを読み込み、データの1つのチャンクを読み込むことができます (例:1つのソースファイル) 時間の経過 (1つの糸で) (デフォルトは) データの 1 チャンク以上 (例: 2+ソースファイル) 時間の経過 (2つ以上のスレッド) 各リクエストを処理する間。  
    • 親指のルール: ほとんどのシステムでほとんどのデータセットの場合、nThreads=1、デフォルトを使用します。 あなたが強力なコンピュータを持っている場合 (CPUコアの多く、たくさんのメモリ) 次に、nThreads を 2、3、4 以上の設定を検討します。 (しかし、コンピュータのCPUコアの数よりも決して) 利点があるデータセットのため:

      • ほとんどのEDDTableFromFilesのデータセットは利益をもたらします。
      • データが実際に処理できるチャンクの前に何かが遅れを引き起こすデータセットは、例えば以下のような利点があります。
        • データセット外部圧縮 (例:.gz) バイナリ (例:.nc) ファイル, のでERDDAP™ファイルが読み始める前に、ファイル全体を解凍する必要があります。
        • 使用するデータセットキャッシュサイズGB, のでERDDAP™読み取れる前にファイルをダウンロードする必要があります。
        • 高帯域幅並列ファイルシステムに保存されているデータファイルを含むデータセットは、要求に応じて、より高速なデータを配信できます。 並列ファイルシステムの例JBODについて,pNFSについて,グルスターFS、アマゾンS3およびGoogleクラウドストレージ。  

警告: nThreads>1 を使うと、ERDDAPメモリ使用、スレッド使用、および全体的な応答性 (詳しくはこちらERDDAP's ステータスページ) お問い合わせ これらの問題についてのコメントを参照してください。  

  • 特定のデータセットの場合、このnThreads設定は異なる場所から来ることができます。

    • もし、datasets.xmlデータセット用のチャンクには、<nThreads> タグ (within )<dataset> タグは、値>=でグローバル属性としてではなく、 1、nThreads の値は使用されます。 データセットごとに異なる番号を指定できます。
    • さもなければ、datasets.xmlお問い合わせ<nTableThreads> タグ (EDDTableのため FromFiles データセット) または<nGridThreads> タグ (お問い合わせEDDGridデータセット) 値で >= 1、外側<dataset> タグ、nThreads の値が使われます。
    • それ以外の場合は、最小限のメモリを使用するため、安全な選択である1スレッドを使用します。  

お問い合わせオリジナルERDDAP™導入事例、私達は使用します <nTableスレッド> 6月6日</nTableスレッド> (強力なサーバーです。) 過去のリクエストは30%以上かかります。  

モニターリソースの使用法

異なるnThreads設定で実験しているとき (そして多分あなたのに困難なサンプル要求を作って下さいERDDAP) コンピューターのリソースの使用状況を監視できます。

  • Mac では、Finder : アプリケーション : ユーティリティ : アクティビティモニター
  • Linux では、トップ
  • Windows 10の使用 Ctrl + シフト + Esc タスクマネージャを開く  
警告: 応答性を低下させる

分離で、ERDDAP™nThreads=1 よりも、より高速な nThreads 設定でデータセットへのリクエストを処理します。 しかし、その要求が処理される間、他のユーザーからの他の要求はやや混雑し、より遅い応答を取得します。 また、いつERDDAP™特定の要求に対応するほかのコンピューティングリソース (例えば、ディスクドライブアクセス、ネットワーク帯域幅) 特に nThreads の設定が高いと制限する場合があります。 したがって、より高いnThreads設定では、複数のリクエストが処理されると、システム全体の応答性が悪化します。これはユーザーに非常に迷惑になります! そのため、nThreads をコンピューターの CPU コア数以上に設定しないでください。 nThreads=1 は、各リクエストから最も公平な設定です。 (複数の同時リクエストの中で) コンピューティングリソースの同等な共有を取得します。 しかし、より強力なコンピュータは、これは問題になります。  

警告: より高い記憶 使用のためのEDDGridデータセット

処理リクエストが nThreads の設定に直接比例している間、メモリ使用。 親指の合理的に安全なルールは次のとおりです。ERDDAP's メモリ設定少なくとも2GB + (2GB \* nThreads) お問い合わせ 一部のデータセットへのリクエストは、それよりも多くのメモリが必要になります。 例えば、nThreads=3 を任意の値に設定します。EDDGriddataset は -Xmx の設定が少なくとも -Xmx8000M であるべきであることを意味します。 そのメモリ設定が3/4より大きい場合、コンピュータの物理メモリは、メモリ設定を低下させるため、nThreadsの設定を減少させます。

EDDTable のデータセットへのリクエストを処理するスレッドのメモリ使用は、ファイルは通常はるかに小さいため、ほぼ常に下がります。 しかし、特定のEDDTableデータセットが巨大な場合 (例: >=1 GB) 上記のコメントは、データセットにも適用されます。

nThreads の設定が何であれ、メモリ使用状況の統計を間近に把握できます。ERDDAP's ステータスページお問い合わせ メモリ使用量を最大にするまで近づくべきではありませんERDDAP;そうでなければ重大な間違いおよび失敗があります。

一時的に1に設定

現在のメモリ使用量が若干高い場合、ERDDAP™nThreads を 1 にセットします。 したがって、ERDDAP™記憶が傷つくとき記憶を節約して下さい。  

ダイミシングリターン

nThreads の設定を増加させるためのディミシングリターンがあります: 2 スレッドは 1 よりも優れます (動的オーバークロックを無視する場合) お問い合わせ しかし3は2よりも良いチャンクだけになります。 4 は 3 よりもマージンのみ優れます。

大きいEDDTableデータセットへの困難なクエリの1つのテストでは、1、2、3、4、5、6の糸を使用して応答時間は38、36、20、18、11秒でした。 (nTableThreads=6 をサーバーに使用しました。)

nThreads=2: しかし、nThreads=1の代わりにnThreads=2を指定するには、多くの場合、特定のユーザの要求に応答するために必要なクロック時間にあまり差がありません。 理由は: nThreads=1 で、ほとんどの近代的な CPU は頻繁に動的にオーバークロック (ターボブースト) CPUのクロック速度を一時的に増加させるために。 したがって、nThreads=1 では、nThreads=2 を使用した場合、2 つのコアのそれぞれよりも 1 つのコアがより高いクロック速度で動作することが多い。 それにもかかわらず、nThreads=1ではなくnThreads=2を使用する方が良いと思います。その設定はより広い状況でより良い結果をもたらすからです。 もちろん、コンピュータに十分なCPUコアがある場合、さらに高いnThreads設定がより良い結果をもたらすべきです。

上記のように、非常に高いnThreads設定は、いくつかの要求に対する迅速な対応につながる可能性がありますが、全体的な減少のリスクERDDAP™応答性と高いメモリ使用 (上記のように) これらの要求が処理される間、一般的には良い考えではありません。

ログイン コア

nThreads をコンピュータの CPU の CPU のコア数よりも大きい値に設定しないでください。 基本的にすべての現代のCPUは複数のコアを持っています (例:2,4,8) お問い合わせ 一部のコンピュータには複数のCPUが搭載されている (例:2 CPU \* 4コア/ CPU = 8 CPUコア) お問い合わせ コンピュータのCPU数とコア数の把握:

  • Macで、使用 オプションキー : アップルメニュー : システム情報
  • Linux では、 cat /proc/cpuinfo を使う
  • Windows 10の使用 Ctrl + シフト + Esc 開くこと タスクマネージャー : パフォーマンス (ロジカルプロセッサは、CPUコアの総数を示しています)

はい、ほとんどのプロセッサーは、コアごとの2スレッドをサポートしていると言います (お問い合わせハイパースレッド) , しかし、 2 スレッドは、コンピューティングリソースを共有します, 重い負荷の下で CPU の 2 倍のスループットが表示されません. 例えば、4つのコアを持つ1つのCPUを持つコンピュータは、最大8スレッドをサポートすると主張するかもしれませんが、nThreads=4を上回らないはずです。ERDDAPお問い合わせ 覚えている:

  • nThreads の設定ERDDAP™リクエストごとにERDDAP™複数のリクエストを同時に処理します。
  • ERDDAP™プロセスリクエスト以外のもの、例えば、データセットをリロードします。
  • いつかERDDAP™特定の要求に対応するほかのコンピューティングリソース (例えば、ディスクドライブアクセス、ネットワーク帯域幅) 制限する場合があります。 nThreads を設定すると、これらの他のリソースが最大化され、遅くなる可能性が高いERDDAP'一般的な応答性。
  • オペレーティングシステムは、実行以外のものを行いますERDDAPお問い合わせ

そのため、nThreads の設定をコンピューターの CPU のコア数以上に設定するのは最善ではありません。  

あなたのマイレージ 5月 バリ (YMMVの特長)

異なるnThreads設定の結果は、異なるシステム上の異なるデータセットへの異なる要求のために大きく異なります。 異なるnThreads設定の効果を本当に知りたい場合は、現実的なテストを実行します。  

なぜnThreads per request?

"nThreads per request" を思い浮かべる人もいますか? これをコーディングしていたら、私は1つの永久的なワーカースレッドプールとより良いパフォーマンスのためのメッセージングキューを使用します。 1つのワーカースレッドプールとメッセージングキューを使用する問題は、1つの困難なリクエストが複数のスロータスクでキューをフラッドするということです。 それは効果的にブロックされるERDDAP™初期リクエストまで、他のリクエストに関連するタスクで作業を開始することさえ (エッセンシャル) 終わり。 そのため、簡単な後続リクエストでも超ゆっくり対応します。ERDDAP'nThreads per request の使用は、コンピューティングリソースのより公平な使用につながる。  

nThreadsと複数のワーカーコンピュータ

残念ながら、ERDDAP'nThreadsシステムは、HadoopやApache Sparkが通常使用される方法で、複数の作業者コンピュータを介して、真の並列化として有効になりません。 タスクが複数のコンピュータに本当に並列/配布されるとき、各コンピュータはタスクのその部分にすべてのリソースを使用することができます。 とERDDAP's nThreads システム、各スレッドは、同じコンピュータの帯域幅、ディスク ドライブ、メモリ、等のために競合しています。 残念ながら、私たちのほとんどは、セットアップまたはレンタルするリソースや資金を持っていない (Amazon Webサービス (ツイート) またはGoogleクラウドプラットフォーム (GCPの特長) ) コンピュータの巨大な格子。 また、結果の列を任意の順序で返すことができるリレーショナルデータベースとは異なり、ERDDAP™結果の行を一貫した順序で返すことを約束します。 この制約は、ERDDAP'nThreads の実装は効率的ではありません。 しかし、ERDDAP'nThreads は多くの場合に便利です。

しかし、作る方法はありますERDDAP™大量のリクエストを素早く処理できるスケールグリッド/クラスター/フェデレーションERDDAPツイートお問い合わせ  

<パレット>

  • まずはERDDAP™バージョン 2.12,datasets.xml含めることができます。<Palttes> タグ (within)<erddapDatasets>) をオーバーライドする<message.xml の tag 値 (または、タグが in の場合、messions.xml 値に変換します。datasets.xml空の) お問い合わせ これは、利用可能なパレットのリストを変更することができますERDDAP™実行中です。 また、新しいバージョンをインストールしたときに変更を行い、それを持続させることができますERDDAPお問い合わせ 警告: 記載されているパレットdatasets.xmlmessage.xml にリストされているパレットのスーパーセットでなければなりません。それ以外の場合はERDDAP™例外を投げ、処理を停止しますdatasets.xmlお問い合わせ これにより、すべてが確実にERDDAP™インストールは、少なくとも同じコアパレットをサポートしています。 警告:ERDDAP™message.xml で指定されたパレットが実際に存在していることを確認しますが、 リストされているパレットファイルをチェックしません。datasets.xmlお問い合わせ ファイルが残っていることを確認することは、あなたの責任です。

まずはERDDAP™バージョン 2.12, cptfiles サブディレクトリを作る場合ERDDAP™コンテンツディレクトリ,ERDDAP™ディレクトリ内のすべての\*.cptファイルをコピーします。\[トームキャット\]/webapps/erddap/WEB-INF/cptfiles ディレクトリ毎回ERDDAP™スタートアップ したがって、そのディレクトリにカスタム cpt ファイルを置くと、それらのファイルはERDDAP™、新しいバージョンをインストールしても、あなたの部分に余分な努力を払っていませんERDDAPお問い合わせ

警告: カスタムパレットをカスタムパレットに追加する場合ERDDAP™お問い合わせEDDGridFromErddap および/または EDDTableFromErddap データセットERDDAP™すると、ユーザーはカスタムパレットオプションが表示されます。ERDDAP™グラフのWebページを作るが、ユーザーがそれらを使用しようとすると、デフォルトでグラフを取得する (通常レインボー) パレット。 これはイメージがリモートによってなされるためですERDDAP™カスタムパレットがない。 今唯一のソリューションは、リモートをメールすることですERDDAP™管理者は、カスタムパレットを彼/彼女に追加しますERDDAPまたは Chris に電子メールを送信してください。 noaa.gov の John は、パレットが標準に追加されるように要求しますERDDAP™分布。

<変更とgt;

  • ツイート ** <オン変更> ** . . (#onchangeさん) OPTIONALタグは、<dataset> タグdatasets.xmlこのデータセットが作成されるときに行われるアクションを指定する (いつかERDDAP™再起動) このデータセットが何らかの方法で変更される場合。
    • 現在、EDDGridサブクラス、メタデータへの変更、または軸変数への変更 (たとえば、近リアルタイムのデータの新しいタイムポイント) 変更と見なされますが、データセットのリロードは変更と見なされません (自分で) お問い合わせ
    • 現在、EDDTable サブクラスでは、データセットのリロードは変更と見なされます。
    • 現在、アクションの2種類のみが許可されています。
      • ツイート http://" または " https://" お問い合わせ アクションが " で始まる場合 http://" または " https://" ,ERDDAP™送信するHTTP GET指定した URL へのリクエスト。 応答は無視されます。 たとえば、URL は、何かを行うために他の Web サービスを伝えているかもしれません。
        • URLがクエリ部分を持っている場合 (「?」の後に) 、それは既にある必要がありますパーセントエンコードお問い合わせ 特別な文字を制約でエンコードする必要があります (初期 '&' と main 以外の'='制約で) HH が文字の 2 桁の 16 進数値であるフォーム %H に。 通常、あなたはちょうど数の句読点文字を変換する必要があります: % に %25, に %26, 「に %22,<%3C, =%3D, >%3E, +%2B,|に%7C、\[に%5B、\]%5D にスペースを %20 に変換し、#127 を超えるすべての文字を UTF-8 形式に変換し、UTF-8 の各バイトを %HH 形式に変換します。 (プログラマに助けを求める) お問い合わせ 例えば、stationID>「41004」の特長 なるとstationID%3E=%2241004%22 アクセス時にパーセントのエンコーディングが必要ですERDDAPブラウザ以外のソフトウェアを介して。 ブラウザーは通常、パーセントエンコーディングを処理します。 A-Za-z0-9\_-以外のすべての文字をパーセントエンコードする必要があります。~ お問い合わせ () \* は初期 '&' または main をエンコードしません。'='制約で。 プログラミング言語はこれを行うツールを持っています(例えば、参照してください)Javaお問い合わせjava.net.URLEncoderそして、Javaスクリプトの [encodeURIComponent(). . ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent ) ) そしてそこにあります あなたのためのエンコード/デコードをパーセントするウェブサイトお問い合わせ
        • お問い合わせdatasets.xmlXMLファイルで、すべての'&'をエンコードし、'<', '>' は URL の '&', '<', と '>' パーセントエンコーディング後。
        • 例: ブラウザに入力するURL: https://www.company.com/webService?department=R%26D&param2=value2
          あなたが指定する必要があります<onChange> タグを経由 (1行目)
            <onChange>https://www.company.com/webService?department=R%26D&amp;param2=value2</onChange>
      • メール: お問い合わせ アクションが "mailto:" で始まる場合、ERDDAP™データセットが更新/変更されたことを示す後続のメールアドレスに電子メールを送ります。 例えば:<メールアドレス:john.smith@company.com</onChange> あなたが良い理由を持っている場合ERDDAP™他のタイプのアクションをサポートするために、必要なことを記述する電子メールを送ってください。
    • このタグはオプションです。 これらのタグは好きなだけあります。 各アクションのタグの1つを使用して実行します。
    • これはアナログですERDDAP'email/URL サブスクリプション システム, これらのアクションは永続的に保存されません。 (i.e.、それらはEDDオブジェクトにのみ保存されます) お問い合わせ
    • サブスクリプションを削除するには、単に削除します<onChange> タグ。 変更は、データセットが再ロードされる次回の時刻に通知されます。  

<リロードEveryNMinutes>

  • ツイート ** <リロード 毎分> ** . . (#reloadeveryn分) OPTIONALタグは、<dataset> タグdatasets.xmlデータセットが再ロードされる頻度を指定するほぼすべてのデータセットタイプ。 例えば、
    <reloadEveryNMinutes>60</reloadEveryNMinutes>
    • 一般的に、頻繁に変化するデータセット (例えば、新しいデータファイルを取得する) 60分ごとに頻繁にリロードする必要があります。

    • 不均質に変化するデータセットは、例えば1440分ごとに不正確にリロードされるべきです (日 日) または10080分 (ウィークリー) お問い合わせ

    • このタグはオプションですがおすすめです。 デフォルトは10080です。

    • 例:<リロードEveryNMinutes>1440</リロード 毎分>

    • データセットがリロードされると、すべてのファイルが bigParentディレクトリ /キャッシュ/ datasetID ディレクトリは削除されます。

    • これが設定されているものに関係なく、データセットはより頻繁に読み込まれません<loadDatasetsMinMinutes(ロードデータセット) (デフォルト = 15) , で指定されたセットアップ。xmlお問い合わせ そのため、データセットを頻繁にリロードしたい場合、reloadEveryNMinutes と loadDataset の両方を設定する必要があります。 最小値から小値まで

    • reloadEveryNMinutes を loadDatasets と同じ値に設定しないでください。 マイナスは、経過した時間がある可能性があるため、 (例えば) 14:58 または 15:02 ので、データセットは主要なリロードの半分にのみ再ロードされます。 代わりに、より小さい使用 (例えば、10) またはより大きい (例えば、20) リロード EveryNMinutes 値。

    • reloadEveryNMinutesに関係なく、手動で指示できますERDDAP™特定のデータセットをできるだけ早くリロードするフラグファイルお問い合わせ

    • 好奇心旺盛なプログラマのために -- でERDDAP™, すべてのデータセットのリロードは、単一の目的スレッドで処理されます。 フラグファイルやメジャーリロードが見つかられば、1つのスレッドがマイナーリロードを開始 (すべてのデータセットがリロードされる必要があるかどうかを確認する) お問い合わせ 他のスレッドは、データセットの実際のリロードを一度に行います。 これらのスレッドは、すべてのデータセットが最新の状態に保たれていることを確認します。 実際にリロードを行うスレッドは、データセットの新しいバージョンを準備し、それを置換します。 (古いバージョンを基本的に置き換える) お問い合わせ そのため、以下のようなイベントのシーケンスが起こることは非常に可能です。 (それは良いことです) : : :

      1. ERDDAP™データセットのリロードを開始 (新しいバージョンを作る) 背景に。
      2. ユーザ 'A' は、データセットへのリクエストを行います。ERDDAP™データセットの現在のバージョンを使用して、応答を作成します。 (それは良いです。 ユーザの遅延はなく、データセットの現在のバージョンは決して非常に固定されるべきではありません。)
      3. ERDDAP™新しくリロードされたバージョンのデータセットを作成し、新しいバージョンを生産にスワップします。 データセットの新しいバージョンでは、以降の新しいリクエストが処理されます。 一貫性のために、ユーザーは A のリクエストは元のバージョンで満たされています。
      4. ユーザー 'B' は、データセットへのリクエストを生成し、ERDDAP™データセットの新しいバージョンを使用して、応答を作成します。
      5. ユーザ A とユーザ B のリクエストは、 (おそらく A's は最初、多分 B's は最初に終わります) お問い合わせ

誰かに「ふたりのふたりを聞いてみよう!」と言ってもらえる! お問い合わせ そろそろ! データセットのリロードは、必要に応じて多くのスレッドを使用するように設定する必要があります。そのため、すべてが高速で、少しまたは遅れなしで行われます。 はい いいえ。 問題は、一度に複数のデータセットをロードすると、いくつかの新しい問題が発生します。 それらはすべて解決するか、または対処する必要があります。 現在のシステムはよく機能し、管理可能な問題があります (例えば、フラグが通知される前のラグの潜在的な) お問い合わせ (助けが必要な場合は、こちらを参照してください。追加サポートを受けるセクションお問い合わせ) 関連記事更新情報 エバーネミリリス. 応答スレッド内でシステムが動作するので、複数のデータセットが更新される可能性があり、 (フルリロードではなく) 同時に。

積極的な対. 反応

ERDDAP'reload system は proactive -- datasets は reload の直後にリロードされます EveryNMinutes 時刻がアップ (i.e.、彼らは「屋台」になるが、決して非常に屋台になる) データセットがユーザーからのリクエストを受けているかどうか。 お問い合わせERDDAP™データセットは、常に最新で使用可能です。 これは、THREDDSの反応的アプローチとは対照的です。ユーザの要求は、データセットがスタレであるかどうかを確認するためにTHREDDSを指示するものです。 (それは非常に屋台であるかもしれません) お問い合わせ 階段の場合、THREDDS はユーザが待ちます (数分間頻繁に) データセットがリロードされる間。

<更新情報 エバーネミリリス>

  • ツイート ** <アップデートEveryNMillis> ** . . (#updateeverynmillis, オーストラリア) OPTIONALタグは、<dataset> タグdatasets.xml助けるデータセットの種類ERDDAP™非常に頻繁に変更するデータセットとの仕事 (ほぼ毎秒) お問い合わせ いいね!ERDDAP's レギュラー, プロアクティブ, [<リロード 毎分> (#reloadeveryn分) 各データセットを完全にリロードするためのシステム、このオプションの追加システムは、リアクティブです (ユーザーリクエストによってトリガーされる) それが増分されるのでそしてより速く。 (更新が必要な情報を更新するだけ) お問い合わせ 例えば、リクエストをリクエストする場合EDDGridFromDap のデータセットは、最後の更新以来、ミリ秒数の指定された数よりも発生します。ERDDAP™一番左に新しい値があるかどうかが表示されます。 (最初, 通常"time") 寸法と、もしそうなら、ユーザのリクエストを処理する前に新しい値をダウンロードしてください。 このシステムは、データソースの最小限の要求で急速に変化するデータセットを最新の状態に保つことで非常に優れていますが、一部のユーザー要求の処理を少し遅くするコストで。
    • このシステムを使用するには、 (例えば) : : :
      <updateEveryNMillis>1000</updateEveryNMillis>  

直後に<reloadEveryNMinutes(リロード) データセットのタグdatasets.xmlお問い合わせ 指定したミリ秒数が1と同じくらい小さい (データセットが常に最新であることを確認するため) お問い合わせ 0 の値 (デフォルト) または負の数がシステムをオフにします。

  • 増加する性質のために、更新は非常に迅速に完了する必要がありますので、ユーザーは長時間待つ必要はありません。
  • 以前の更新が終了する前に2番目のデータリクエストが到着すると、2番目のリクエストは別の更新をトリガーしません。
  • ドキュメンテーションを通して、これらの新しいインクリメンタル、部分的な更新のための規則的な、完全なデータセットのリロードおよび「更新」のための単語「リロード」を使用しようとします。
  • テスト目的のために、いくつかの診断はlog.txtに印刷されます[<ログレベル> (ログレベル) お問い合わせdatasets.xml"all" に設定します。
  • 特に右端の場合、増分更新を使用する (はじめて) 、例えば、時間、軸は大きいです、置くことができます<reloadEveryNMinutes> より大きい数に (1440?) , 更新は、データセットを最新の状態に保つために作業のほとんどを行うように, そして、フルリロードは、不均一に行われます.
  • Note: この新しいアップデートシステムがメタデータを更新 (例えば、時間actual\_range, time\_coverage\_end, ...) しかし、onChangeをトリガーしません (電子メールまたはURLをタッチ) または変更RSSフィード (おそらくそれは...) お問い合わせ
  • サブクラスを使用するすべてのデータセットEDDGridファイルからそして、EDDTableFromFiles (EDDTableFromFiles) は、: : :
    • 警告: それをディレクトリにコピーすることで、データセットに新しいデータファイルを追加するときERDDAP™見てみると、危険があるERDDAP™部分的に書かれたファイルに気づくでしょう。それを読んでみてくださいが、ファイルが不完全だから失敗します。ファイルを「悪い」ファイルであると宣言し、それを削除します (臨時休業) データセットから。 これを避けるため、 強烈なおすすめ 仮名で新しいファイルをディレクトリにコピーする (例えば, 20150226.ncトンプ) データセットファイルと一致しない 名前Regex (お問い合わせ.nc) ファイル名を正しい名前に変更します (例えば, 20150226.nc) お問い合わせ このアプローチを使うと、ERDDAP™一時的なファイルを無視し、それが完了し、使用準備が整ったら正しく名前付けされたファイルだけに通知します。
    • 既存のデータファイルを修正する場合 (例えば、新しいデータポイントを追加する) ,<updateEveryNMillis> は、変更がアトミカルに表示される場合にうまく機能します。 (瞬時に) ファイルは常に有効なファイルです。 例えば、netcdf-java ライブラリは "classic" の無制限の次元を追加できます。.ncv3 ファイルをアトマイカルに作成します。 <updateEveryNMillis> は変更が行われている間にファイルが無効な場合に悪く動作します。
    • <updateEveryNMillis> は、複数のファイルが短時間で変化するデータセットにうまく機能します。
    • <updateEveryNMillis> は、大量のファイルが短時間で変化するデータセットに不十分動作します。 (変更がアトマイカルに表示されていない場合) お問い合わせ これらのデータセットでは、使用しない方が良い<updateEveryNMillis> と設定するログインお問い合わせERDDAP™データセットをリロードします。
    • <アップデートEveryNMillis> [に関連する情報を更新しない]<subsetVariables>> (#サブセット変数) お問い合わせ 通常、これは問題ではありません。subsetVariables頻繁に変更しないものについての情報を持っている (たとえば、駅名、緯度、経度のリスト) お問い合わせ もし、subsetVariablesデータ変更 (たとえば、新しいステーションがデータセットに追加されると) それから連絡して下さいフラグ URLデータセットについてERDDAP™データセットをリロードします。 その他,ERDDAP™新しいサブセットに気付かない データセットが再読み込みされるまで変数情報 (<reloadEveryNMinutes>).
    • 一般的な推奨事項:
        <reloadEveryNMinutes>1440</reloadEveryNMinutes>  
    <updateEveryNMillis>10000</updateEveryNMillis>
    • ダブル? Linuxコンピュータでは、使用している場合<アップデートEveryNMillis> お問い合わせEDDGridFromFiles または EDDTableFromFiles クラスでは、データセットがロードできない問題が表示される (時折、または一貫して) エラーメッセージ: "IOException: インスタンスの inotify のユーザ制限が到達または複数のオープンファイルに達しました。" 原因はバグがあるかもしれませんJavaこれにより、不正なインスタンスが収集されないようにします。 この問題は避けられますERDDAP™v1.66以上 そのため、最適なソリューションは、最新バージョンを切り替えることです。ERDDAPお問い合わせ 問題が解決しない場合(つまり、実際に大量のデータセットを使用している場合)<updateEveryNMillis>) は、この問題を呼び出して修正できます。
      sudo sysctl fs.inotify.max\\_user\\_watches=65536  
      sudo sysctl fs.inotify.max\\_user\\_instances=1024
      sudo sysctl -p

または、問題が主張している場合は、より高い数字を使用してください。 時計のデフォルトは8192です。 インスタンスのデフォルトは128です。

  • 置くことができます<updateMaxイベント>10</updateMaxイベント> お問い合わせdatasets.xml (トップ付近の他の設定で) ファイル変更の最大数を変更する (デフォルト=10) updateEveryNMillisシステムによって処理されます。 常に最新の状態に保つことが非常に重要であるデータセットには、より大きな数が役立ちます。 詳細はこちらupdateMaxEvents ドキュメントお問い合わせ
  • 好奇心旺盛なプログラマーのために - これらの増分の更新、とは異なりますERDDAP's フルリロードEveryNMinutesシステムでは、ユーザリクエストスレッド内で発生します。 そのため、データセットを同時に更新することができます。 コードがある (そしてロック) 1つのスレッドのみが与えられた時点の任意のデータセットのアップデートで動作していることを確認してください。 複数の同時更新が容易になりました。複数の同時フルリロードが難しくなります。  

<sourceCanConstrainStringEQNE>

  • ツイート ** <ソースCanConstrainStringEQNE> ** . . (#sourcecanconstrainstringeqneさん) EDDTable 内の OPTIONAL タグ<dataset> タグdatasets.xmlソースが = と != 演算子で文字列変数を制約できるかどうかを指定します。
    • EDDTableFromDapSequence の場合、これは外部シーケンス文字列変数のみに適用されます。 ソースは内部のシーケンス変数の制約を処理できないと仮定されます。
    • このタグはオプションです。 有効な値はtrueです (デフォルト) そして偽り。
    • EDDTableFromDapSequence の場合OPeNDAPDRDSサーバー、これはtrueに設定する必要があります (デフォルト) お問い合わせ
    • EDDTableFromDapSequence の場合 Dapper サーバは false に設定します。
    • 例:
        <sourceCanConstrainStringEQNE>true</sourceCanConstrainStringEQNE>  

 

<sourceCanConstrainStringGTLT>

  • ツイート ** <ソースCanConstrainStringGTLT> ** . . (#sourcecanconstrainstringgtlt の使い方) EDDTable 内の OPTIONAL タグ<dataset> ソースが String 変数を制約できるかどうかを指定するタグ<,<=、>、および>=演算子。
    • EDDTableFromDapSequence の場合、これは外部シーケンス文字列変数のみに適用されます。 ソースは内部のシーケンス変数の制約を処理できないと仮定されます。
    • 有効な値はtrueです (デフォルト) そして偽り。
    • このタグはオプションです。 デフォルトはtrueです。
    • EDDTableFromDapSequence の場合OPeNDAPDRDSサーバー、これはtrueに設定する必要があります (デフォルト) お問い合わせ
    • EDDTableFromDapSequence の場合 Dapper サーバは false に設定します。
    • 例:
        <sourceCanConstrainStringGTLT>true</sourceCanConstrainStringGTLT>  

 

<ソースCanConstrainStringRegex>

  • ツイート ** <sourceCanConstrainStringRegex > ソース ** . . (#sourcecanconstrainstringregex ディレクティブ) EDDTable 内の OPTIONAL タグ<dataset> は、ソースが正規表現で文字列変数を制約できるかどうかを指定するタグです。もしそうなら、演算子は何かです。
    • 有効な値は "=~" (お問い合わせDAPスタンダード) お問い合わせ (何度も何度もサポートDAPサーバー) または "" (ソースが正規表現をサポートしていないことを示す) お問い合わせ
    • このタグはオプションです。 デフォルトは "" です。
    • EDDTableFromDapSequence の場合OPeNDAPDRDSサーバー、これは "" に設定する必要があります (デフォルト) お問い合わせ
    • EDDTableFromDapSequence の場合 Dapper サーバー、これは "" に設定する必要があります。 (デフォルト) お問い合わせ
    • 例:
        <sourceCanConstrainStringRegex>=~</sourceCanConstrainStringRegex>  

<ソースCanDoDistinct>

  • ツイート ** <ソースCanDoDistinct> ** . . (#sourcecandodistinctは、) EDDTableFromDatabase 内の OPTIONAL タグ<ソースデータベースが &distinct を扱うべきかどうかを指定する dataset> タグ () ユーザーの問い合わせの制約。
    • このタグはオプションです。 有効な値は、 (ERDDAP™異なる処理; デフォルト) , 部分 (ソースは明確で、ERDDAP™再び扱う) 、およびはい (ソースは区別を扱います) お問い合わせ
    • いいえ、ERDDAP™明確に扱うとき記憶から動く、はい使用して下さい。
    • はいとソースデータベースを使っていると、少しずつ違う処理をします。
    • 部分的には、両方の最悪値を与えます: 異なるデータベースの処理が遅いので、それはメモリの外で実行する可能性がありますので、それは遅くですERDDAPお問い合わせ
    • データベースは、DISTINCTを独自の結果の列だけを要求するリクエストとして解釈します。ERDDAP™結果のソートされた列のリストのリクエストとして解釈します。 これを部分的またははいに設定した場合、ERDDAP™結果をソートするためにデータベースを自動的に指示します。
    • 結果の1つの小さな違い: なし|部分的,ERDDAP™結果の開始時に「」をソートします (non-" の前の文字列) お問い合わせ はい、データベースは (ポストグレスは) 結果の最後に「」をソートする (non-" の後の文字列) お問い合わせ 短い言葉で始まる単語の短い単語の並べ替えにも影響します。 例えば、ERDDAP™「シモン」の前に「シモン」をソートします。
    • 例:
        <sourceCanDoDistinct>yes</sourceCanDoDistinct>  

 

<sourceCanOrderBy>

  • ツイート ** <ソース CanOrderBy> ** . . (#sourcecanorderbyさん) EDDTableFromDatabase 内の OPTIONAL タグ<ソースデータベースが処理すべきかどうかを指定するdataset> タグorderBy (・・・) ユーザーの問い合わせの制約。
    • このタグはオプションです。 有効な値は、 (ERDDAP™ハンドルorderBy (・・・) ;デフォルト) , 部分 (ソースハンドルorderByそして、ERDDAP™再び扱う) 、およびはい (ソースハンドルorderBy (・・・) ) お問い合わせ
    • いいえ、ERDDAP™処理時にメモリが不足しているorderBy (・・・) 、はい使用して下さい。
    • はいとソースデータベースのハンドルを使用している場合orderBy (・・・) ゆっくり使用してください。
    • 部分的には、両方の最悪値を与えます: データベースの処理が遅いので、orderBy (・・・) メモリが遅くなり、メモリが不足している可能性があります。ERDDAPお問い合わせ
    • 結果の1つの小さな違い: なし|部分的,ERDDAP™結果の開始時に「」をソートします (non-" の前の文字列) お問い合わせ はい、データベースは (ポストグレスは) 結果の最後に「」をソートする (non-" の後の文字列) お問い合わせ 短い単語と短い単語から始まる単語のソートにも影響します。 例えば、ERDDAP™"Simons" の前に "Simon" をソートしますが、データベースがどのようにソートするかはわかりません。
    • 例:
        <sourceCanOrderBy>yes</sourceCanOrderBy>  

 

<sourceNeedsExpandedFP\_EQ>

  • ツイート ** <ソースNeedsExpandedFP\_EQ> ** . . (#sourceneedsexpandedfp_eq をフォロー) EDDTable 内の OPTIONAL タグ<dataset> を指定するタグ (ログイン (デフォルト) または false) ソースがクエリで助けが必要な場合<インフォメーション 変数>=<floatingPointValue> (および!=、>=、)<=)。 例えば、
    <sourceNeedsExpandedFP\\_EQ>false</sourceNeedsExpandedFP\\_EQ>
    • いくつかのデータソースの場合、数値クエリは =, !=,<=, または >= は、浮動小数点数で希望どおり動作しない場合があります。 例えば、値が220.20000000000001として保存されると、 longitude=220.2の検索は失敗するかもしれません。
    • 浮動小数点数が少ないため、この問題が発生するコンピュータ内で正確に表されないお問い合わせ
    • ソースの場合NeedsExpandedFP\_EQ true に設定 (デフォルト) ,ERDDAP™この問題を回避するために、データソースに送信されたクエリを修正します。 このセットを真に残すのは、常に安全です。  

<sourceUrl>

  • ツイート ** <sourceUrlツイート ** . . (#ソース) データセットのグローバルに共通するタグ<addAttributes> データのソースである URL を指定します。
    • 例:
        <sourceUrl>https://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/VH/chla/1day</sourceUrl>  
    (しかし、すべての行を1行に置く)
    • インスタグラムERDDAP™, すべてのデータセットは "sourceUrl" ユーザに表示されている結合されたグローバル属性で。
    • ほとんどのデータセットタイプの場合、このタグは必須です。 データセットの種類の説明を参照して、これが必須かどうかを確認します。
    • いくつかのデータセットの場合、別々<sourceUrl>タグは使用できません。 代わりに、あなたは "sourceUrlツイートグローバル属性, 通常グローバルに \>addAttributes<お問い合わせ 実際のソースURLがない場合 (例えば、データがローカルファイルに保存されている場合) 、この属性は、プレースホルダの値だけを持っていることが多いです。例えば、<att name="name"> (ローカルファイル) </att> 。
    • ほとんどのデータセットでは、データを要求するために使用されるURLのベースです。 例えば、DAP.dods, .das, .dds, .html が追加できる URL です。
    • お問い合わせdatasets.xmlXMLファイルで、'&' をエンコードする必要があります。'<', '>' は URL の '&', '<', '>'.
    • ほとんどのデータセットのタイプのため、ERDDAP™オリジナルを追加sourceUrl (ソースコードの「localSourceUrl」) お問い合わせグローバル属性 (ソースコードの「publicSourceUrl」になる場所) お問い合わせ データソースがローカルファイルの場合、ERDDAP™追加するsourceUrlツイート (ローカルファイル) 「セキュリティ上の注意として、グローバルな属性に。 データソースがデータベースの場合、ERDDAP™追加するsourceUrlツイート (ソースデータベース) 「セキュリティ上の注意として、グローバルな属性に。 データセットの一部が非公開を使用している場合sourceUrlお問い合わせ (パソコンがDMZやローカルLANにあるため、) 使える [<変換ToPublicSourceUrl> (#converttopublicsourceurl(コンバート)) ローカルを変換する方法を指定するタグsourceUrls から 公開sourceUrlお問い合わせ
    • ツイートsourceUrlまずはhttp://,https://, ftp://, あるいは他のプレフィックス.https接続は、ソースのデジタル証明書を読んで確認して、ソースが誰であるかを確かめます。 まれに、このチェックはエラー "javax.net.ssl.SSLProtocolException: handhake alert: unrecognized\_name" で失敗することがあります。 これは、使用しているドメイン名に一致しない証明書のドメイン名がおそらく原因です。 内容を読み込むことができます。sourceUrl's は、Web ブラウザーの証明書で、特に "Subject Alternative Name" セクションの "DNS Name" のリストです。

場合によっては、sourceUrl使用しているのは、証明書のドメイン名のエイリアスかもしれません。 例えば、 https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/ このエラーをスローしますが、 https://opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/ , 証明書にドメイン名を使用する, ない. これらのケースのソリューションは、したがって、証明書のドメイン名を見つけて使用することです。 証明書に見つからない場合は、データプロバイダにお問い合わせください。

それ以外の場合、証明書のドメイン名は、名前のグループにすることができます。 この問題や問題が解決しない場合は、Chrisにメールしてください。 noaaa.gov で John が問題を報告します。  

<addAttributes>

  • ツイート ** <addAttributesツイート ** . . (#addattributes(アダットリブリュート)) 各データセット用のOPTIONALタグと、各変数のERDDAP管理者は、データセットとその変数に関連するメタデータ属性を制御します。
    • ERDDAP™データセットのソースから属性を結合 (「ソース属性」) と "addAttributes定義するdatasets.xml (優先する) "combinedAttributes" を作るには、ERDDAP™ユーザは参照します。 したがって、あなたは使用することができますaddAttributessourceAttributes の値を再定義し、新しい属性を追加したり、属性を削除したりします。
    • ザ・オブ・ザ・<addAttributes> タグは 0 以上を閉じます ** <アット> ** 個々の属性を指定するために使用されるサブタグ。
    • 各属性は名前と値で構成されます。 (特定のデータタイプがある。例えば、ダブル) お問い合わせ
    • 与えられた名前の属性は1つだけです。 以上あれば、最後の1つは優先順位です。
    • 値が単一の値か、値のスペース分けされたリストであることができます。
    • シンタックス
      • 注文の注文<att> 内のサブタグaddAttributes重要ではありません。
      • ザ・オブ・ザ・<att> サブタグ形式は
          <att name="*name*" \\[type="*type*"\\] >*value*</att>
      • すべての属性の宛先名は、文字で始まる必要があります (A-Z、a-zの) A-Z, a-z, 0-9, または '\_' の文字のみが含まれている必要があります。
      • もし<att> サブタグは、null の値や値を持ちません。この属性は、結合された属性から削除されます。 例えば、<att name="rows" /> は、結合属性から行を削除します。 例えば、<att name="座標">null</att> はコンバインド属性から座標を削除します。
属性属性 タイプ:
  • [オプション型値]<att> サブタグ (#属性型) 値のデータ型を示します。 デフォルトタイプは文字列です。 文字列属性の例は:
    <att name="creator\\_name">NASA/GSFC OBPG</att>
    • 単一の値の有効なタイプはバイトです (8ビット整数) , ショート (16ビット署名整数) , イン (32ビット署名整数) , 長い (64ビット署名整数) , フロート (32ビット浮動小数点) , ダブル (64ビット浮遊ポイント) , char, 文字列. 例えば、
      <att name="scale\\_factor" type="float">0.1</att>

これらのメモを見るchar データ型お問い合わせ これらのメモを見る長いデータ タイプお問い合わせ

  • スペース分けされた値のリストの有効なタイプ (または単一の値) バイトリスト, ショートリスト, 符号なしショートリスト, charList, intList, longList, floatList, Double リスト。 例えば、
    <att name="actual\\_range" type="doubleList">10.34 23.91</att>  

unsignedShortList では、署名されていないショートカットのリストを指定できますが、対応するUnicode文字のリストに変換されます(例えば、65 67 69" は "A C E" に変換されます。 charList を指定すると、特別な文字(例、スペース、ダブルクォート、バックスラッシュ、<NCCSVファイルのデータセクションにエンコードする#32、または>#127) (例: ", "" または """, "\\", "\n", "\u20ac") お問い合わせ stringList はありません。 文字列を複数行文字列として保存します。 例えば、

<att name="history">2011-08-05T08:55:02Z ATAM - made CF-1.6 compliant.  
2012-04-08T08:34:58Z ATAM - Changed 'height' from double to float.</att>

 

グローバルアトリビュート

  • ツイート ** グローバル・アトリビュート/グローバル<addAttributesツイート ** . . (#グローバルアトリビュート) お問い合わせ <addAttributes> は内部の OPTIONAL タグです<dataset> タグは、データセット全体に適用する属性を変更するために使用されます。

    • ** グローバルな利用<addAttributes> データセットのグローバル属性を変更する。 ** ERDDAP™データセットのソースからグローバル属性を組み合わせる()** ソース属性 )とグローバル addAttributes 定義するdatasets.xml (優先する) グローバルに 結合属性 ** です。ERDDAP™ユーザは参照します。 したがって、あなたは使用することができますaddAttributessourceAttributes の値を再定義し、新しい属性を追加したり、属性を削除したりします。
    • [を見る] ** <addAttributesツイート インフォメーション (#addattributes(アダットリブリュート)) グローバルな変数と変数に適用される <addAttributesツイート ** お問い合わせ
    • FGDCの特長そして、ISO 19115-2/19139 認証取得メタデータ お問い合わせ 普通、ERDDAP™ISO 19115-2/19139とFGDCを自動的に生成します (FGDC-STD-001-1998年) データセットのメタデータから情報を使用して各データセット用のXMLメタデータファイル。 お問い合わせ 良いデータセットメタデータがうまくいくERDDAP-ISO 19115およびFGDCメタデータを生成しました。 データセットのメタデータを改善するために多くの時間と労力を置いてください (とにかく良いことです) お問い合わせ ISO 19115 および FGDC メタデータを生成するために使用されるデータセットメタデータ属性のほとんどは、ACDDメタデータ規格お問い合わせ
    • 多くのグローバル属性は、その中に特別ですERDDAP™それらを探し、さまざまな方法でそれらを使用. 例えば、リンクをinfoUrlデータセットの一覧と、他の場所を含むWebページに含まれているため、ユーザーはデータセットの詳細を見ることができます。
    • ユーザーがデータのサブセットを選択すると、変数の経度、緯度、高度に関連するglobalAttributes (または深さ) および時間範囲 (例えば、南端\_北上、ノーザント\_北上、時間\_coverage\_start、時間\_coverage\_end) 自動的に生成または更新されます。
    • シンプルなサンプルのグローバル<addAttributes> は:
      <addAttributes> 
      <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>
      <att name="infoUrl">https://coastwatch.pfeg.noaa.gov/infog/PH\\_ssta\\_las.html</att>
      <att name="institution">NOAA CoastWatch, West Coast Node</att>
      <att name="title">SST, Pathfinder Ver 5.0, Day and Night, Global</att>
      <att name="cwhdf\\_version" />
      </addAttributes>

空の cwhdf\_version 属性は、ソース cwhdf\_version 属性を引き起こします。 (お問い合わせ) 属性の最終リストから削除される。

  • この情報の提供は、ERDDAP™より良い仕事をし、ユーザーがデータセットを理解するのに役立ちます。 よいメタデータはデータセットを使用可能にします。 不十分なメタデータにより、データセットは使用しません。 メタデータ属性で良い仕事をする時間を入力してください。
特別なグローバル属性ERDDAP™
採用情報
  • 採用情報 そして、 ログイン (お問い合わせパスワードメタデータ規格) サポートを提供するグループまたはグループを認めるお勧めの方法です (確かに、金融) このデータを作成したプロジェクト 例えば、
    <att name="acknowledgment">AVISO</att>

ACDD 1.0 と 1.1 は "acnowledgment" という綴りを使用しました。 (米国の通常のスペル) , しかし、ACDD 1.3 これを「認識」に変更しました (これは、U.K.の通常のスペルです。) お問い合わせ 私の理解は、変更が本質的に事故だったことであり、彼らは確かに変更の修正を認識しなかったことです。 混乱! 「認識」と「認識」を持つ100万ものデータファイルが存在します。 これは、標準に「シンプル」の変更の愚かさを強調し、標準の安定性の必要性を強調します。 ACDD 1.3 のため (これは ACDD のバージョンです。ERDDAP™サポート) 「認識」と言います。ERDDAP™ (特に GenerateDatasets Xmlの) お問い合わせ  

cdm\_altitude\_proxy ディレクティブ
  • cdm\_altitude\_proxy ディレクティブ 高度または深さ変数を持たないEDDTableデータセットのためだけですが、高度または深さのためのプロキシである変数があります (例えば、圧力、シグマ、ボトル番号) この属性を使用して、その変数を識別することができます。 例えば、
    <att name="cdm\\_altitude\\_proxy">pressure</att>  

もし、cdm\_data\_type ディレクティブプロファイルまたはTrajectoryProfileであり、高度または深さの変数はありません。cdm\_altitude\_proxyは定義されます。 cdm\_altitude\_proxy が定義されている場合、ERDDAP™変数に次のメタデータを追加します。\_Coordinate AxisType=Heightとaxis=Z。  

cdm\_data\_type ディレクティブ

CDMはまだ進化しており、再び変化する可能性があります。ERDDAP™関連する詳細と詳細分離されたサンプリングの幾何学 (DSGについて) チャプターCFの1.6メタデータ条約 (以前はCFポイント観測条約と呼ばれる) お問い合わせ

  • データセットのグローバルソース属性またはそのグローバル<addAttributesツイート cdm\_data\_type 属性を含める必要があります。 いくつかのデータセットタイプ (EDDTable のような オビス) 自動的に設定します。
  • お問い合わせEDDGridデータセット、cdm\_data\_type オプションは Grid です。 (デフォルトは、最もよくあるタイプのデフォルトです。EDDGridデータセット) , MovingGrid, Other, Point, Profile, RadialSweep, TimeSeriesProfile, Swath, Trajectory, TrajectoryProfile. 現在、EDDGrid関連するメタデータを指定する必要はありません。また、cdm\_data\_type に一致するデータもチェックしません。 近い将来に変化するでしょう。
  • EDDTable は、CDM ではなく CF の DSG 仕様に従って、 厳格な方法で cdm\_data\_type を使用します。そのため、DSG との一貫性が更新されていないためです。 データセットのメタデータが一致しない場合ERDDAP's cdm\_data\_type の要件 (詳しくはこちら) 、データセットがロードされず、生成されないエラーメッセージお問い合わせ (それはあなたがそれを修正できるように、エラーメッセージが間違っていることを教えてくれるという意味で、それは良いことです。) データセットのデータがデータセットのメタデータのセットアップに一致しない場合 (例えば、時系列データセットの所定の場所に対して複数の緯度値がある場合) 、データに対するリクエストは、応答の誤ったデータを返します。 そのため、この権利をすべて取得してください。

これらのすべてのデータセットについては、条約およびMetadata\_Conventionsグローバル属性はCF-1.6を参照してください。 (CF-1.0、1.1、1.2、1.3、1.4、または1.5) CF-1.6は、Discrete Sampling Geometryに関連する変更を含む最初のバージョンであるため、 (DSGについて) コンベンション

  • ERDDAP™CF DSG と非単純な関係を持つ
  • ERDDAP™有効なDSGファイルであるソースデータセットから有効なDSGデータセットを作ることができます (ツイート) , またはDSGのために設定されていないソースデータセットのうち, メタデータへの変更を介して行うことができます (その一部ERDDAP-DSG設定を指定するためのより一般的なアプローチを提供するために特化) お問い合わせ
  • ERDDAP™データセットをロードすると、検証テストは多く行われます。 cdm\_data\_type を持つデータセットの場合 (またはfeatureType) 属性 正常に読み込みます inERDDAP™, それからERDDAP™データセットがDSG要件を満たしていると言っています (その他、ERDDAP™見つかった最初の問題を説明する例外をスローします。) お問い合わせ 警告: 正常に読み込まれたデータセットは、DSG要件を満たすように表示されます (属性の正しい組み合わせを持っています) , しかし、まだ誤ってセットアップすることができます。, 誤った結果につながります.ncCFおよびCF.ncCFMA 応答ファイル。 (ソフトウェアは、他の方法では賢く、無数です。)
  • データセットのメタデータを見るとERDDAP™, DSG のデータセットはERDDAP'内部形式 (巨大でデータベースのようなテーブル) お問い合わせ DSG フォーマットの1つにはありません (例えば、寸法とメタデータが正しいわけではありません。) , しかし、データセットをDSGデータセットとして扱うために必要な情報はメタデータにあります (例えば、cdm\_data\_type=TimeSeriesとcdm\_timeseries\_variables= aCsvListOfStation関連変数 変数のグローバルメタデータと cf\_role=timeseries\_id) お問い合わせ
  • ユーザーがデータセットのサブセットをリクエストする場合.ncCFシリーズ (ログイン.ncDSGのContiguous Ragged Arrayファイル形式のファイル) または.ncCFMAファイル (は、.ncDSGの多次元配列ファイル形式のファイル) 有効なCF DSGファイルとなります。 警告:ただし、データセットが誤って設定された場合 (メタデータによって行われた約束は真ではありません) , 応答ファイルが技術的に有効になりますが、いくつかの方法では誤りになります.  
EDDTable cdm_data_types
  • EDDTable データセットの場合、cdm\_data\_type オプション (そして関連の条件でERDDAP) お問い合わせ
ポイント
  • ポイント--は関連しない時間および場所で取られた測定のセットのためです。
    • 他のすべての cdm\_data\_types と同様に、Point のデータセットは、経度、緯度、時間変数を持つ必要があります。
プロフィール
  • プロフィール--は1つの緯度の経度の位置、しかし1つの深さですべての取られた測定のセットです (または高度) お問い合わせ データセットは、異なる場所からの7つのプロファイルなど、これらのプロファイルのコレクションであってもよいです。 このcdm\_data\_type は、任意のプロファイル間の任意の論理的な接続を意味しません。

  • 変数の1つ (たとえば、Profile\_number) 変数属性 cf\_role=profile\_id は、プロファイルを一意に識別する変数を識別します。

    <att name="cf\\_role">profile\\_id</att>  

他の変数が適切でないなら、時間変数を使用して検討して下さい。

cdm\_profile\_変数
  • データセットには、グローバルアトリビュートが含まれている必要があります。cdm\_profile\_変数, 値が各プロファイルに関する情報を持つ変数のコンマ区切りリストである場所. 与えられたプロファイルでは、これらの変数の値が定数である必要があります。 例えば、
    <att name="cdm\\_profile\\_variables">profile\\_number,time,latitude,longitude</att>

リストには cf\_role=profile\_id 変数と、プロファイル、時間、緯度、経度に関する情報を含む他のすべての変数が含まれます。 リストには、高度、深さ、または任意の観察変数が含まれていません。  

\[Opinion: cdm\_data\_type=Profile は使用できません。 実際には、与えられたデータセットは通常実際にTimeSeriesProfileのいずれかです (固定位置のプロファイル) または TrajectoryProfile (軌跡に沿ってプロファイル) など、適切に識別される必要があります。\]

タイムシリーズ
  • タイムシリーズ--は測定の順序です (例えば、海水の温度) 1、固定、緯度、経度、深さで取られる (または高度) 所在地。 (「ステーション」として考える) データセットは、これらのTimeSeriesのコレクション(例えば、各3つの異なる場所からのシーケンス)である場合があります。
    • 変数の1つ (例えば, station\_id) 変数属性 cf\_role=timeseries\_id を持ち、ステーションを一意に識別する変数を識別します。
      <att name="cf\\_role">timeseries\\_id</att>
cdm\_timeseries\_変数
  • データセットには、グローバルアトリビュートが含まれている必要があります。cdm\_timeseries\_変数, 値が各ステーションに関する情報を持つ変数のコンマ区切りリストである場所. 指定されたステーションでは、これらの変数の値は定数でなければなりません。 例えば、
    <att name="cdm\\_timeseries\\_variables">station\\_id,station\\_type,latitude,longitude</att>

リストには、cf\_role=timeseries\_id 変数と、駅に関する情報を含む他のすべての変数が含まれている必要があります。これは、ほとんど常に緯度と経度を含む (および高度か深さ、現われれば) お問い合わせ リストには、時間や任意の観察変数が含まれていません。

  • いくつかのモオードブイの場合、データセットには緯度と経度変数の2セットがあります。
    1. 一定の緯度と経度値の1組 (モアリングの固定位置) お問い合わせ インスタグラムERDDAP™, これらの変数を渡すdestinationName緯度と経度の s は、cdm\_timeseries\_variables のリストにこれらの変数を含める。
    2. 各観察に関連する正確な緯度と経度値。 インスタグラムERDDAP™, これらの変数を異なるdestinationNameツイート (e.g.、精密なLatおよび精密 ログイン) cdm\_timeseries\_variables のリストにこれらの変数が含まれていません。 この理由は、理論的観点から、DSG TimeSeriesデータセット、緯度と経度についてです。 (および高度か深さ、現われれば) 駅の場所は定数である必要があります。
TimeSeriesプロファイル
  • TimeSeriesプロファイル--は1、固定された、緯度経度の位置で取られたプロフィールの順序のためです。 各プロファイルは、複数の高度または深さで撮影された測定のセットです。 データセットは、これらのTimeSeriesProfilesのコレクションです。例えば、それぞれ12の異なる場所で撮影されたプロファイルのシーケンスです。
    • 変数の1つ (例えば, station\_id) 変数属性 cf\_role=timeseries\_id を持ち、ステーションを一意に識別する変数を識別します。
        <att name="cf\\_role">timeseries\\_id</att>
    • 変数の1つ (たとえば、Profile\_number) 変数属性 cf\_role=profile\_id は、プロファイルを一意に識別する変数を識別します。
      <att name="cf\\_role">profile\\_id</att>  
      (与えられたプロファイル\_id は、指定された時系列\_id だけにユニークでなければなりません。) 他の変数が適切でないなら、時間変数を使用して検討して下さい。
    • dataset には、グローバルAttribute cdm\_timeseries\_variables が含まれているため、各ステーションに関する情報を持つ変数のコンマ区切りリストである。 指定されたステーションでは、これらの変数の値は定数でなければなりません。 例えば、
      <att name="cdm\\_timeseries\\_variables">station\\_id,station\\_type,latitude,longitude</att>

リストには、 cf\_role=timeseries\_id 変数と、駅に関する情報を含む他のすべての変数が含まれます。これは、ほとんど常に緯度と経度を含みます。 リストには時間、高度、深さ、または任意の観察変数が含まれていません。

  • dataset には、グローバルAttribute cdm\_profile\_variables が含まれているため、各プロファイルに関する情報を持つ変数のコンマ区切りリストが表示される。 与えられたプロファイルでは、これらの変数の値が定数である必要があります。 例えば、
    <att name="cdm\\_profile\\_variables">profile\\_number,time</att>

リストには cf\_role=profile\_id 変数と、プロファイルに関する情報を含む他のすべての変数が含まれている必要があります。 リストには、緯度、経度、高度、深さ、または任意の観察変数が含まれていません。

ゴミ箱
  • ゴミ箱--は軌跡に沿って取られた測定の順序です (空間と時間を通してパス) (例えば、海\water\ は、水を通って移動するように船によって取られた温度) お問い合わせ データセットは、4つの異なる船のそれぞれからのシーケンスなど、これらの軌跡のコレクションであるかもしれません。
    • 変数の1つ (例えば、ship\_id) 属性 cf\_role=trajectory\_id を持たせて、その変数を一意に特定します。
      <att name="cf\\_role">trajectory\\_id</att>
cdm\_trajectory\_変数
  • データセットには、グローバルアトリビュートが含まれている必要があります。cdm\_trajectory\_変数, 値が各軌跡に関する情報を持つ変数のコンマ区切りリストである場所. 与えられた軌跡のために、これらの変数の値は定数である必要があります。 例えば、
    <att name="cdm\\_trajectory\\_variables">ship\\_id,ship\\_type,ship\\_owner</att>

リストには、 cf\_role=trajectory\_id 変数と trajectory に関する情報を持つ他のすべての変数が含まれます。 リストには時間、緯度、経度、または任意の観察変数が含まれていません。

Trajectoryプロファイル
  • Trajectoryプロファイル--は軌跡に沿って取られたプロフィールの順序です。 データセットは、14の異なる船によって撮影されたプロファイルのシーケンスなど、これらのTrajectoryProfilesのコレクションであるかもしれません。
    • 変数の1つ (例えば、ship\_id) 変数属性 cf\_role=trajectory\_id を持たせて、その変数を一意に特定します。
      <att name="cf\\_role">trajectory\\_id</att>
    • 変数の1つ (たとえば、Profile\_number) 変数属性 cf\_role=profile\_id は、プロファイルを一意に識別する変数を識別します。
      <att name="cf\\_role">profile\\_id</att>  
      (与えられたプロファイル\_id は、指定した trajectory\_id にのみユニークでなければなりません。) 他の変数が適切でないなら、時間変数を使用して検討して下さい。
    • データセットには、グローバルAttribute cdm\_trajectory\_variables が含まれている必要があります。値がコンマで区切られた変数のリストで、それぞれの軌跡に関する情報が記載されています。 与えられた軌跡のために、これらの変数の値は定数である必要があります。 例えば、
      <att name="cdm\\_trajectory\\_variables">ship\\_id,ship\\_type,ship\\_owner</att>

リストには、 cf\_role=trajectory\_id 変数と trajectory に関する情報を持つ他のすべての変数が含まれます。 リストには、プロファイル関連の変数、時間、緯度、経度、または任意の観察変数が含まれていません。

  • dataset には、グローバルAttribute cdm\_profile\_variables が含まれているため、各プロファイルに関する情報を持つ変数のコンマ区切りリストが表示される。 与えられたプロファイルでは、これらの変数の値が定数である必要があります。 例えば、
    <att name="cdm\\_profile\\_variables">profile\\_number,time,latitude,longitude</att>

リストには、cf\_role=profile\_id 変数と、プロファイルに関する情報を含む他のすべての変数が含まれます。これは、ほぼ常に時間、緯度、経度を含みます。 リストには、高度、深さ、または任意の観察変数が含まれていません。

その他
  • その他-- 条件がありません。 データセットが他のオプションの1つに合わない場合は、データセットが緯度、経度、時間変数が含まれていない場合に使用します。  
  • "Other" 以外の cdm\_data\_type を持つすべてのEDDTableデータセットには、経度、緯度、時間変数があります。
  • プロファイルを持つデータセットは、高度変数、深さ変数、またはcdm\_altitude\_proxy ディレクティブ変数。
  • 理想的な cdm\_data\_type の全ての要件に適合するデータセットを作成できない場合は、"Point" を使用します。 (少数の条件が) または「その他」 (条件がない) 代わりに。
  • この情報は、ERDDAP™様々な方法では、例えば、主に作るために.ncCFファイル (.ncデータセットのcdm\_data\_typeに関連した一貫性のあるレイド配列表現に対応するファイル) そして、.ncCFMAファイル (.ncデータセットのcdm\_data\_typeに関連した多次元配列表現に対応するファイル) で定義される分離されたサンプリングの幾何学 (DSGについて) チャプターCFシリーズ以前「CFポイント観測条約」と名付けられたメタデータ条約。
  • ヒント: これらのデータセットの場合、正しい設定subsetVariables通常、cdm\_...\_variables属性にリストされているすべての変数の組み合わせです。 たとえば、TimeSeriesProfile では、cdm\_timeseries\_variables と cdm\_profile\_variables を使用します。
contributor\_name
  • contributor\_name (お問い合わせパスワードメタデータ規格) このデータセットに貢献した人、組織、またはプロジェクトを識別するための推奨方法です。 (たとえば、このデータセットの作成者によって再処理される前に、データの元の作成者) お問い合わせ 例えば、
        <att name="contributor\\_name">NOAA OceanWatch - Central Pacific</att>  

"contributor" がデータセットに本当に適用されていない場合は、この属性を省略します。 比較するcreator\_name, これは、資金源に焦点を当てる場合があります.

contributor\_role

"contributor" がデータセットに本当に適用されていない場合は、この属性を省略します。

コンベンション
  • コンベンション (お問い合わせCFシリーズメタデータ規格) 強くお勧めします。 (今後はご期待ください。) この値は、このデータセットが続くメタデータの基準のコンマ区切りのリストです。 例えば:
    <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>  

一般的なメタデータ条約ERDDAP™は:

データセットが追加のメタデータ規格に従っている場合は、Conferences 属性の CSV リストに名前を付けてください。

coverage\_content\_type
  • coverage\_content\_type (お問い合わせISO 19115認証取得メタデータ規格) グリッドされたデータの種類を識別するための推奨方法です (お問い合わせEDDGridデータセット) お問い合わせ 例えば、
    <att name="coverage\\_content\\_type">modelResult</att>  

許可された値は、補助情報、画像、モデル結果、物理的です。 測定精度 (ISO 19115メタデータが生成されるときのデフォルト) 、品質情報、参照情報、およびテーマ分類。 (EDDTable データセットにこのタグを使用しないでください。)

creator\_name
  • creator\_name (お問い合わせパスワードメタデータ規格) 人、組織、またはプロジェクトを識別するための推奨方法 (特定の人物や組織ではない場合) 、作成のためのほとんどの責任 (最近の再処理) このデータについて 例えば、
    <att name="creator\\_name">NOAA NMFS SWFSC ERD</att>  

データが広範囲に再処理された場合 (例えば、レベル2からレベル3または4までの衛星データ) それから通常reprocessorは作成者としてリストされ、元の作成者は指示されますcontributor\_nameお問い合わせ 比較するプロジェクト、それは人、組織、またはプロジェクトを識別することができるので、これはより柔軟です。

creator\_email
  • creator\_email (お問い合わせパスワードメタデータ規格) メールアドレスを識別するための推奨方法です (正しくフォーマットされた) クリエイターに連絡する方法を提供します。 例えば、
    <att name="creator\\_email">erd.data@noaa.gov</att>  
creator\_url
  • creator\_url (お問い合わせパスワードメタデータ規格) データセットを作成した組織のURLを識別するためのRECOMMENDEDの方法は、このデータセットに関するクリエイターの情報を持つURLです (しかし、それはより多くの目的であるinfoUrl) お問い合わせ 例えば、
    <att name="creator\\_url">https://www.pfeg.noaa.gov</att>  
date\_created
  • date\_created (お問い合わせパスワードメタデータ規格) データが最初に作成された日付を識別するための推奨方法です (例えば、このフォームに処理) 、ISO 8601のフォーマットで。 例えば、
    <att name="date\\_created">2010-01-30</att>  

データセットに定期的にデータを追加すると、元のデータが利用可能な最初の日付です。

date\_modified
  • date\_modified (お問い合わせパスワードメタデータ規格) データを最後に修正した日付を識別するための推奨方法です (例えば、エラーが修正されたり、最新のデータが追加されたときに) 、ISO 8601のフォーマットで。 例えば、
    <att name="date\\_modified">2012-03-15</att>  
date\_issued
  • date\_issued (お問い合わせパスワードメタデータ規格) データは、ISO 8601形式で、最初に他の人に利用できる日付を識別するための推奨方法です。 例えば、
    <att name="date\\_issued">2010-07-30</att>  

たとえば、データセットには、date\_created2010年1月30日(日)に公開されましたが、2010年7月30日(日)に公開されました。date\_issuedより少なく一般に使用されるよりdate\_createdそして、date\_modifiedお問い合わせ お問い合わせdate\_issued省略し、同じと仮定されるdate\_createdお問い合わせ

グローバルdrawLandMask
  • drawLandMask お問い合わせ これは、使用した OPTIONAL のグローバル属性です。ERDDAP™ (メタデータ規格なし) データセットの Make A Graph フォームの "Draw Land Mask" オプションのデフォルト値を指定します。 ( datasetID .グラフ) と、データのマップを要求する URL の &.land パラメーター。 例えば、
    <att name="drawLandMask">over</att>  

詳細はこちらdrawLandMaskプロフィールお問い合わせ

featureType
  • featureType (お問い合わせCFシリーズメタデータ規格) IGNORED または REPLACED です。 データセットの場合cdm\_data\_type ディレクティブお問い合わせERDDAP™自動的にそれを使用して作成しますfeatureType属性。 そのため、追加する必要はありません。

ただし、使用している方はEDDTableFromNcCFファイル続くファイルからデータセットを作成するCFシリーズ 分離されたサンプリングの幾何学 (DSGについて) スタンダード, ファイル自体は持っている必要がありますfeatureType正しく定義されるように、ERDDAP™ファイルを正しく読み込むことができます。 そのタイプのファイルに対するCF DSG要件の一部です。  

歴史・歴史
  • 歴史・歴史 (お問い合わせCFシリーズそして、パスワードメタデータ規格) データが受け継がれているすべての処理ステップの行でRECOMMENDEDの複数行文字列グローバル属性です。 例えば、
    <att name="history">2011-08-05T08:55:02Z CMOR: Rewrote data to comply with CF standards.  
    2012-04-08T08:34:58Z CMOR: Converted 'height' type from 'd' to 'f'.</att>
    • 理想的には、各ラインにISO 8601:2004があります (Eメール) フォーマット日時Z (例:2011-08-05T08:55:02Z) 処理ステップの説明に従って。
    • ERDDAP™既に存在していない場合は、これを生成します。
    • 既に存在する場合、ERDDAP™既存の情報に新しい情報を付加します。
    • クライアントがデータを元のソースにバックトラックできるようにするため、履歴は重要です。
infoUrl
  • infoUrl このデータセットの詳細については、WebページのURLでREQUIREDグローバル属性です。 (通常、ソース機関のウェブサイトで) お問い合わせ 例えば、
    <att name="infoUrl">http://www.globec.org/</att>
    • データセットのグローバルソース属性またはそのグローバル<addAttributesツイート この属性を含める必要があります。
    • infoUrlクライアントが元のソースからデータについてもっと調べることができるので、それは重要です。
    • ERDDAP™リンクを表示infoUrlデータセットのデータアクセスフォーム ( datasetID .html拡張子) , グラフのWebページを作る ( datasetID .グラフ) ほかのWebページ
    • URLがクエリ部分を持っている場合 (「?」の後に) 、それは既にある必要がありますパーセントエンコードお問い合わせ 特別な文字を制約でエンコードする必要があります (初期 '&' と main 以外の'='、かどうか) HH が文字の 2 桁の 16 進数値であるフォーム %H に。 通常、あなたはちょうど数の句読点文字を変換する必要があります: % に %25, に %26, 「に %22,<%3C, =%3D, >%3E, +%2B,|に%7C、\[に%5B、\]%5D にスペースを %20 に変換し、#127 を超えるすべての文字を UTF-8 形式に変換し、UTF-8 の各バイトを %HH 形式に変換します。 (プログラマに助けを求める) お問い合わせ 例えば、stationID>「41004」の特長 なるとstationID%3E=%2241004%22 アクセス時にパーセントのエンコーディングが必要ですERDDAPブラウザ以外のソフトウェアを介して。 ブラウザーは通常、パーセントエンコーディングを処理します。 A-Za-z0-9\_-以外のすべての文字をパーセントエンコードする必要があります。~ お問い合わせ () \* は初期 '&' または main をエンコードしません。'='お問い合わせ プログラミング言語はこれを行うツールを持っています(例えば、参照してください)Javaお問い合わせjava.net.URLEncoder
      そして、Javaスクリプトの [encodeURIComponent(). . ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent ) ) そしてそこにあります あなたのためのエンコード/デコードをパーセントするウェブサイトお問い合わせ
    • お問い合わせdatasets.xmlXMLファイルで、すべての'&'をエンコードし、'<', '>' は URL の '&', '<', と '>' パーセントエンコーディング後。
    • infoUrlユニークです。ERDDAPお問い合わせ 任意のメタデータ規格ではありません。
所属機関
  • 所属機関 (お問い合わせCFシリーズそして、パスワードメタデータ規格) このデータのソースである機関の名前の短いバージョン(通常、頭字語、通常は、<20文字) 例えば、
    <att name="institution">NASA GSFC</att>
    • データセットのグローバルソース属性またはそのグローバル<addAttributesツイート この属性を含める必要があります。
    • ERDDAP™データセットのリストを表示する際に、施設が表示されます。 機関名が20文字以上ある場合は、データセットの一覧で最初の20文字のみ表示されます。 (しかし、隣接する「?」アイコンの上にマウスカーソルを置くことで、施設全体を見ることができます。) お問い合わせ
    • 機関をリストに追加する場合<categoryAttributesツイート お問い合わせERDDAPお問い合わせセットアップ。xmlファイル、ユーザーは、同じ機関からデータセットを簡単に見つけることができますERDDAP's ホームページの「カテゴリによるデータセットの検索」。
キーワード
  • キーワード (お問い合わせパスワードメタデータ規格) 単語と短いフレーズの推奨コンマ区切りリストです (例えば、GCMDの特長 科学キーワード) 一般的な方法でデータセットを記述し、データセットの他の知識を仮定しない (例えば、海図データには海図データが含まれる) お問い合わせ 例えば、
    <att name="keywords">ano, circulation, coastwatch, currents, derived, Earth Science &gt; Oceans &gt; Ocean Circulation &gt; Ocean Currents, eastward, eastward\\_sea\\_water\\_velocity, experimental, hf radio, meridional, noaa, northward, northward\\_sea\\_water\\_velocity, nuevo, ocean, oceans, radio, radio-derived, scan, sea, seawater, velocity, water, zonal</att>  

お問い合わせdatasets.xmlは、XML ドキュメント、文字と、<キーワードのような属性の , と > (例:GCMDサイエンスキーワードの > 文字) &amp としてエンコードする必要があります。<, >, それぞれ. データセットが読み込まれるときERDDAP,

  • 「地球科学 >」は、その欠けている任意のGCMDキーワードの開始に追加されます。
  • GCMDのキーワードはタイトルケースに変換されます (i.e.、最初の文字は大文字化されます) お問い合わせ
  • キーワードはソート順に並べ替えられ、新しい文字は削除されます。  
keywords\_vocabulary
  • keywords\_vocabulary (お問い合わせパスワードメタデータ規格) キーワード属性の単語/フレーズのガイドラインに従っている場合 (例えば、GCMDサイエンスキーワード) , ここにそのガイドラインの名前を置く. 例えば、
    <att name="keywords\\_vocabulary">GCMD Science Keywords</att>  
ライセンス
  • ライセンス (お問い合わせパスワードメタデータ規格) ライセンスおよび/または使用制限により、堅く推奨されるグローバル属性です。 例えば、
    <att name="license">\\[standard\\]</att>
    • もし "\[スタンダード\]" 属性値で発生し、標準で置換されます。ERDDAP™ライセンスから<標準ライセンス> タグERDDAPお問い合わせ \[トームキャット\]/webapps/erddap/WEB-INF/classes/gov/noa/pfel/erddap/util/messages.xml ファイル。  
Metadata\_Conventions
  • Metadata\_Conventions 外部からのACDD 1.0の特長 (で識別されたMetadata\_Conventionsとして "Unidataデータセット ディスカバリーv1.0) メタデータ規格。 属性値は、このデータセットによって使用されるメタデータ条約のコンマ区切りのリストでした。 データセットが ACDD 1.0 を使用した場合、この属性は STRONGLY RECOMMENDED です。
    <att name="Metadata\\_Conventions">COARDS, CF-1.6, Unidata Dataset Discovery v1.0</att>  

しかし、ERDDAP™ACDD-1.3をお勧めします。 お問い合わせACDD-1.3 を使用するデータセットを切り替える、使用のMetadata\_Conventions強烈な記述: ちょうど使用 [<コンベンション> (#イベント) 代わりに。

processing\_level
プロジェクト
  • プロジェクト (お問い合わせパスワードメタデータ規格) データセットが一部であるプロジェクトを識別するためのOPTIONAL属性です。 例えば、
    <att name="project">GTSPP</att>  

データセットがプロジェクトの一部でない場合には、この属性を使用しないでください。 比較するcreator\_name、これはプロジェクトに焦点を当てています (複数のプロジェクトに関与する可能性のある人や組織ではない) お問い合わせ

publisher\_name
  • publisher\_name (お問い合わせパスワードメタデータ規格) このデータセットを公開している人物、組織、プロジェクトを識別するための推奨方法です。 例えば、
    <att name="publisher\\_name">JPL</att>  

たとえば、別の人やグループの場合、出版社です。編集者データセットと、あなただけのデータを保存しているERDDAPお問い合わせ 「パブリッシャー」がデータセットに実際に適用されていない場合、この属性を省略します。 比較するcreator\_name, 出版社は、おそらくデータを変更または再処理しなかった; 出版社は、新しい会場で利用可能なデータを作るだけです.

publisher\_email
  • publisher\_email (お問い合わせパスワードメタデータ規格) メールアドレスを識別するための推奨方法です (たとえば、john\_smith@great.org) 出版社に連絡する方法を提供します。 例えば、
    <att name="publisher\\_email">john\\_smith@great.org</att>  

「パブリッシャー」がデータセットに実際に適用されていない場合、この属性を省略します。

publisher\_url
  • publisher\_url (お問い合わせパスワードメタデータ規格) データセットを公表する組織のURLを識別するためのRECOMMENDEDの方法は、このデータセットに関するパブリッシャーの情報を含むURLです。 (しかし、それはより多くの目的であるinfoUrl) お問い合わせ 例えば、
    <att name="publisher\\_url">https://podaac.jpl.nasa.gov</att>  

「パブリッシャー」がデータセットに実際に適用されていない場合、この属性を省略します。

real\_time
  • real\_time グローバルな String 属性 (あらゆる標準から) これはリアルタイムのデータセットであるかどうかを示します。 例えば、
    <att name="real\\_time">true</att>  

これが false の場合 (デフォルト) ,ERDDAP™ファイルが作成される必要のあるファイルタイプのリクエストに対するレスポンスをキャッシュします。ERDDAP™応答をユーザーに送信し、最大15分間再利用を開始できます。 (例:.nc, .png) お問い合わせ これがtrueに設定されている場合、ERDDAP™応答ファイルをキャッシュしないようにし、新しく作成したファイルを常に返します。

sourceUrl属性属性
  • sourceUrl データのソースの URL を持つグローバル属性です。 例えば、
    <att name="sourceUrl">https://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS</att>  
    (しかし、すべての行を1行に置く)
    • ERDDAP™通常、このグローバル属性を自動的に作成します。 2つの例外はEDDTableFromですHyraxファイルとEDDTableFromThreddsFiles.
    • ソースがローカルファイルであり、ファイルが組織によって作成されている場合は、
        <att name="sourceUrl">(local files)</att>
    • ソースがローカルデータベースであり、組織によってデータが作成されている場合は、
        <att name="sourceUrl">(local database)</att>
    • sourceUrlクライアントがデータを元のソースにバックトラックできるようにするため、重要です。
    • sourceUrlユニークです。ERDDAPお問い合わせ 任意のメタデータ規格ではありません。
standard\_name\_vocabulary
  • standard\_name\_vocabulary (お問い合わせパスワードメタデータ規格) 変数から制御された語彙の名前を識別するためのRECOMMENDED属性ですstandard\_names は取られます。 例えば、
    <att name="standard\\_name\\_vocabulary">CF Standard Name Table v77</att>  

バージョン77の場合CF標準名表お問い合わせ  

subsetVariables
  • subsetVariables (EDDTable データセットのみ) comma-separated リストを指定できる RECOMMENDED のグローバル属性です。<dataVariable>> (#データ変数) destinationNames は、限られた値の変数を識別する (別の方法:各値が多くの重複を持っている変数) お問い合わせ 例えば、
    <att name="subsetVariables">station\\_id, longitude, latitude</att>  

この属性が存在する場合、データセットは datasetID .subset ウェブページ (すべてのデータセットリストのリンク) これにより、ユーザーはデータのさまざまなサブセットを素早く簡単に選択できます。

  • データセットが読み込まれるたびに、ERDDAPディスク上のロードとストアは、すべての異なるテーブル () サブセットの組み合わせ 変数の変数の値。ERDDAP™読むことができますsubsetVariables非常にすぐにテーブルおよびプロセス (特に、大量のデータファイルを読むか、データベースや他の外部サービスからデータを取得することと比較して) お問い合わせ
  • これにより、ERDDAP™3つのことを行うため:
    1. それは許可しますERDDAP™データアクセスフォームのドロップダウンリストに可能な値のリストを置く、グラフのWebページを作成し、.subset Webページ。
    2. それは許可しますERDDAP™そのデータセット用の.subset Webページを提供する。 そのページは興味深いので、これらの変数の値の有効な組み合わせを簡単に見つけることができます。いくつかのデータセットといくつかの変数は非常に困難です。 (ほとんど不可能) お問い合わせ その後、すべてのユーザが明確に要求する () サブセット 変数データは高速になります。
    3. これらの変数のサブセットを参照するユーザリクエストがある場合、ERDDAP™すぐに読むことができますsubsetVariablesご要望に応じます。 それは時間と努力のトンを節約することができますERDDAPお問い合わせ
  • 注文の注文destinationNames を指定するとソート順が決定されます。 datasetID .subset Web ページは、通常、最も重要な変数を最初に指定します。 たとえば、複数のステーションのタイムシリーズデータを含むデータセットの場合、たとえば、
        <att name="subsetVariables">station\\_id, longitude, latitude</att>  

Station\_id で値がソートされるようにします。

  • 明らかに、変数が含まれているあなたの選択ですsubsetVariablesリスト、しかし提案された使用法はあります:

一般的には、必要な変数を含むERDDAP™データセットのデータアクセスフォームのオプションのドロップダウンリストを表示する (.html拡張子) グラフ作成 (.グラフ) サイトマップ

一般的には、データセットの機能に関する情報を含む変数 (駅、プロフィール、および/または trajectories から、特にcdm\_timeseries\_変数,cdm\_profile\_変数,cdm\_trajectory\_変数) お問い合わせ これらの変数にはいくつかの異なる値しかないので、ドロップダウンリストでうまく動作します。

個々の観察に関連するデータ変数は含まれていません (例えば、時間、温度、塩分、電流速度) お問い合わせsubsetVariablesリスト。 これらの変数にはあまりにも多くの異なる値があるので、ドロップダウンリストは読み込みが遅くなり、作業が困難になります (作業しない) お問い合わせ

  • これらの変数の異なる組み合わせの数が約1,000,000より大きい場合、制限を考慮する必要があります。subsetVariables1,000,000未満の異なる組み合わせの数を減らすために指定する。そうしないと、 datasetID .subset Web ページをゆっくりと生成できます。 極端な場合、データセットはロードできませんERDDAP™異なる組み合わせのリストを生成するため、あまりにも多くのメモリを使用します。 もしそうなら、変数をいくつか削除する必要があります。subsetVariablesリスト。
  • 1つのサブセット変数の異なる値の数が約2万を超える場合、その変数をリストに含まないことを考慮する必要があります。subsetVariables;そうでなければ、それは送信するのに長い時間かかります datasetID .subset, datasetID .グラフ、および datasetID .html ウェブページ。 また、Macでは、スクロールバーの欠如のために500以上のアイテムでドロップダウンリストから選択をするのは非常に困難です。 妥協は: ユーザーがドロップダウンリストから値を選択する可能性がない場合、リストから変数を削除します。
  • それぞれのデータセットをテストして、subsetVariables設定は大丈夫です。 ソースデータサーバが遅く、長すぎる場合 (または失敗) データをダウンロードするには、指定された変数の数を減らすか、削除するsubsetVariablesグローバル属性。
  • サブセット 変数は非常に有用です。 データセットが適している場合は、作成してくださいsubsetVariables属性。
  • EDDTableFromの特長SOS自動的に追加します
        <att name="subsetVariables">station\\_id, longitude, latitude</att>  

データセットが作成されるとき。

  • 警告可能:ユーザーが使用している場合 datasetID .subset Web ページでは、キャリッジリターンまたは改行文字を持つ値を選択します。 datasetID .subset が失敗します。ERDDAP™一部の HTML の詳細のため、この問題を回避することはできません。 いずれの場合も、データからキャリッジリターンと改行文字を削除することはほぼ常に良い考えです。 EDDTable なら、問題を解決するために。subsetVariablesDataTableメソッドERDDAPトラブルの原因となるデータ値を検出し、メールに値がオフエンドの一覧で警告をメールします。 お問い合わせ setup.xml で指定されたメールアドレスをメールに送信します。 そういうわけで、何を固定する必要があるか知っています。
  • プリ生成されたサブセットテーブル。 普通、時ERDDAP™データセットをロードし、それは明確に要求します () サブセット変数は、データソースからのデータテーブルを、通常のデータリクエストを介して行います。 場合によっては、データソースからこのデータは利用できず、データソースサーバーからのデータソースから取得することは困難です。 もしそうなら、情報でテーブルを情報に供給することができます。.jsonまたは .csv ファイルの名前 トームキャット /content/erddap/サブセット/ datasetID .json (または .csv) お問い合わせ プレゼントの場合ERDDAP™データセットをロードしてサブセットデータのソースとして使用すると、一度読みます。
  • 読みながらエラーが発生した場合は、データセットがロードできません。
  • 同じカラム名は必須です。 (例えば、同じ場合) として<subsetVariables>, しかし, 列 MAY 任意の順序で.
  • MAY には追加の列があります (削除され、新しく冗長行が削除されます) お問い合わせ
  • 値が不足しているのは、値が不足している (偽の数字のような -99) お問い合わせ
  • .jsonファイルは、Unicode文字をうまく作成するのに少し難しいかもしれません。.jsonファイルを作成すると簡単に作成できます。ERDDAPお問い合わせ
  • .csv ファイルは、ISO 8859-1 文字のみで使用できます。 .csv ファイルには、最初の行と後続行のデータに列名が記載されている必要があります。
  • 巨大なデータセットまたはいつ<subsetVariables> は誤って設定されており、Too Much DataやOutOfMemoryエラーが発生すると、値のコンビネーションの表が十分に大きくなる可能性があります。 解決策は、変数をリストから削除することです。<subsetVariables> 多数の値がある場合、またはそのテーブルのサイズが妥当であるまで必要に応じて変数を削除してください。 エラーに関係なく、エラーの部分ERDDAP™それを使うsubsetVariablesシステムがうまく機能しない (e.g.、Webページは非常にゆっくりと読み込みます) 行が多すぎるとき (例:百万円以上) そのテーブルに。
  • subsetVariablesユーザーが制約で使用できる変数を指定すると、つまりデータセットのサブセットをリクエストする方法は何もありません。ERDDAP™制約が変数のいずれかを参照できるようにします。
タイムユニット

時間とタイムスタンプコラムはISO 8601:2004を持っているべきです (Eメール) フォーマットされた date+time Z 文字列 (例えば、1985-01-31T15:31:00Z) お問い合わせ  

ニュース
  • ニュース (お問い合わせCFシリーズそして、パスワードメタデータ規格) データセットの長い説明を持つREQUIREDグローバル属性(通常は)<500文字) 例えば、
    <att name="summary">VIIRSN Level-3 Standard Mapped Image, Global, 4km, Chlorophyll a, Daily. The Visible and Infrared Imager/Radiometer Suite (VIIRS) is a multi-disciplinary instrument that flies on the National Polar-orbiting Operational Environmental Satellite System (NPOESS) series of spacecraft, including the NPOESS Preparatory Project (NPP).</att>
    • データセットのグローバルソース属性またはそのグローバル<addAttributesツイート この属性を含める必要があります。
    • クライアントがタイトルよりも多くの情報を持っているデータセットの説明を読み、データセットが何であるかを迅速に理解できるようにするため、要約は非常に重要です。
    • 助言:要約を書いて下さい従って通りに会うか、または同僚にデータセットをある任意人に記述するために働きます。 含めることを忘れないでください5つのWと1つのH: 誰がデータセットを作成しましたか? 収集した情報は? 収集したデータはいつですか? 収集した場所 なぜ回収されたのか? 収集方法は?
    • ERDDAP™データセットのデータアクセスフォームの要約を表示 ( datasetID .html拡張子) , グラフのWebページを作る ( datasetID .グラフ) ほかのWebページERDDAP™FGDCおよびISO 19115文書を作成する場合の要約を使用して下さい。
testOutOfDate
  • testOutOfDate (オプションERDDAP- 特定のグローバルメタデータ属性、標準からではなく) 単純に定義された方法で、近リアルタイムのデータセットのデータが最新のものとみなされた場合、now- nユニット 例えば、now-通常、時刻値の24-48時間後に表示されます。 予測データについては、今すぐ使用してください + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nユニット , 例えば,現在+6日間予報データ, 将来的には8日間. (詳細はこちらnow- nユニット 構文の説明お問い合わせ) データセットの最大時間値が指定された時間よりも最新である場合、データセットは最新のものとみなされます。 指定された時間よりも最大時間値が古い場合、データセットは最新のものとみなされます。 最新のデータセットでは、データソースの問題が想定されているため、ERDDAP™最近の時点からデータにアクセスできません。

ザ・オブ・ザ・testOutOfDate値が列として表示されます。allDatasetsデータセットお問い合わせERDDAPお問い合わせ また、outOfDate インデックスを計算するために使用されます。これは別のカラムです。allDatasetsデータセット。 インデックスが<1、データセットは最新のものと見なされます。 インデックスが<=1、データセットは最新のものとみなされます。 インデックスが<=2、データセットは非常に古いと見なされます。

ザ・オブ・ザ・testOutOfDate値も使うERDDAP™生成する https://yourDomain/erddap/outOfDateDatasets.html サイトマップ (サンプル) データセットを表示する<testOutOfDate> タグ、データセットは、その日付の日付によってランク付けされます。 ファイルタイプを変更する場合 (.html から .csv,.jsonlCSV,.nc,.tsv, ...) 異なるファイル形式でその情報を得ることができます。

可能であれば、生成データセットXml追加するtestOutOfDateグローバルな属性addAttributesデータセットの この値は、GenerateDatasetsXml に利用可能な情報に基づく提案です。 値が適切でないと変更します。

ここの「最新」は、非常に異なっています [<リロード 毎分> (#reloadeveryn分) , 最新を最新にする方法を扱いますERDDAPデータセットの知識はあります。 ザ・オブ・ザ・<testOutOfDate> システムでは、ERDDAPデータセットの知識は最新です。 お問い合わせ<testOutOfDate> 取引は: データのソースに誤って何かがあるように思われます, より多くの最近のデータがアクセスできないためにERDDAPお問い合わせ

タイトル
  • タイトル (お問い合わせCFシリーズそして、パスワードメタデータ規格) データセットの短い説明を持つREQUIREDグローバル属性(通常は)<=95 文字) 例えば、
    <att name="title">VIIRSN Level-3 Mapped, Global, 4km, Chlorophyll a, Daily</att>
    • データセットのグローバルソース属性またはそのグローバル<addAttributesツイート この属性を含める必要があります。
    • タイトルは、提示されたすべてのデータセットのリストが重要であるため、重要ですERDDAP (検索結果以外の) アルファベット順にデータセットをリストします。 そのため、データセットの順序を指定したい場合、または一緒にグループ化されたデータセットがある場合は、そのようにタイトルを作成する必要があります。 データセットの多くのリスト (例えば、カテゴリ検索に対応する) , フルリストのサブセットを表示し、異なる順序で. そのため、各データセットのタイトルは、それぞれに立つ必要があります。
    • タイトルに「DEPRECATED」という言葉が含まれている場合 (すべての資本文字) すると、データセットは検索で下位になります。  
<axisVariable>
  • ツイート ** <axisVariableツイート ** . . (#軸変数) 次元を記述するのに使用されています (「軸」とも呼ばれる) お問い合わせ お問い合わせEDDGridデータセット、1つ以上axisVariableタグは必須です。dataVariableツイートすべての軸変数を共有/使用して下さい。 (なぜ? 彼らがそうでないならば?)
    データ変数の各次元の軸変数である必要があります。 軸変数は、データ変数がそれらを使用する順番で指定される必要があります。 (EDDTable データセットは使用できません)<axisVariable> タグ 肉体化された例は:

  <axisVariable>
      <sourceName\>MT</sourceName>
      <destinationName\>time</destinationName>
      <addAttributes>
        <att name="units">days since 1902-01-01T12:00:00Z</att>
      </addAttributes>
  </axisVariable>

<axisVariable> 次のサブタグをサポートしています。

<sourceName\>
  • ツイート<sourceName\> (#ソース名) -- 変数のデータソースの名前。 これは名前です。ERDDAP™データソースからデータを要求する場合に使用します。 これは名前です。ERDDAP™データがデータソースから返されたときに探します。 ケース感度です。 お問い合わせ
<destinationName\>
  • ツイート<destinationName\> (#目的地名) 変数の名前は、表示され、使用する変数の名前です。ERDDAP™ユーザー。
    • これはオプションです。 不在の場合、sourceName使用しています。
    • 暗号化やオッズを変更できるので便利です。sourceNameお問い合わせ
    • destinationName場合の敏感です。
    • destinationNames はレターから始める必要があります (A-Z、a-zの) 0 以上の文字でフォローしてください。 (A-Z、a-z、0-9、および\_) お問い合わせ ('-' が許可される前にERDDAP™バージョン1.10.) この制限により、軸変数名が同じようにすることができます。ERDDAP™、応答ファイル、およびプログラミング言語を含むこれらのファイルが使用されるすべてのソフトウェアで (お問い合わせPython,MatlabとJavaスクリプト) 変数名に類似する制限がある場合。
    • インスタグラムEDDGridデータセット、経度、緯度、高度、深さ、時間軸変数は特別です。  
axisVariable <addAttributes>
  • ツイート<addAttributes>> (#変数-addributes) 属性の OPTIONAL セットを定義する ( お名前 (必須) パスワード バリュー ) 変数のsource's属性に追加され、変数のコンバインド属性を作成します。 変数のソース属性または<addAttributes> 含めるscale\_factorおよび/またはadd\_offset属性は、その値がクライアントに配布する前にソースからデータを解凍するために使われます。 (プロフィール 値 = ソース 値 \*scale\_factor+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +add\_offset) お問い合わせ unpacked 変数は同じデータ型になります (例えば、フロート) としてscale\_factorそして、add\_offset値。  
<dataVariable>
  • ツイート ** <dataVariableツイート ** . . (#データ変数) お問い合わせ (ほぼすべてのデータセット) 内のタグ<データ変数を記述するために使用されるdataset> タグ。 このタグのインスタンスが1つ以上ある必要があります。 肉体化された例は:

  <dataVariable>
      <sourceName\>waterTemperature</sourceName>
      <destinationName\>sea\_water\_temperature</destinationName>
      <dataType>float</dataType>
      <addAttributes>
        <att name="ioos\_category">Temperature</att>
        <att name="long\_name">Sea Water Temperature</att>
        <att name="standard\_name">sea\_water\_temperature</att>
        <att name="units">degree\_C</att>
      </addAttributes>
  </dataVariable>

<dataVariable> 次のサブタグをサポートしています。

<sourceName>
  • ツイート<sourceName>> (#ソース名) -- 変数のデータソースの名前。 これは名前です。ERDDAP™データソースからデータを要求する場合に使用します。 これは名前です。ERDDAP™データがデータソースから返されたときに探します。 ケース感度です。 お問い合わせ
グループ

CF は CF v1.8 でグループのサポートを追加しました。 ~2020年以降NetCDF変数をグループに入れるツールが.ncファイル。 実際には、これは変数がグループを識別する長い名前を持っていることを意味します (ツイート) 変数名、例えば、group1a/group2c/varName )。ERDDAP™変数の "/" の変換でグループをサポート<sourceName> 変数の "\_" に<destinationName>, 例えば,group1a\_group2c\_varName . (すると、グループが構文の慣習よりもはるかに多くないことを認識する必要があります。) 変数がリストされているときERDDAP™, グループ内のすべての変数が一緒に現れます, 地下グループを模倣します.\[お問い合わせERDDAP™, かなり GenerateDatasets Xmlは、グループを持っているソースファイルでも実行できません。サンプルファイルをChrisにメールで送信してください。 noaaa.gov のジョン。\]

EDDTableFromFiles データセットは、特別にエンコードされた、擬似使用することができますsourceNames は、データ変数となるグローバル属性を促進するために、例えば、新しいデータ変数を定義します。 お問い合わせこのドキュメントお問い合わせ

HDF構成

まずはERDDAP™v2.12,EDDGridFromNcFilesとEDDGridからNcFiles 未梱包で「構造」からデータを読み込むことができます.nc4と4.hdf4ファイル。 構造からある変数を識別するため、<sourceNameツイート フォーマットを使用する必要があります。 フル構造名称 | 会員名 、例えばgroup1/myStruct|メンバー

固定値のソース名

EDDTable データセットでは、変数を作成したい場合 (単一、固定価値を使って) ソースデータセットにないのは、次のようにします。

    <sourceName>=*fixedValue*</sourceName>  

初期の等しい記号は指示しますERDDAP™固定する 値が続く。

  • 数値変数の場合、固定値が単一のfinite値かNaNでなければなりません (場合の無感覚、例えば、\=NaN) お問い合わせ
  • 文字列変数の場合、固定値がシングルでなければなりません。JSONスタイルの文字列 (\ 文字でエスケープされた特別な文字で) , 例, \="My \"special" 文字列" .
  • タイムスタンプ変数の場合は、固定値を数値として指定します。"seconds since 1970-01-01T00:00:00Z"そして使用して下さい 1970-01-01T00:00:00Z以来のunit=seconds。

その他のタグ<dataVariable> これは通常の変数だったかのように動作します。 例えば、0.0の固定値で高度という変数を作成する (フローティング) , 使用:

<sourceName>=0</sourceName>
<destinationName\>altitude</destinationName>
<dataType>float</dataType>

異常な状況では、actual\_rangeaddAttribute, 宛先の期待値と宛先の値を上書きしますマックス (そうでなければ固定が等しい バリュー) お問い合わせ  

スクリプト SourceNames/派手な変数

まずはERDDAP™v2.10, でEDDTableFromFiles (EDDTableFromFiles) は、,EDDTableFromデータベースまたはEDDTableFromFileNames(ファイル名)データセット、<sourceName> できます 表現 (単一の値を評価する式) 、フォーマットを使用して下さい

    <sourceName>=*expression*</sourceName>  

またはスクリプト (単一の値を返す一連のステートメント) 、フォーマットを使用して下さい

    <sourceName>=*script*</sourceName>  

ERDDAP™返信するApache プロジェクト Java表現言語 (ジエクセル) (ライセンス:パスワード) 式を評価し、スクリプトを実行します。 与えられた新しい変数の計算は、すべての行に対して繰り返し、結果の1行以内に行われます。 式とスクリプトは、Java- とJavaScript のような構文はどれも使うことができます。 JEXLに組み込まれたオペレータとメソッドお問い合わせ スクリプトはメソッドを使うこともできます (関数) これらのクラスから:

  • カレンダー2, これは、静的のためのラッパーです。, 時間 - カレンダー関連の方法 com.cohort.util.Calendar2 (ライセンス) お問い合わせ 例えば、 カレンダー2.parseToEpochSeconds ( sourceTime, 日付 タイムフォーム ) ソースを解析する dateTimeFormat 文字列を経由してタイム文字列を返し"seconds since 1970-01-01T00:00:00Z" (エポックSeconds) 二重価値。
  • 数学、ほとんどすべての静的、数学関連の方法のためのラッパーですjava.lang. は、 数学お問い合わせ 例えば、Math.atan2 ( y、x ) 長方形の座標を取る (y、x) 極座標を返す (二重の配列\[r, テタ\]) お問い合わせ
  • 数学2, これは、ほぼすべての静的のためのラッパーです, com.cohort.utilの数学関連のメソッド. 数学2 (ライセンス) お問い合わせ 例えば、 数学2.roundTo ( d、nPlaces ) d を小数点の右側に指定した数字に丸めます。
  • 文字列は、静的、文字列関連のすべてのメソッドへのアクセスを提供します。java.lang. は、 ストリングお問い合わせ 文字列オブジェクトERDDAP™式とスクリプトは、関連するどれでも使用できるJavajava.lang で記述される方法。 文字列のドキュメント。 例えば String.valueOf (ログイン) 二重値dを文字列に変換します ("+d" を使うこともできますが) お問い合わせ
  • ストリング2, これは、com.cohort.util.String2の静的、文字列および配列関連のメソッドのほとんどのためのラッパーです (ライセンス) お問い合わせ 例えば String2.zエロパッド ( 数値, nDigits ) 数値文字列の左に 0 's を追加して、数字の総数が nDigits になります。 (例: String2.zエロパッド (「6」、2) "06" を返す) お問い合わせ
  • ログインソースのデータテーブルの現在の行にある様々な列からデータにアクセスするための非静的な方法があります。 例えば、 row.columnString (「年」) "year" 列から文字列、whereas、 row.column の値を読みます。 ログイン (「年」) "year" 列から値を整数として読み込みます。

セキュリティ上の理由から、式やスクリプトは、6以外の他のクラスを使用することはできません。ERDDAP™デフォルトブラックリストを作成すると、この制限を強制します (すべてのクラスをブラックリストする) そしてホワイトリスト (上記の6つのクラスを具体的に許可する) お問い合わせ 他のメソッドやクラスが必要な場合は、Chris にリクエストを送信してください。 noaaa.gov のジョン。

ソリューション

EDDTableFromFiles データセットの場合、非常に最小限にしかありません。 (おそらく顕著) これらの変数からのデータのリクエストのスローダウン。 EDDTableFromDatabase では、これらの変数(&longitude0360>30&longitude0360 など)の制約を含むリクエストに対して、膨大な速度のペナルティがあります。<40) 制約がデータベースに通過できないため、データベースははるかに多くのデータを返す必要があります。ERDDAP™ (それは非常に時間の消費です) そのためにERDDAP™新しい変数を作成し、制約を適用できます。 最悪の場合を避けるため (データベースに渡される制約がない場合) ,ERDDAP™データベースがテーブルのコンテンツ全体を返す必要はありませんので、エラーメッセージをスローします。 (これをバイパスしたい場合は、常に真の非スクリプト列に制約を追加します。例えば、&time<3000-01-01.) そのため、EDDTableFromDatabase を使うと、データベースの派生したカラムを作るのは、sourceName=スクリプトERDDAPお問い合わせ

表現方法の概要 (またはスクリプト) 使用される:

集計データに対するユーザーの要求に対応するため、ERDDAP™ソースファイルの一連のデータを取得します。 各ソースファイルが生の表を生成する (ソースからストレート) データ。ERDDAP™その後、生データの表、行ごとに行、式やスクリプトを毎行ごとに一度評価し、その式やスクリプトを持つ新しいカラムを作成するsourceNameお問い合わせ

生成データセットXml

GenerateDatasets を生成することに注意してください。 変数を作成する必要があるときXmlは完全に気にしません<sourceName>==== パスワード </ / / /sourceName>。 変数を作成する必要があります。datasets.xml手で。

式例:

式を使用して新しいデータ列を作成するデータ変数のいくつかの完全な例を示します。 これらの例が期待しています。 (それらのバリエーション) 全式由来の約95%をカバーsourceNameお問い合わせ

「日付」を分け、"time"列を統一した時間列に:
    <dataVariable>
<sourceName>=Calendar2.parseToEpochSeconds(row.columnString("date") + "T" +
row.columnString("time") + "Z", "yyyy-MM-dd'T'HH:mm:ss'Z'")</sourceName>
<destinationName>time</destinationName>
<dataType>double</dataType>
<addAttributes>
<att name="units">seconds since 1970-01-01</att>
</addAttributes>
</dataVariable>

お問い合わせsourceName式は新しい"time""date" から文字列値を連結することでカラム (yyyy-MM-dd) そして、"time" (HH:mm:ss) ソースファイルの各行の列、およびその文字列を変換することによって"seconds since 1970-01-01" (エポックSeconds) 二重価値。

または、各データセットのソース日付と時刻の列の特定の形式に対処する時間フォーマット文字列をカスタマイズする必要があります。 時間単位の文書お問い合わせ

技術的に、使用する必要はありません カレンダー2.parseToEpochSeconds () 組み合わせた date+time を epochSeconds に変換します。 date+time String を渡すだけでERDDAP™フォーマットを指定する(例: yyyy-MM-dd'T'H:mm:ss'Z' は、ユニットの属性で指定します。 しかし、epochSeconds への変換には重要な利点があります。 同様に、EDDTableFromFiles は、各ファイル内の時間値の範囲を容易に追跡し、時間制約があるリクエストに応答するときに特定のファイルを見るかどうかを迅速に決定できます。

関連する問題は、別の年、月、日付、時間、分、秒のソースから統一された日付+時刻の列を作成する必要があります。 解決策は非常に似ていますが、多くの場合、フィールドの多くのゼロパッドが必要になるので、例えば月 (1 - 12) ・日時 (1 - 31) 常に2つの数字を持っています。 年、月、日付を含む例を示します。

    <sourceName>=Calendar2.parseToEpochSeconds(row.columnString("year") + 
String2.zeroPad(row.columnString("month"), 2) +
String2.zeroPad(row.columnString("date"), 2), "yyyyMMdd")</sourceName>

関連する問題は、ソーステーブルの別の度、分、秒の列にデータを結合することにより、統一された緯度または経度列を作成する必要があります。 例えば、

    <sourceName>=row.columnInt("deg") + row.columnInt("min")/60.0 + 
row.columnInt("sec")/3660.0</sourceName>
0〜360°の経度値で "lon" という名前のカラムを -180 - 180° から値で "longitude" という名前のカラムに変換
    <dataVariable>
<sourceName>=Math2.anglePM180(row.columnDouble("lon"))</sourceName>
<destinationName>longitude</destinationName>
<dataType>double</dataType>
<addAttributes>
<att name="units">degrees\\_east</att>
</addAttributes>
</dataVariable>

お問い合わせsourceName式は、ソースファイルの各行の "lon" 列から二重値を変換することによって、新しい "longitude" カラムを作ります (想定値 0~360値) と、その値を -180 から 180 倍の値に変換することによって。

代わりに-180 - 180°のソースの経度値を0 - 360°に変換する場合は、使用

    <sourceName>=Math2.angle0360(row.columnDouble("lon"))</sourceName>

二度変数のネーミング: データセットに2つの縦度変数がある場合、使用をお勧めします。destinationName= -180 - 180°変数の縦度destinationName=経度0360 (と longName=\"経度 0-360°") 0 - 360°変数の場合。 特定の経度範囲内のデータを検索するために、ユーザーが時々高度な検索を使用するので、これは重要です。 この検索は、すべてのデータセットの-180 - 180°値が一貫してある場合、より良い機能になります。 また、dataset の geospatial\_lon\_min, geospatial\_lon\_max, Westernmost\_Easting と Easternmost\_Eastings のグローバル属性は一貫した方法で設定されます。 (経度値 -180 から 180°) ;;;

"tempF" という名前のカラムを度\_ の温度値に変換 F 列に "tempC" と温度の度\_ Cの:
    <dataVariable>
<sourceName>=(row.columnFloat("tempF")-32)\\*5/9</sourceName>
<destinationName>tempC</destinationName>
<dataType>float</dataType>
<addAttributes>
<att name="units">degrees\\_C</att>
</addAttributes>
</dataVariable>

お問い合わせsourceName式は float の度\_ を変換することで新しい "tempC" カラムを作る ソースファイルの各行の "tempF" 列からフロートの度\_ への F 値 C値。

データセットは元の温度を両方持つことができることに注意してください F変数および新しい臨時雇用者 別の変数を持つことによってC変数

    <sourceName>tempF</sourceName>
風速と「方向」列を u,v コンポーネントで 2 列に変換
  • u 変数を作るためには、使用して下さい
    <sourceName>=row.columnFloat("speed") \\* Math.cos(row.columnFloat("direction"))</sourceName>
  • v 変数を作成するには、
    <sourceName>=row.columnFloat("speed") \\* Math.sin(row.columnFloat("direction"))</sourceName>

または、u、v を与えられる:

  • 速度変数を作るためには、使用して下さい
    <sourceName>=Math.atan2(row.columnDouble("v"), row.columnDouble("u"))\\[0\\]</sourceName>
  • 方向変数を作成するには、
    <sourceName>=Math.toDegrees(Math.atan2(row.columnDouble("v"), row.columnDouble("u"))\\[1\\])</sourceName>
スクリプト例:

スクリプトを使う例は、式だけではなく、sourceNameお問い合わせ スクリプトは、式とは対照的に、しばしば必要とされないことを期待しています。 この場合、目標は非NaN欠損値を返すことです (・99) 特定の範囲の外の温度値のため。 スクリプトは "="" の後の部分であることに注意してください。

    <dataVariable>
<sourceName>=var tc=row.columnFloat("tempC"); return tc&gt;35 || tc&lt;-5? -99.0f : tc\\*9/5+32;</sourceName>
<destinationName>tempF</destinationName>
<dataType>float</dataType>
<addAttributes>
<att name="units">degrees\\_F</att>
</addAttributes>
</dataVariable>
堅い旗

式やスクリプトが定義されているものを変更する場合sourceName, 設定する必要があります。堅い旗データセットのためERDDAP™データセットのキャッシュされた情報をすべて削除し、すべてのデータファイルを再読み込み (新しい式やスクリプトを使う) 次回はデータセットをロードします。 代わりに、あなたは使用することができますダスDdsこれは、ハードフラグを設定することと同じです。

パーセントエンコード

これはほとんど関連していません。 式やスクリプトが書かれているのでdatasets.xml, これは、XML ドキュメントです。, パーセントは、任意のエンコードをエンコードする必要があります。<、\>、および式とスクリプト内の文字<, >, & .

一般的な問題

一般的な問題は、変数を作成することです。sourceNameパスワード パスワード しかし、データの結果の列は、値が不足しているだけです。 あるいは、新しい列の行が欠落している値があり、そうでないと思われます。 根本的な問題は、何かが表現と間違っていることです。ERDDAPそのエラーを欠落した値に変換します。 問題を解決するため、

  • 問題がどうなるかを調べるために、式を見てみましょう。
  • お問い合わせログインそれぞれの新しいカラムの作成時に生成された最初のエラーメッセージが表示されます。

一般的な原因は次のとおりです。

  • 間違った場合を使用しました。 表現とスクリプトは、ケースの機密性です。
  • クラスの名前を省略します。 例えば、Math.abs を使う必要があります。 () , ちょうどabs () お問い合わせ
  • 変換をタイプしなかった。 例えば、パラメータ値のデータ型が文字列で、二重値の場合、「+d」で文字列を2倍に変換する必要があります。
  • 式内のカラム名は、ファイル内のカラム名に正確に一致しません。 (または、名前は、いくつかのファイルで異なる可能性があります) お問い合わせ
  • 式に構文エラーがあります (例えば、欠落または追加 ') . . .

あなたが立ち往生または助けが必要な場合, 詳しくはこちらをご覧ください。追加サポートを受けるセクションお問い合わせ

<destinationName>
  • ツイート<destinationName>> (#目的地名) -- 変数の名前を表示し、使用する変数の名前ERDDAP™ユーザー。
    • これはオプションです。 不在の場合、sourceName使用しています。
    • 暗号化やオッズを変更できるので便利です。sourceNameお問い合わせ
    • destinationName場合の敏感です。
    • destinationNames はレターから始める必要があります (A-Z、a-zの) 0 以上の文字でフォローしてください。 (A-Z、a-z、0-9、および\_) お問い合わせ ('-' が許可される前にERDDAP™バージョン1.10.) この制限により、データ変数名が同じようにすることができます。ERDDAP™、応答ファイル、およびプログラミング言語を含むこれらのファイルが使用されるすべてのソフトウェアで (お問い合わせPython,MatlabとJavaスクリプト) 変数名に類似する制限がある場合。
    • EDDTable データセットでは、経度、緯度、高度 (または深さ) 、および時間データ変数は特別です。  
<データデータ タイプ及びgt;
  • ツイート<データタイプ> (#データ型) -- ソースから来るデータ型を指定します。 (場合によっては、例えば、ASCIIファイルからデータを読み込むと、ソースからのデータが保存されるかを指定します。)
    • これは、他のデータセットの種類や信号によって要求されます。 これらを要求するデータセットタイプdataVariables は:EDDGridFromXxxFiles, EDDTableFromXxxFiles, EDDTableFromM からWFS, EDDTableFromNOS, EDDTableFromSOSお問い合わせ ソースから情報を取得するため、他のデータセットタイプはこのタグを無視します。  
    • 有効な値は標準のどれかですERDDAP™データの種類ボオラン (詳しくはこちら) お問い合わせ dataType の名前は case-pathy です。  
booleanデータ
  • 「ブーリアン」特別なケースです。
    • 内部的に、ERDDAP™booleans が不足している値を保存できず、ほとんどのファイルタイプが booleans をサポートしていないため boolean 型をサポートしていません。 また、DAPbooleans をサポートしていないので、 boolean 変数をクエリする標準的な方法はありません。
    • データの「boolean」を指定する タイプdatasets.xmlboolean 値が保存され、バイトとして表されます。 0=false, 1=true, 127=missing\_valueお問い合わせ
    • 数値値を使用して制約を指定できます。 (例えば "isAlive=1") お問い合わせ
    • ERDDAP™管理者は「boolean」データを使用する必要があります タイプdatasets.xmlお問い合わせERDDAP™データソースとやり取りする方法 (例えば、リレーショナルデータベースから boolean 値を読み、 0, 1, または 127 に変換) お問い合わせ  
  • ソースファイルのdataTypeからデータ変数を変更したい場合 (例えば、短い) 他のデータへ データセットの型 (例えば、int) 、使用しません<dataType> したいものを指定する。 (いくつかの種類のデータセットで動作します。) 代わりに:
    • 使用条件<dataType> ファイル内のものを指定する (例えば、短い) お問い合わせ
    • お問い合わせ<addAttributes> 変数の場合は、scale\_factor新規データと属性 タイプ: (例えば、int) たとえば1の値、
            <att name="scale\\_factor" type="int">1</att>  
dataVariable <addAttributes>
  • ツイート<addAttributes>> (#変数-addributes) -- 属性のセットを定義する ( お名前 (必須) パスワード バリュー ) 変数のsource's属性に追加され、変数のコンバインド属性を作成します。 これはオプションです。 変数のソース属性または<addAttributes> 含めるscale\_factorおよび/またはadd\_offset属性は、その値がクライアントに配布する前にソースからデータを解凍するために使われます。 unpacked 変数は同じデータ型になります (例えば、フロート) としてscale\_factorそして、add\_offset値。
変数<addAttributes>
  • ツイート ** 変数属性/変数<addAttributesツイート ** . . (#変数-addributes) お問い合わせ<addAttributes> は OPTIONAL のタグです<axisVariable> または<dataVariable> 変数の属性を変更するタグ。

    • ** 変数を使う<addAttributes> 変数の属性を変更する。 ** ERDDAP™データセットのソースから変数の属性を結合します()** ソース属性 ) と変数の addAttributes 定義するdatasets.xml (優先する) 変数の " 結合属性 ** 「ERDDAP™ユーザは参照します。 したがって、あなたは使用することができますaddAttributessourceAttributes の値を再定義し、新しい属性を追加したり、属性を削除したりします。

    • [を見る] ** <addAttributesツイート インフォメーション (#addattributes(アダットリブリュート)) グローバルな変数と変数に適用される <addAttributesツイート ** お問い合わせ

    • ERDDAP™さまざまな方法でこれらの属性の多くを探し、使用します。 例えば、colorBar の値は変数を経由して利用できるように要求されます。WMS、地図が一貫したcolorBarsと作ることができるように。

    • 経緯、緯度、高度 (または深さ) 変数と時間変数適切なメタデータを自動的に取得 (例えば、ユニット) お問い合わせ

    • サンプル<addAttributes> データ変数の場合:

        <addAttributes>
              <att name="actual\_range" type="doubleList">10.34 23.91</att>
              <att name="colorBarMinimum" type="double">0</att>
              <att name="colorBarMaximum" type="double">32</att>
              <att name="ioos\_category">Temperature</att>
              <att name="long\_name">Sea Surface Temperature</att>
              <att name="numberOfObservations" />
              <att name="units">degree\_C</att>
        </addAttributes>

空の numberOfObservations 属性は、source NumberOfObservations 属性を引き起こします。 (お問い合わせ) 属性の最終リストから削除される。

  • この情報の提供は、ERDDAP™より良い仕事をし、ユーザーがデータセットを理解するのに役立ちます。 よいメタデータはデータセットを使用可能にします。 不十分なメタデータにより、データセットは使用しません。 メタデータ属性で良い仕事をする時間を入力してください。
特別な変数属性に関するコメントERDDAP: : :
actual\_range

<att name="actual\_range" type="floatList"\>0.17 23.58</att>

  • この属性は、CDCについてCOARDSそして、CF 1.7+のメタデータ規格。
  • 現時点では、変数の宛先データ型と同じデータ型の2つの値の配列であり、実際の値を指定する必要があります。 (理論的または許可されていない) その変数のデータの最小値と最大値。
  • データが満載の場合scale\_factorおよび/またはadd\_offset,actual\_range未梱包の値と同じデータ型である必要があります。
  • 一部のデータソース (例えば、すべてのEDDTableFrom... ファイルデータセット) ,ERDDAP™決定するactual\_range各変数のセットactual\_range属性。 他のデータソースを使って (例えば、リレーショナルデータベース、Cassandra、DAPパー,Hyrax) 、それは範囲を計算するためにソースのために面倒なか、または面倒かもしれませんERDDAP™リクエストしません。 この場合は、設定できるのなら最適ですactual\_range (特に経度、緯度、高度、深さ、時間変数) 追加することでactual\_range各変数の属性 [<addAttributes>> (#addattributes(アダットリブリュート)) このデータセットについてdatasets.xml例えば、

<att name="actual\_range" type="doubleList"\>-180 180</att>

  • 数値について時間と時刻変数、指定された値は関連するソースでなければなりません (目的地なし) 数値値。 例えば、ソースタイムの値が「1985-01-01」から保存されると、actual\_range1985-01-01以降は「日」で指定してください。 また、定期的に更新されるリアルタイムデータに対して、NOW を 2 番目の値として参照したい場合、NaN を使用する必要があります。 例えば、1985-01-17 のデータ範囲を NOW まで指定するには、

<att name="actual\_range" type="doubleList"\>16 NaN</att>

  • お問い合わせactual\_range既知の (either によって)ERDDAP™それを計算するか、またはあなたがそれを追加することによって<addAttributes>)、ERDDAP™データアクセスフォームでユーザーに表示します ( datasetID .html拡張子) グラフのWebページを作る ( datasetID .グラフ) FGDC および ISO 19115 メタデータを生成する際に、そのデータセットで使用します。 また、最後の7日間の時間actual\_rangeデフォルト時刻サブセットとして使用されます。
  • お問い合わせactual\_range既知の, ユーザーは使用することができますツイート () そして最高 () 関数リクエストでは、非常に便利です。
  • すべてのEDDTableのために...データセットは、actual\_range知られている (またはそれを指定するとERDDAP™それを計算する) ,ERDDAP™外部のデータへのリクエストを素早く拒否することができます。 たとえば、データセットの最小時間値が1985-01-17に相当する場合、1985-01-01から1985-01-16までの全てのデータのリクエストは、エラーメッセージ「マッチング結果が生成されないクエリ」で即座に拒否されます。 これは、actual\_rangeメタデータの非常に重要な部分は、保存できるためERDDAP™多くの努力を払って、多くの時間を節約します。 そして、このハイライトは、actual\_range値は、データの実際の範囲よりも狭くなりてはならない。そうしないと、ERDDAP™誤って言うかもしれない 実際に関連データがある場合に「マッチングデータがない」。
  • ユーザーがデータのサブセットを選択し、メタデータを含むファイルタイプを要求する場合 (例えば、.nc) ,ERDDAP™変更するactual\_range応答ファイルでは、サブセットの範囲を反映します。
  • 詳しくはこちらdata\_minそして、data\_max, これは、指定する代替方法であるactual\_rangeお問い合わせ しかし、これらは今では非推奨であるactual\_rangeCF 1.7+ で定義します。  
カラーバー属性

色のバーに提案されたデフォルト属性を指定するいくつかのオプション変数属性があります (データを画像の色に変換するために使用される) この変数の場合。

  • 現時点では、この情報は、griddap およびtabledapカラーバーを使用するイメージを要求する時はいつでも。

  • たとえば、緯度経度格子データがマップのカバレッジとしてプロットされると、カラーバーはデータ値が色に換算する方法を指定します。

  • これらの値を持つことで、ERDDAP™時間やその他の寸法値が異なる場合でも、異なる要求間で一貫したカラーバーを使用する画像を作成する。

  • これらの属性名は、ERDDAPお問い合わせ メタデータ規格ではありません。

  • カラーバーに関連する属性は次のとおりです。

    • colorBarMinimum colorBarの最小値を指定します。 例えば、

    <att name="colorBarMinimum" type="double"\>-5</att>

    • データが満載の場合scale\_factorおよび/またはadd\_offset、指定して下さいcolorBarMinimum未梱包値として。
    • より低いデータ値colorBarMinimum同じ色で表されますcolorBarMinimum値。
    • 属性はタイプ="double"データ変数の型に関係なく。
    • 値は通常、素敵なラウンド番号です。
    • ベストプラクティス: 最小限のデータ値よりも若干高い値をお勧めします。
    • デフォルト値はありません。
  • colorBarMaximum colorBarで最大値を指定します。 例えば、

<att name="colorBarMaximum" type="double"\>5</att>

  • データが満載の場合scale\_factorおよび/またはadd\_offset、指定して下さいcolorBarMinimum未梱包値として。
  • データ値よりも高いcolorBarMaximum同じ色で表されますcolorBarMaximum値。
  • 属性はタイプ="double"データ変数の型に関係なく。
  • 値は通常、素敵なラウンド番号です。
  • ベストプラクティス: データの最大値よりも少し下がる値をお勧めします。
  • デフォルト値はありません。
  • カラー バーパレット colorBarのパレットを指定します。 例えば、
        <att name="colorBarPalette">WhiteRedBlack</att>
  • すべてERDDAP™これらの標準パレットをサポートするインストール: BlackBlueWhite、BlackRedWhite、BlackWhite、BlueWhiteRed、LightRainbow、OceanDepth、虹、RedWhiteBlue、逆虹、地理学Depth\[追加された v1.74\]、白黒、白黒、白黒。
  • インストール済みの場合追加パレットそれらのいずれかを参照することができます。
  • この属性が存在しない場合、デフォルトは\-1\*の場合BlueWhiteRedです。colorBarMinimumパスワードcolorBarMaximum; それ以外の場合は、デフォルトは虹です。
  • カラーバースケール colorBarのスケールを指定します。 例えば、
        <att name="colorBarScale">Log</att>
  • 有効な値は、線形とログです。
  • 値がログの場合、colorBarMinimum0 以上でなければなりません。
  • この属性が存在しない場合、デフォルトは線形です。
  • カラー バー連続 colorBarが色を連続したパレットを持っているか、colorBarがいくつかの離散色を持っているかどうかを指定します。 例えば、
        <att name="colorBarContinuous">false</att>
  • 有効な値は、真と偽の文字列です。
  • この属性が存在しない場合、デフォルトはtrueです。
  • カラーマンション colorBarのセクションのデフォルト番号を指定します。 例えば、
        <att name="colorBarNSections" type="int">6</att>
  • 有効な値は正の整数です。
  • この属性が存在しない場合、デフォルトは\-1です。ERDDAP™colorBarの範囲に基づいてセクションの数を選ぶ。
WMS

変数のための主要な条件はによってアクセス可能であるためにERDDAPお問い合わせWMSサーバは:

  • データセットは、EDDGridデータセット
  • データ変数はグリッド変数である必要があります。
  • データ変数は、経度と緯度軸変数を持つ必要があります。 (その他の軸変数はオプションです。)
  • -180 と 180 の間、いくつかの経度値がある必要があります。
  • ザ・オブ・ザ・colorBarMinimumそして、colorBarMaximum属性は必須です。 (その他のカラーバーの属性はオプションです。)
data\_minそして、data\_max
  • data\_min そして、 data\_max お問い合わせ これらは、世界海洋循環実験で定義された非推奨変数属性です (ログイン) メタデータの記述。 例えば、

    <att name="data\_min" type="float"\>0.17</att>
    <att name="data\_max" type="float"\>23.58</att>

    • ご利用の際には、actual\_rangeの代わりにdata\_minそして、data\_max, のでactual\_rangeCF仕様で定義されています。
    • 現時点では、変数の宛先データ型と同じデータ型であり、実際の値を指定する必要があります。 (理論的または許可されていない) その変数のデータの最小値と最大値。
    • データが満載の場合scale\_factorおよび/またはadd\_offset,data\_minそして、data\_max未梱包のデータ型を使用して、値をアンパックする必要があります。  
変数drawLandMask
  • drawLandMask お問い合わせ これは、使用した OPTIONAL 変数属性です。ERDDAP™ (メタデータ規格なし) データセットの Make A Graph フォームの "Draw Land Mask" オプションのデフォルト値を指定します。 ( datasetID .グラフ) と、データのマップを要求する URL の &.land パラメーター。 例えば、
        <att name="drawLandMask">under</att>  

詳細はこちらdrawLandMaskプロフィールお問い合わせ

エンコーディング
  • \_エンコーディング
    • この属性は String 変数でのみ使用できます。
    • この属性は強く推奨されます。
    • この属性は、NetCDFユーザーガイド (ログイン) お問い合わせ
    • 内部にERDDAP™文字列は2バイトの文字のシーケンスで、Unicode UCS-2 文字セットお問い合わせ
    • 多くのファイルタイプは、文字列内の1バイトの文字のみをサポートするため、この属性が必要で、関連する文字を識別します。 チャート (AKAコードページ) UCS-2 文字セットおよび/またはエンコーディング システムから描画された 256 文字のセットに 256 個の可能な値をマッピングする方法を定義します。UTF-8の特長 (1文字につき1バイトから4バイトまで) お問い合わせ
    • \_Encoding の値は、ケースインセンティブです。
    • 理論では、ERDDAP™\_Encoding の識別子をサポートできるIANAリスト、しかし練習で、ERDDAP™現在サポートしている
      • ISO-8859-1の特長 (アンダースコアではなくダッシュを持っていることに注意してください) ユニコードの最初の256文字と同一である利点がある、
      • UTF-8。
    • ソースファイルを読むとき、デフォルト値は、デフォルトはUTF-8であるnetcdf-4ファイルを除き、ISO-8859-1です。
    • これは、ISO-8859-1と異なるcharsetsやエンコーディングを使用している多くのソースファイルが、charsetやエンコーディングを識別しないため、継続的な面倒な問題です。 たとえば、多くのソースデータファイルには、Windows上でMicrosoft Wordからコピーして貼り付けられたメタデータがあり、ASCIIハイフンとアポストトロフィの代わりに、Windows固有のcharsetから派手なハイフンとアポストトロフィがあります。 これらの文字は、オッズ文字または'?' として表示されます。ERDDAPお問い合わせ  
ファイルAccessBaseUrl
  • ファイルAccessBaseUrlとファイルアクセスサフィックス 任意の標準からない非常にまれに使用される属性です。 EDDTable 列に Web アクセス可能なファイルのファイル名がある場合 (たとえば、画像、ビデオ、またはオーディオファイル) 、加えることができます
    <att name="fileAccessBaseUrl">*someBaseURL*</a>  

ベース URL を指定する (終了 /) ファイル名を完全なURLにするために必要です。 カラムが.pngファイルを参照しているような異常なケースでは、値が ".png" に欠けているため、追加できます。

    <att name="fileAccessSuffix">*someSuffix*</a>  

(例えば、<@fileAccessSuffixさんのツイート</a>) ファイル名を完全な URL にするために追加するサフィックスを指定します。 それから.htmlTable応答,ERDDAP™ファイル名はURL全体へのリンクとして表示されます。 (ベース ウルとファイル名とサフィックス) お問い合わせ

お問い合わせERDDAP™関連するファイルを提供するために、別のファイルを作るEDDTableFromFileNames(ファイル名)これらのファイルのデータセット (プライベートなデータセット) お問い合わせ

fileAccessアーカイブ ウルル
  • fileAccessアーカイブ ウルル 任意の標準からない非常にまれに使われた属性です。 EDDTable 列に Web アクセス可能なファイルのファイル名がある場合 (たとえば、画像、ビデオ、またはオーディオファイル) アーカイブからアクセス可能 (例:.zipファイル) URL でアクセス可能、使用<att name="fileAccessArchiveUrl"> ログイン </att> アーカイブのURLを指定します。

お問い合わせERDDAP™アーカイブファイルを提供するには、別のファイルを作るEDDTableFromFileNames(ファイル名)そのファイルのデータセット (プライベートなデータセット) お問い合わせ

ioos\_category
  • ioos\_category お問い合わせ これはREQUIRED変数属性です。<変数MustHaveIoosCategory>はtrueに設定されます (デフォルト) お問い合わせセットアップ。xml; そうでなければ、それは最適です。 例えば、<att 名称ioos\_category">サリニティ</att> カテゴリはNOAA「統合オーシャン観測システム」 (ログイン) お問い合わせ

    • (このように書いているように) これらの名前の正式な定義は認識していません。
    • コア名は、Zdenka Willisの.ppt「統合オーシャン観測システム」から (ログイン) NOAA「初期の運用能力の構築」と「米国IOOS Blueprint (ページ 1-5) お問い合わせ
    • 今後このリストが変更される可能性があります。 リクエストがあれば、Chrisにメールを送ってください。 noaaa.govのジョン
    • ERDDAP™IOOSよりもカテゴリのより大きなリストをサポートしているため、Bob Simonsは追加の名前を追加 (主に科学分野の名前に基づいており、例えば生物学、生態学、気象学、統計、分類) その他のデータの種類
    • 現在の有効な値ERDDAP™浴場、生物学、底文字、CO2、着色された分解された有機性無秩序、汚染物質、分解された栄養素、分解されたO2、生態学、魚の豊富さ、魚の種、熱変化、水力学、氷の配分、Identifier、場所、Meteorology、洋色、光学特性、他、病原体、PhytoplanktonのSpecies、圧力、生産性、Salconsinityの質、Surfaceinityの合計は、温度、検測光線、風速計、風速計、風速計、
    • 異なる用語間の重複と曖昧性があります - あなたの最善を尽くします。
    • 追加するioos\_category一覧へ<categoryAttributesツイート お問い合わせERDDAPお問い合わせセットアップ。xmlファイル、ユーザーは簡単に同様のデータセットを経由して見つけることができますERDDAP's ホームページの「カテゴリによるデータセットの検索」。 試してみるioos\_category関心のあるデータセットを検索します。
    • そこにあったディスカッションERDDAP™そして、ioos\_categoryお問い合わせERDDAP™Googleグループ

設定する予定<変数MustHaveIoosCategory> を false にすることで、この属性は必須ではありません。 (「Pfft!」 お問い合わせ) 何らかの理由でそれを真に置く (デフォルト) そして使用して下さいioos\_categoryは:

  • setup.xml の場合<変数MustHaveIoosCategory> 真にセットされる、生成データセットXml常に作成/提案するioos\_category各新しいデータセット内の各変数の属性。 それでは、どうしてもそれを残すのか?
  • ERDDAP™カテゴリで関心のあるデータセットを検索できます。ioos\_categoryioos\_categories がとても便利な検索カテゴリです。 (例えば、温度) かなり広いです。 これは、ioos\_categoryこの目的よりもはるかに優れています。例えば、より細かいCFstandard\_nameツイート (これは、例えば、すべての同義語とわずかなバリエーションのために、この目的のためにそれほど良いものではありません。 海\_water\_温度) お問い合わせ (使い方)ioos\_categoryこの目的のために制御されます<categoryAttributes> setup.xml ファイルで。 試してみるioos\_category関心のあるデータセットを検索します。
  • これらのカテゴリからNOAA「統合オーシャン観測システム」 (ログイン) お問い合わせ これらのカテゴリはIOOSの使命のIOOSの記述に根本的です。 お問い合わせNOAA、サポートioos\_category良いです ワンNOAAお問い合わせ (これを見るワンポイントNOAAビデオインスピレーションに満ちた!) 他の米国または国際機関、または政府機関と連携したり、他の一部のOcean Observing Systemと連携している場合、米国IOOSオフィスと連携するのは良い考えではありませんか?
  • しばらくお待ちください。ERDDAP™データセットへのリンクEDDGridErddapからそして、EDDTableFromErddapの特長お問い合わせ その他の場合ERDDAP™お問い合わせioos\_categoryデータセットには、ioos\_categoryお問い合わせEDDGridFromErddap と EDDTableFromErddap が機能します。
  • 心理的にはるかに簡単です。ioos\_categoryデータセットを作成するとき (もうひとつのことです。ERDDAP™データセットを追加するERDDAP) 事実の後でそれを加えるためより (これから使うことに決めたら) お問い合わせ  
long\_name
  • long\_name (COARDS,CFシリーズそして、パスワードメタデータ規格) RECOMMENDED 変数属性はERDDAPお問い合わせ 例えば、
        <att name="long\\_name">Eastward Sea Water Velocity</att>
    • ERDDAP™利用するlong\_nameグラフ上の軸をラベル付けするため。
    • ベストプラクティス: 言葉を込めるlong\_nameタイトルだったら (最初の単語とすべての非粒子語を大文字化) お問い合わせ ユニットを含まないlong\_nameお問い合わせ 長い名前はそれほど長くはいけません(通常<20文字)、しかしより記述的であるべきdestinationName、それは頻繁に非常に簡潔です。
    • もし "long\_name" は変数で定義されていないソース属性または<addAttributes>,ERDDAP™クリーンアップすることで生成しますstandard\_name (プレゼント) またはdestinationNameお問い合わせ  
missing\_value
  • missing\_value そして、 \_料金 バリュー (COARDSそして、CFシリーズ) 数値を記述する変数属性 (例: -9999) 不足している値を表すために使用されます。 例えば、

<att name="missing\_value" type="double"\>-9999</att>

文字列変数の場合、両方のデフォルトは "" (空の文字列) お問い合わせ 数値変数の場合、両方のデフォルトはNaNです。

  • ERDDAP™両方のサポートmissing\_valueと \_FillValue は、データソースが若干異なる意味を割り当てているためです。
  • 現時点では、変数と同じデータ型でなければなりません。
  • データが満載の場合scale\_factorおよび/またはadd\_offset, ,missing\_value\_FillValue の値は同様にパックされます。 同様に、ローカルを使用する文字列の日付/時刻値を持つ列の場合time\_zone, ,missing\_value\_FillValue はローカルタイムゾーンを使用する必要があります。
  • 変数がこれらの特別な値を使う場合、missing\_value\_FillValue 属性は必須です。
  • お問い合わせ時間と時刻変数 (ソースが文字列か数値であるかどうか) ,missing\_values と \_FillValues は "" と表示されます。 (空の文字列) 時刻が文字列として書かれ、時刻が2倍に書かれている場合はNaNと書かれます。 ソースの値missing\_value\_FillValue は変数のメタデータには表示されません。
  • 文字列変数の場合、ERDDAP™常に任意の変換missing\_values または \_FillValue のデータ値が "" に (空の文字列) お問い合わせ ソースの値missing\_value\_FillValue は変数のメタデータには表示されません。
  • 数値変数の場合: ザ・オブ・ザ・missing\_value変数のメタデータに \_FillValue が出現します。 一部の出力データフォーマットでは、ERDDAP™これらの特別な数字は、たとえば、 -9999 が表示されます。 その他の出力データフォーマット (特に .csv のようなテキストのようなフォーマット.htmlTable) ,ERDDAP™これらの特別な数字をNaNまたは"に置き換えます。
  • 一部のデータタイプには、明示的に識別される必要がない固有の欠落した値マーカーがありますmissing\_valueまたは \_FillValue 属性: float と double 変数は NaN を持っています (数値ではない) , 文字列の値が空の文字列を使用し、char の値が文字を持っている\uffff (文字 #65535, 文字ではなくUnicode の値です) お問い合わせ 整数型データ型には、未入力の値マーカーはありません。
  • 整数変数に欠落した値がある場合 (例えば、.csv ファイルの空のポジション) ,ERDDAP™定義された値として値を解釈しますmissing\_valueまたはその変数の \_FillValue を指定します。 何も定義されていない場合、ERDDAP™値は、そのデータ型で保持できる最大値のデフォルト欠落値として解釈されます。 127 バイト変数の, 32767 ショート, 2147483647 int, 9223372036847755807 長く、 ubyte、ushort、uintのための4294967295、およびulongのための18446744073709551615のための65535のための255。
ADD \_FillValue ATTRIBUTESお問い合わせ
  • ADD \_FillValue ATTRIBUTESお問い合わせ
    それぞれの時間ERDDAP™データセットをロードし、整数ソースのデータ型で変数が定義されているかどうかを確認します。missing\_valueまたは \_FillValue 属性。 変数がない場合は、ERDDAP™ログファイルにメッセージを出力する ("Add \_FillValue Attribute?" から始まる) 推奨するERDDAP™管理者は \_Fill を追加 この変数の value 属性datasets.xmlお問い合わせ \_FillValue またはmissing\_value行方不明の値は常に可能であるため、例えば、データセットに与えられたファイルが与えられた変数を持たない場合、ERDDAP™変数が、その変数にすべての欠落した値を持つように変数を提示できるようにする必要があります。 変数が \_FillValue 属性を持たない場合、追加できます。 <att 名="\_FillValue">null</att> ではなく、そのメッセージを抑制します。datasetID未来の+variable組合せ。

それぞれの時間ERDDAP™起動し、ログファイルに書かれているメッセージにそれらのすべての推奨事項を収集します。 (" から始まる"ADD \_FillValue ATTRIBUTESお問い合わせ) 、電子メールをERDDAP™管理者、CSVデータファイルに書き込む\[bigParentディレクトリ\]/logs/ディレクトリ。 必要に応じて、GenerateDatasetsXmlプログラムを使用できます (AddFillValueAttributes オプション) CSV ファイルにすべての提案を適用するdatasets.xmlファイル。 どんなものでもdatasetID属性を追加する必要がない場合、そのファイルの /variable の組み合わせは、属性を変更できます<att 名="\_FillValue">null</att> 推奨事項を抑制するdatasetID未来の+variable組合せ。

重要! ボブがよく言ったように:悪くない (恥ずかしい) 地球温暖化の証拠のいくつかがデータの未知の欠如値によって引き起こされる場合 (例:99 または 127 度\_ の温度値 不足している値としてマークされているべきCは、したがって、平均および/または中央の統計値が高まっている) お問い合わせ

  • \_FillValue とmissing\_value異なるソースファイルで指定された変数の値が一貫している必要があります。そうしないと、ERDDAP™値の1セットでファイルを受け入れ、他のすべてのファイルを「Bad Files」として拒否します。 問題を解決するため、
    • ファイルがグリッドされている場合.ncファイル、使用することができますEDDGridFromNcFiles解凍お問い合わせ
    • ファイルが表形式のデータファイルの場合、EDDTableFrom...Files を使うことができます。 お問い合わせ標準化 新着情報お問い合わせERDDAPソースファイルを読み込まれているように標準化するERDDAPお問い合わせ
    • 難しい問題は、ログインまたはNCO問題を解決するため。  
scale\_factor
  • scale\_factor (デフォルト = 1) そして、 add\_offset (デフォルト = 0) (COARDSそして、CFシリーズ) シンプルな変換で、データ型に詰め込まれたデータを記述するオプション変数属性です。
    • 現時点では、データ型はソースデータ型と異なるため、宛先値のデータ型を記述します。 たとえば、データソースは、短いインッツとしてパックされた1つの小数桁でフロートデータ値を保存している可能性があります。 (インサート16) , 使用scale\_factor= 0.1 およびadd\_offset= 0. 例えば、

    <att name="scale\_factor" type="float"\>0.1</att>
    <att name="add\_offset" type="float"\>0</att>

この例では、ERDDAP™データをアンパックし、フロートデータ値としてユーザーに提示します。

  • プレゼントの場合ERDDAP™これらの属性から値を抽出し、属性を削除し、自動的にユーザーのデータをアンパックします。 アクセス 値 = ソース 値 \*scale\_factor+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +add\_offset
    または、別の方法で述べた: unpackedValue = パック 値 \*scale\_factor+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +add\_offset
  • ザ・オブ・ザ・scale\_factorそして、add\_offset異なるソースファイルで指定された変数の値が一貫している必要があります。そうしないと、ERDDAP™値の1セットでファイルを受け入れ、他のすべてのファイルを「Bad Files」として拒否します。 問題を解決するため、
    • ファイルがグリッドされている場合.ncファイル、使用することができますEDDGridFromNcFiles解凍お問い合わせ
    • ファイルが表形式のデータファイルの場合、EDDTableFrom...Files を使うことができます。 お問い合わせ標準化 新着情報お問い合わせERDDAPソースファイルを読み込まれているように標準化するERDDAPお問い合わせ
    • 難しい問題は、ログインまたはNCO問題を解決するため。  
standard\_name
  • standard\_name (お問い合わせCFシリーズメタデータ規格) RECOMMENDED 変数属性はERDDAPお問い合わせ CFは許可されたリストを維持しますCF標準名お問い合わせ 例えば、
        <att name="standard\\_name">eastward\\_sea\\_water\\_velocity</att>
    • 追加するstandard\_name変数の属性に、追加standard\_name一覧へ<categoryAttributesツイート お問い合わせERDDAPお問い合わせセットアップ。xmlファイル、ユーザーは簡単に同様のデータセットを経由して見つけることができますERDDAP's ホームページの「カテゴリによるデータセットの検索」。
    • CFを指定するとstandard\_name変数の場合、変数のユニット属性は、CF標準名テーブルの標準名で指定されたキャニカルユニットと同一である必要はありませんが、ユニットはキャニカルユニットに換算する必要があります。 例えば、すべての温度関連のCFstandard\_names は "K" を持っています (ケルビン) キャノン単位として。 従って温度関連の変数standard\_nameK、度\_C、度\_F、またはそれらの名前のUDUnitsのバリアントのユニットは、それらはすべて相互変換可能であるためです。
    • ベストプラクティス: 力の部分制御された語彙リスト内の条件だけを使っています。 そのため、管理された語彙で定義されている用語に固執することをお勧めし、リストに適切なものがない場合には、用語を上げることをお勧めします。 追加条件が必要な場合は、標準委員会が管理された語彙に追加するかどうかを確認してください。
    • standard\_name値は、ケースの機密である唯一のCF属性値です。 それらは常にすべての小文字です。 はじめにERDDAP™v1.82,GenerateDatasetは、大文字を小文字に変換し、文字を小文字に変換します。 データセットが読み込まれるときERDDAP、大文字は文字を小文字に静かに変更します。  
time\_precision
  • time\_precisionによって使用される OPTIONAL 属性ですERDDAP™ (メタデータ規格なし) お問い合わせ時間と時刻変数, グリッドされたデータセットや表形式のデータセットにすることができます。axisVariables またはdataVariableお問い合わせ 例えば、
        <att name="time\\_precision">1970-01-01</att>  
    time\_precisionいつでも使用する精度を指定するERDDAP™Webページの文字列としてその変数から時刻値をフォーマットします。.htmlTable応答。 ファイル形式ERDDAP™文字列としてフォーマット時刻 (例えば、.csv と.json) ,ERDDAP™使用のみtime\_precision-僅か秒を含む場合指定フォーマット;そうでなければ、ERDDAP™1970-01-01T00:00:00 を使用する Zのフォーマット。
  • 有効な価値は 1970-01、1970-01-01-01T00Z、1970-01-01-01T00:00Z、1970-01T00:00:00Zです (デフォルト) 1970-01-01T00:00:00.0Z、1970-01-01T00:00:00:00.00Z、1970-01-01T00:00:00.000Z。\[1970年は単数なのでオプションではありません。ERDDAP™整形された時間文字列であるかどうかは分かりません (年間行事) 1970-01-01T00:00:00Z 以降、または数秒数の秒数です。\]
  • お問い合わせtime\_precision値が一致しないか、デフォルト値が使用されます。
  • ここに、他の部分のようにERDDAP™、表示されていないフォーマットされた時刻の任意のフィールドは、最小値を持つと仮定されます。 例えば、1985-07、1985-07-01、1985-07-01T00Z、1985-07-01T00:00Z、1985-07-01T00:00:00 Zは、精度の異なるレベルにもかかわらず、すべての同等と見なされます。 これはマッチしますISO 8601の:2004年"extended"タイム フォーマットの指定お問い合わせ
  • 警告: 限られただけを使用する必要がありますtime\_precisionお問い合わせ すべて 変数のデータ値の値は、隠されているすべてのフィールドの最小値のみです。
  • 例えば、time\_precision1970-01-01 すべてのデータ値が1時間=0、分=0、秒=0の場合 (例えば2005-03-04T00:00:00Zおよび2005-03-05T00:00:00Z) お問い合わせ
  • 例えば、使用しないtime\_precision1970-01-01 値が0時間、分、秒以外の値がある場合 (例えば、2005-03-05T12:00:00Z) デフォルトでない時間値が表示されないため。 それ以外の場合、ユーザーがtime=2005-03-05のすべてのデータを求める場合、要求は予期しないで失敗します。  
time\_zone
  • time\_zone
    • time\_zoneによって使用される OPTIONAL 属性ですERDDAP™ (メタデータ規格なし) お問い合わせ時間と時刻変数, グリッドされたデータセットや表形式のデータセットにすることができます。.
    • デフォルトは "Zuluツイート (GMTのモダンなタイムゾーンバージョン) お問い合わせ
    • 背景情報:「タイムオフセット」 (例:太平洋標準時間、-08:00、GMT-8) 固定、特定の、相対的なオフセットZulu (GMTの) お問い合わせ 対照的に、「タイムゾーン」は、日光節約の影響を受けているはるかに複雑なことです (例:「米国・太平洋」) 異なる場所で異なるルールがあった。 タイムゾーンは、単純なオフセット値で要約できないため、常に名前を持っています (表の「TZデータベース名」列を参照 https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones ) お問い合わせERDDAPお問い合わせtime\_zone属性は、いくつかのタイムゾーンからローカルタイムデータを扱うのに役立ちます (例:1987-03-25T17:32:05 パシフィック タイムタイム) お問い合わせ 文字列または数値時間データがある場合 (固定式) 時間オフセットは、単にデータを調整するZulu (これは、ERDDAP™お問い合わせ) unit 属性の異なるベース時間を指定する (例:「1970-01-01T08:00:00Zからの時間」、時刻オフセットを指定するT08に注意) 、そしてあなたが望む結果を得るために結果を常に点検して下さい。
    • 文字列からソースデータを持つタイムスタンプ変数の場合、この属性は、リードするタイムゾーンを指定できます。ERDDAP™ローカルタイムゾーンのソース時間を変換する (標準的な時間、日光のセービングの時間である) お問い合わせZuluタイムタイム (常に標準時間) お問い合わせ 有効なタイムゾーン名のリストは、TZ 列の一覧とおそらく同一です https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones お問い合わせ 一般的な米国タイムゾーン:米国/ハワイ、米国/アラスカ、米国/太平洋、米国/マレーシア、米国/アリゾナ州、米国/中央、米国/東部。
    • 数値ソースデータのタイムスタンプ変数の場合、"time\_zone" 属性, しかし、値は "Zuluまたは「UTC」。 他のタイムゾーンのサポートが必要な場合は、Chrisにメールをお送りください。 noaaa.gov のジョン。  
ユニット
  • ユニット (COARDS,CFシリーズそして、パスワードメタデータ規格) データ値の単位を定義します。 例えば、
        <att name="units">degree\\_C</att>
    • "units" は sourceAttribute か addAttribute のどちらかとして要求されます"time"変数は適度に適度に他の変数のために推薦されます (それはほとんど常にあります) お問い合わせ

    • 一般的にはおすすめですUDユニット\ 互換単位で必要な単位COARDSそして、CFシリーズ規格。

    • 別の共通の標準はありますカリキュラム-- 測定の単位のための統一されたコード。OGCサービス等SOS,WCSWMSUOMとしてUCUMを要求し、しばしばUCUMを参照する (測定の単位) お問い合わせ

    • すべてのデータセットに1つのユニット規格を使用することをお勧めしますERDDAPお問い合わせ お問い合わせERDDAP™あなたが使用している標準<unit\_standard> は、セットアップ。xmlファイル。

    • 異なるソースファイルで指定された変数のユニットは、一貫性が必要です。 ファイルの1つのサブセットが異なる単位値を使用するデータファイルのコレクションを持っている場合(例えば、 「1985-01-01」から「2000-01-01」まで、 "degree\_Celsius" 対 "deg\_C", または "knots" と "m/s") は、単位の値の標準化方法を見つける必要があります。そうしないと、ERDDAP™ファイルのサブセットのみをロードします。 それについて考える: 1つのファイルがwindSpeed unit=knotsと別のファイルがwindSpeed unit=m/sを持っている場合は、2つのファイルからの値が同じ集計されたデータセットに含まれているべきではありません。

      • ファイルがグリッドされている場合.ncファイル、多くの状況で使用できるEDDGridFromNcFiles解凍お問い合わせ
      • ファイルが表形式のデータファイルの場合、多くの場合、EDDTableFrom...Filesを使うことができます。 お問い合わせ標準化 新着情報お問い合わせERDDAPソースファイルを読み込まれているように標準化するERDDAPお問い合わせ
      • 難しい問題は、ログインまたはNCO問題を解決するため。
    • CF の標準的なセクション 8.1 は変数のデータがによって詰められると言いますscale\_factorおよび/またはadd\_offset「変数の単位は、パッケージされていないデータの代表的であるべきです。」

    • 時間変数およびタイムスタンプ変数のため、変数のどちらかソース属性または<addAttributesツイート (優先する) お問い合わせユニットいずれか

      • 時間軸変数や時間データ変数の数値データ:UDユニット\ 互換文字列 (フォーマットを使って ユニット お問い合わせ ベースタイム ) ソースタイム値を解釈する方法を説明する (例えば、1970-01-01T00:00:00Z以来の秒) お問い合わせ

      ユニット 以下のいずれかのいずれかのことができます。

          ms, msec, msecs, millis, millisec, millisecs, millisecond, milliseconds,  
      s, sec, secs, second, seconds, m, min, mins, minute, minutes, h, hr, hrs, hour, hours,
      d, day, days, week, weeks, mon, mons, month, months, yr, yrs, year, or years.

技術的に、ERDDAP™従わないUDUNITS変換するときの標準"years since"そして、"months since"時間値に"seconds since"お問い合わせ ザ・オブ・ザ・UDUNITS標準は固定された単一の価値として年を定義します: 3.15569259747e7秒。 そしてUDUNITS月を年12月に定義します。 残念ながら、私たちが使用していると見てきたほとんどのデータセット"years since"または"months since"カレンダーの年月や暦月になる値を明確に意図します。 例えば、3"months since 1970-01-01"通常は1970-04-01を意味するように意図されています。 お問い合わせERDDAP™通訳"years since"そして、"months since"カレンダーの年月として、厳密に従わないUDUNITS標準。

ザ・オブ・ザ・ ベースタイム ISO 8601:2004認証取得 (Eメール) フォーマットされた日付時刻の文字列 (yyyy-MM-dd'T'H:mm:ssZ、例えば、1970-01-01T00:00:00Z) 、またはそのいくつかのバリエーション (例えば、端に欠けている部分) お問い合わせERDDAP™「1970-1-1 0:0:0」など、その理想的なフォーマットのバリエーションの広い範囲で動作するようにしました。 タイムゾーン情報が見つからない場合、Zuluタイムゾーン (アカGMT) お問い合わせ 別の時刻オフセットを指定しても、ERDDAP™日光保存時間を使用しないでください。 baseTime が他のフォーマットを使用している場合は、<addAttributes> ISO 8601:2004のバリエーションを使用する新しい単位の文字列を指定する (Eメール) フォーマット(例:1985年1月1日から1985年1月1日から1985年1月1日までに変更日)

テストできますERDDAP's の特定に対処する能力 ユニット お問い合わせ ベースタイム お問い合わせERDDAPお問い合わせ時間コンバーターお問い合わせ うまくいけば、番号を差し込むことができます (データソースから最初の時間値?) 単位の文字列、変換をクリックし、ERDDAP™ISO 8601:2004にそれを変換することができる (Eメール) フォーマットされた日付時刻文字列。 単位の文字列が認識できないと、コンバータはエラーメッセージを返します。

文字列の時間単位

ISO 8601:2004のバリエーションである一般的な時間フォーマット (Eメール) 標準フォーマット (例: 2018-01-02T00:00:00Z) のバリエーションを指定できます。yyyy-MM-dd'T'H:mm:ssZ, たとえば、yyyy-MM-dd文字列が日付のみである場合。 yyy-M で始まる形式は、ERDDAPフォーマットのマイナーなバリエーションを非常に許す特別なパーサを使用します。 パーサは、'Z'、"UTC"、"GMT"、±XX:XX、±XXXX、および±XXフォーマットの形式でタイムゾーンを扱うことができます。 日付時刻の部分が指定されていない場合 (例えば、分と秒) ,ERDDAP™そのフィールドの最も低い値を想定 (例えば、秒が指定されていない場合、秒=0 は想定されます。) お問い合わせ

他のすべての文字列時間フォーマットでは、DateTimeFormatter 互換のタイムフォーマット文字列を正確に指定する必要があります。 お問い合わせyyyy-MM-dd'T'H:mm:sZ は、これらの形式の文字列は、時刻文字列から特定の種類の情報を特定する文字から作成されます。例えば、m は分時間を意味します。 フォーマットの文字を数回繰り返すと、例えば、m は任意の数字で値を指定することができることを意味します。mm は 2 桁で値を指定しなければならないことを意味します。 ザ・オブ・ザ・JavaDateTimeFormatter のドキュメントは粗大な概要であり、これらの詳細をクリアしません。 そのため、キャラクターのバリエーションや意味の一覧がここにあります。ERDDAP™ (時々若干異なるJava'DateTimeFormatter's は、) : : :

|キャラクター|事例紹介|意味する| |お問い合わせ|お問い合わせ|お問い合わせ| |u, y, Y|\-4712, 0, 1, 10, 100, 2018|年番号、数字の任意の数。ERDDAP™治療 y (イヤーオブジェ) と Y (週間ベースの年, これは、多くの場合、y ではなく誤って使用されているので、) u として、占星術年番号お問い合わせ 占星術年は、BCEを使用しない正または負の整数です (アメリカ) またはセリウム (インフォメーション) 時代の設計者: 2018=2018CE、...、2=2CE、1=1CE、0=1BCE、-1=2BCE、-2=3BCE、...| |uuuuuuuuuu, yyy, お問い合わせ|\-4712、0000、0001、0010、0100、2018|4桁の天文学年番号 (前の「-」を無視する) | |ツイート|1、01、12|月数、数字の任意の数 (1=1月) | |MMの|01月12日|2桁 (パッドなし) 月数| |MMMの|1月, ヤン, ヤン, JAN|a 3 手紙 英語 月 名, 症例| |MMMMの|Jan, jan, JAN, 1月, ジャヌーリー, JANUARY|3文字または完全な英語の月名、場合の無感覚| |ログイン|1、01、31|月間番号、数字の任意の数| |ログイン|01月31日|2桁 (パッドなし) 毎月1日 'digit' はスペースです。| |ダイバーシティ|1、001、366|日数、任意の数字、001=Jan 1| |DDDについて|001, 366|1年3桁、001=Jan 1| |お問い合わせ|thu, THU, 木|3 文字の日の週、値を解析するときは無視します| |お問い合わせ|thu, THU, Thu, thursday, THURSDAY, 木曜日|3文字またはフルイングリッシュデーオブウィーク、ケースインセンティブ、パース時に値が無視されます| |フリガナ|0, 00, 23|一日中 (0-23から) 、数字の任意の数| |ログイン|00、23|1日のHH時間 (2018年8月23日) 2桁 'digit' はスペースです。| |は、|午前、午後、午後|AM または PM の場合の無感覚| |ログイン|12、01、11|時計 - 時間 - 時 - 時 (12月1日、2日... 11) 、数字の任意の数| |ログイン|12、01、11|時計 - 時間 - 時 - 時 (12月1日、2日... 11) 2桁 'digit' はスペースです。| |ログイン|0、11|午前-午後 (0, 1, ...11) 、数字の任意の数| |代表取締役|00、01、11|毎時~午後2桁| |m 点|0、00、59|最小時間、任意の数字| |ミリメートル|00、59|最小時間、2桁| |ツイート|0、00、59|秒単位、任意の数字| |ログイン|00、59|2桁、2桁| |ツイート|0、000、9、999|fraction-of-secondは、小数点、数字の任意の数に従うように、| |ステンレス|00,99,99|100秒、2桁| |SSSシリーズ|000、999|秒数, 3桁| |ツイート|0、0000、86399999|一日のミリ秒数、任意の数字| |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|〒86399999 沖縄県うるま市字栄野比1212-1|ミリ秒単位、8桁| |ネクタイ|0、0000000000000000000、8639999999|nanosecond-of-day、任意の数字。 インスタグラムERDDAP™, これはnMillisにtuncated.| |NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|ファックス: 86-755-335|nanosecond-of-day、14桁。 インスタグラムERDDAP™これはnMillisにtuncated.| |ログイン|0, 00000000000, 5999999|ナノ秒単位、任意の数字。 インスタグラムERDDAP™これはnMillisにtuncated.| |ログイン|Publish Date:2017-05-01TSFM:MS皮鞋 X 千代洋服,紳裝入門提案|ナノ秒単位、11桁。 インスタグラムERDDAP™これはnMillisにtuncated.| |XXX、ZZZの|Z、-08:00、+01:00|フォーマット 'Z' または ± のタイムゾーン (2桁の時間のオフセット) : : : (2桁分のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ 'Z' をサポートしている ZZZ は標準外ですが、一般的なユーザエラーを扱います。| |XXのZZ|電話番号: +0100|フォーマット 'Z' または ± のタイムゾーン (2桁の時間のオフセット) : : : (2桁分のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ ZZ は 'Z' をサポートしていませんが、一般的なユーザー エラーを扱います。| |X、Z|Z、-08、+01|フォーマット 'Z' または ± のタイムゾーン (2桁の時間のオフセット) : : : (2桁分のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ 'Z' をサポートしている Z は標準外ですが、一般的なユーザエラーを扱います。| |xxxxxx|\08:00, +01:00|フォーマットのタイムゾーン ± (2桁の時間のオフセット) : : : (2桁分のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ| |ログイン|\-0800、+0100|フォーマットのタイムゾーン ± (2桁の時間のオフセット) (2桁分のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ| |ツイート|\-08, +01|フォーマットのタイムゾーン ± (2桁の時間のオフセット) お問い合わせ このお菓子 スペース + として (非標準) お問い合わせ| |お問い合わせ|'T'、'Z'、'GMT'|一連のリテラル文字の開始と終了| |お問い合わせ お問い合わせ (2つの単一の引用符) |お問い合わせ お問い合わせ|2つのシングルクォートは、リテラルシングルクォートを示す| | \[\] | \[ \] |スタート (ツイート\[ツイート) そして終わり (ツイート\]ツイート) オプションのセクション。 この表記は、文字文字と形式文字列の最後にのみサポートされています。| |#, {, }|#, {, }|未来の用途に| |G、L、Q、e、c、V、z、O、p| |これらの書式文字は、Java'DateTimeFormatter, しかし、現在サポートされていませんERDDAPお問い合わせ 必要に応じて、Chrisにメールを送る必要があります。 noaaa.gov のジョン。|

注意:

  • punctuation の日付時刻では、数値は数字の可変数を持つ場合があります。 (例えば、米国スラッシュ日付フォーマット「1/2/1985」では、月と日付は1桁または2桁である) フォーマットは1文字のトークンを使用する必要があります。例えば、月と日付の任意の数字を受け入れるM/d/yyなど。
  • アイテムの数字が定数である場合、例: 01/02/1985 では、2 桁の日付、2 桁の MM/dd/yyy 、および 4 桁の年の数字を指定します。
  • これらのフォーマットは、機能するトリッキーです。 与えられたフォーマットは、ほとんどのために動作するかもしれませんが、すべてではなく、指定された変数の文字列を時間とします。 指定した形式が期待どおりに動作していることを確認してください。ERDDAP変数の全ての時間文字列に対して。
  • 可能であれば、GenerateDatasetXml は時間フォーマットの文字列を提案します。
  • フォーマット文字列を生成するヘルプが必要な場合は、Chris にメールしてください。 noaaa.gov のジョン。

主時間データ変数 (表形式のデータセットの場合) そして主時間軸変数 (グリッドデータセット用) によって認識されるdestinationName時間。 単位のメタデータは「1970-01-01」以降、数値時間値のUDUnits互換ユニット文字列である必要があります。 (表またはグリッドされたデータセットの場合) または文字列時間に適した単位、例えば、「M/d/yyyy」 (表形式のデータセットの場合) お問い合わせ

異なるグリッドの異なる時間単位.ncファイル - グリッドのコレクションを持っている場合.ncファイルの変数の1つのサブセットは、ファイルの1つ以上の他のサブセットよりも異なる時間単位を使用します。EDDGridFromNcFiles解凍お問い合わせ 時間値を変換する"seconds since 1970-01-01T00:00:00Z"より低いレベルでは、差を隠すことで、ヘテロ系ファイルのコレクションから1つのデータセットを作ることができます。

TimeStamp 変数

TimeStamp 変数お問い合わせ その他の変数 (axisVariableまたはdataVariable, でEDDGridまたはEDDTableデータセット) timeStamp 変数にすることができます。 タイムスタンプ変数は、時間単位と時間データを持つ変数ですが、<destinationName> 時間以外。 TimeStamp 変数は、ソースの時刻形式を変換するメインタイム変数のように振る舞います"seconds since 1970-01-01T00:00:00Z"および/またはISO 8601:2004年 (Eメール) フォーマット)。ERDDAP™時間を認識する タイム関連によるスタンプ変数 "ユニット"メタデータ、この正規表現にマッチしなければならない"\[a-zA-Zの特長\]+ + + から +\[受付時間\].+"を (数値の日付 例えば、"seconds since 1970-01-01T00:00:00Z") または日付 "uuuuuu", "yyy" または "YYYY" を含む時間フォーマット文字列 (例えば "yyyy-MM-dd'T'H:mm:ssZ" は、) お問い合わせ しかし、まだ使用してくださいdestinationName "time"主日の場合 時間変数。

常にあなたの仕事をチェックして、表示する時間データを確実に確認しますERDDAP™正しい時間データです。 時間データを扱うことは、常にトリッキーでエラーが発生します。

お問い合わせ時間変数に関する詳細情報お問い合わせ ERDDAP™ユーティリティを持っている数値変換 文字列の時間から/までの時間お問い合わせ お問い合わせ使い方ERDDAP™時間とともにお得な情報お問い合わせ  

valid\_range

または

<att name="valid\_min" type="float"\>0.0</att>
<att name="valid\_max" type="float"\>40.0</att>

  • 現時点では、変数と同じデータ型であり、その変数の有効な最小値と最大値を指定します。 ユーザーは、この範囲の外で値が無効であると判断する必要があります。
  • ERDDAP™応募しないvalid\_rangeお問い合わせ 別の方法:ERDDAP™外部のデータ値を変換しないvalid\_range\_Fill へ 価値またはmissing\_valueお問い合わせERDDAP™このメタデータを渡すだけで、アプリケーションをあなたまで残します。 なぜ? これは、このメタデータが データプロバイダが望んでいた場合、データプロバイダは、データプロバイダは、外部のデータを変換することができますvalid\_range\_FillValues になる。ERDDAP™データプロバイダを推測しません。 このアプローチはより安全です。後で示されていると、valid\_range狭すぎるか、そうでなければ、ERDDAP™データを隠すことはありません。
  • データが満載の場合scale\_factorおよび/またはadd\_offset,valid\_range,valid\_minそして、valid\_maxデータ型と値が詰まっているはずです。 お問い合わせERDDAP™リクエストscale\_factorそして、add\_offsetデータセットをロードするとき、ERDDAP™解凍しますvalid\_range,valid\_minそして、valid\max宛先メタデータが送信されるように値 (ユーザ名) 未梱包のデータタイプと範囲を示します。 または、unpacked\ がない場合valid\_range属性は存在し、名前を変更しますvalid\_rangeいつかERDDAP™データセットをロードします。
<removeMVRows>
  • ツイート ** <removeMVRows> ** . . (#removemvrowsさん) タグ内のオプションタグdatasets.xmlEDDTableFromFiles 用 (すべてのサブクラスを含む) データセットは、EDDTableFromMultidimNcFiles にのみ使用されます。 true または false の値を持つことができます。 例えば、true これは、すべての値がグループの終わりに行の任意のブロックを削除します。missing\_value, \_FillValue, または CoHort ...Array のネイティブな欠損値 (またはCharArraysのchar=#32) お問い合わせ これは、CF DSG多次元配列ファイルタイプと同様のファイル用のものです。 True なら、これは適切なテストを行い、常に最大 dim 変数をすべてロードするので、時間がかかります。 デフォルト値は false です。 おすすめ -- データセットの場合、remomVRows を false に設定することをお勧めします。 removeMVRows を true に設定すると、リクエストが大幅に遅くなる可能性がありますが、一部のデータセットでは必要です。