CSV ファイル形式

ネットワークおよびコントロール データ セットの読み込み書き出し更新で使用されるカンマ区切り変数(CSV)ファイルの形式について説明します。

次のセクションが含まれています。

  1. ファイル形式全般の情報
  2. 特定のフィールド タイプの形式の詳細
  3. InfoWorks WS Pro から書き出したデータを使用する

ファイル形式全般の情報

ファイル間でデータを分散する方法は非常に柔軟です。

各ファイルは、次の組み合わせで構成されます。

各ファイルは、個別のエンティティとして扱われます。データ タイプ区切りとヘッダー レコードの情報は、ファイル間で引き継がれません。

データ タイプ区切り

データ タイプ区切りの形式は、4 つのアスタリスクの後に、そのタイプのネットワーク オブジェクトの詳細を含むデータベース テーブルの名前が続く形式です。

データベース テーブル名の詳細は、「ネットワークのデータ フィールド」セクションで確認できます。

例:

**** wn_node

ヘッダー区切りを省略し、代わりにファイル名を使用してオブジェクト タイプを示すこともできます。その場合は、先頭の wn_ を除いたテーブル名をファイル名の末尾に付加します。

例:

xxx_node.csv は、ファイルがノード データから始まることを InfoWorks WS Pro に伝えます。

ファイルあたりのネットワーク オブジェクト タイプが 1 つの場合は、ファイル名を使用するとデータがより見やすくなります。この方法は、[各テーブルのエクスポート先]を[別のファイル]に設定して InfoWorks WS Pro から書き出す場合に使用されます。

ファイルの先頭でファイル名を使用してデータ タイプを定義し、ファイルの途中でデータ タイプ区切りを使用して別のタイプを定義することもできます。ただし、この方法はあまり有益ではありません。

deletes 区切り

****deletes 区切りを使用すると、ネットワークの更新時に削除するオブジェクトのリストを定義できます。この区切りの後には、削除する各オブジェクトのレコードが続き、オブジェクトのテーブル名と資産 ID が含まれます。

例:

****deletes
ObjectTable, asset_id
wn_pipe, 28165073
wn_pipe, 28165094
wn_node, 10857075
wn_node, 10857076

ファイル名の末尾に deletes を付加して、ファイル内のすべてのオブジェクトを削除することもできます。

注:

ヘッダー レコード

ヘッダー レコードには、ネットワーク オブジェクトのデータベース テーブルに含まれるフィールド名のリストが含まれます。

InfoWorks WS Pro のプライマリ キー フィールドは次のとおりです。

ノード テーブル(ノード、中継ノード、固定水頭ノード、消火栓、貯水池、井戸) ノードのプライマリ キーは node_id フィールドです。このフィールドには、最大 30 文字の文字列が含まれます。この ID はネットワーク内で一意である必要があります。
リンク テーブル(管、バルブ、フロート バルブ、メーター、逆止弁、ポンプ場) リンクには、upstream_node_id、downstream_node_id、link_suffix の 3 つのフィールドが必要です。この 3 つのフィールドの組み合わせは、ネットワーク内で一意である必要があります。
曲線テーブル(ポンプ曲線、PRD 曲線、バルブ曲線) ポンプ曲線のプライマリ キーは ID フィールドです。このフィールドには、最大 30 文字の文字列が含まれます。この ID はネットワーク内で一意である必要があります。

コントロール データ テーブルは、ネットワーク テーブルと似たようなパターンを形成します。ネットワーク内のすべてのノードとリンク テーブルにコントロール テーブルがあります(wn_pump テーブルにコントロール テーブルはありません。これは、ポンプが実際にポンプ場の一部であり、コントロール ルールがポンプ場レベルで実装されるためです)。

コントロール データ内のすべてのレコードは、ネットワーク内のノードまたはリンクに関連付けられています。このため、プライマリ キー フィールドは一致します。シミュレーションを続行するには、コントロール データのプライマリ キーに記述されている関連のノードまたは管がネットワーク内に存在している必要があります。

データ レコード

ヘッダー レコードの後には、0 個以上のデータ レコードが続きます。

エスケープ文字

状況によっては、書き出されたデータの構造を維持するためにエスケープ文字を使用する必要があります。

特定のフィールド タイプの形式の詳細

テキスト フィールド

テキスト フィールドにカンマまたは二重引用符が含まれている場合は、二重引用符で囲む必要があります。それ以外の場合、引用符は任意です。

1 つのタイプの値の配列

座標など、1 つのタイプの値の配列は、圧縮(単一のフィールド)または展開(各値が別々のフィールドで定義される)として定義できます。

圧縮

配列が 1 つのフィールドで定義されます。フィールドは左中括弧で始まり、カンマ区切りの値のリストが続き、右中括弧で終わります。

例 - 管の曲げを定義する配列

{389956.,110970.,389997.,111017.,390146.,110934.,390661.,111197.}
{389956.,110970.,389923.,111048.,390117.,111259.,390309.,111765.}

展開

配列が値ごとに個別のフィールドを使用して定義されます。各値タイプの先頭は列ヘッダーです。

例:

xs
ys

389956
110970
389997
111017
390146
110934
390661
111197
389956
110970
389923
111048
390117
111259
390309
111795

複数のフィールドを含む値の配列

これらの配列には、特定のオブジェクトのより複雑な部分を記述する値のリストが含まれます。以下に例を示します。

これらの配列は、圧縮(単一のフィールド)または個別(個別のブロックまたは個別のファイル)として定義できます。

圧縮

各配列が 1 つのフィールドで定義されます。

例: ノード需要

この例では、ノードでの需要を定義します。2 つのサブフィールドがそれぞれ 1 つの需要カテゴリーで需要を定義します。

{{Tourism,,10.000000,0},{DomSumer,,13.300000,0}}

各サブフィールドには 4 つの値が含まれ、正しい順序で表示する必要があります。この場合、順序は次のとおりです。

個別

各配列が個別のブロックまたは個別のファイルで定義されます。配列の値はそれぞれ個別のフィールドで定義されます。

データ タイプ区切りの形式は、4 つのアスタリスクの後にデータベース データ構造名が続く形式です。

データベース データ構造名の詳細については、「ネットワークのデータ フィールド」のセクションを参照してください。

例: ポンプ曲線

****wn_pump_triplets
 
 
 
id
flow
head
power
BPu-300
0
61.1
89.5
 
150
58
133
 
240
54.1
164.8
 
300
50
183.8
HP-200
0
48.5
46.7
 
100
46.2
70.5
 
200
40
98
 
300
22.3
117.5

InfoWorks WS Pro から書き出したデータを使用する

InfoWorks WS Pro から CSV ファイルを書き出す際には、フィールドの内容がわかる名前や単位の情報を書き出すかどうかを選択できます。これらは、データ レコードの前に置かれる追加レコードとして書き出されます。これらの追加レコードを含むファイルを書き出した後に、それらを読み込もうとすると、InfoWorks WS Pro はそれらの追加データを通常のデータ レコードとして解釈しようとするため、ほぼ確実に、ファイル内の値のサイズまたはタイプが間違っていることを示すエラー メッセージが表示されます。

これらの追加の書き出しオプションは、InfoWorks WS Pro のデータを他のパッケージで表示する場合の利便性を高めるために用意されています。データを InfoWorks WS Pro に再度読み込む場合は、必ずこれらの追加レコードなしで書き出す必要があります。[CSV エクスポート オプションを選択]ダイアログでは、再読み込みに必要なオプションと追加オプションが分かれているため、正しい形式で書き出すのに迷うことはありません。再読み込みの前に別のパッケージでファイルを編集して追加レコードを削除することもできます。

ネットワークの簡素化されたセクションは、CSV ファイルに書き出されません。簡素化オブジェクトは非常に複雑で、簡素化されたすべてのリンクとノードの詳細に加えて、接続情報も含まれています。