ネットワークおよびコントロール データ セットの読み込み、書き出し、更新で使用されるカンマ区切り変数(CSV)ファイルの形式について説明します。
次のセクションが含まれています。
ファイル間でデータを分散する方法は非常に柔軟です。
各ファイルは、次の組み合わせで構成されます。
各ファイルは、個別のエンティティとして扱われます。データ タイプ区切りとヘッダー レコードの情報は、ファイル間で引き継がれません。
データ タイプ区切りの形式は、4 つのアスタリスクの後に、そのタイプのネットワーク オブジェクトの詳細を含むデータベース テーブルの名前が続く形式です。
データベース テーブル名の詳細は、「ネットワークのデータ フィールド」セクションで確認できます。
例:
**** wn_node
ヘッダー区切りを省略し、代わりにファイル名を使用してオブジェクト タイプを示すこともできます。その場合は、先頭の wn_ を除いたテーブル名をファイル名の末尾に付加します。
例:
xxx_node.csv は、ファイルがノード データから始まることを InfoWorks WS Pro に伝えます。
ファイルあたりのネットワーク オブジェクト タイプが 1 つの場合は、ファイル名を使用するとデータがより見やすくなります。この方法は、[各テーブルのエクスポート先]を[別のファイル]に設定して InfoWorks WS Pro から書き出す場合に使用されます。
ファイルの先頭でファイル名を使用してデータ タイプを定義し、ファイルの途中でデータ タイプ区切りを使用して別のタイプを定義することもできます。ただし、この方法はあまり有益ではありません。
****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 つのフィールドで定義されます。フィールドは左中括弧で始まり、カンマ区切りの値のリストが続き、右中括弧で終わります。
例 - 管の曲げを定義する配列
{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 から CSV ファイルを書き出す際には、フィールドの内容がわかる名前や単位の情報を書き出すかどうかを選択できます。これらは、データ レコードの前に置かれる追加レコードとして書き出されます。これらの追加レコードを含むファイルを書き出した後に、それらを読み込もうとすると、InfoWorks WS Pro はそれらの追加データを通常のデータ レコードとして解釈しようとするため、ほぼ確実に、ファイル内の値のサイズまたはタイプが間違っていることを示すエラー メッセージが表示されます。
これらの追加の書き出しオプションは、InfoWorks WS Pro のデータを他のパッケージで表示する場合の利便性を高めるために用意されています。データを InfoWorks WS Pro に再度読み込む場合は、必ずこれらの追加レコードなしで書き出す必要があります。[CSV エクスポート オプションを選択]ダイアログでは、再読み込みに必要なオプションと追加オプションが分かれているため、正しい形式で書き出すのに迷うことはありません。再読み込みの前に別のパッケージでファイルを編集して追加レコードを削除することもできます。
ネットワークの簡素化されたセクションは、CSV ファイルに書き出されません。簡素化オブジェクトは非常に複雑で、簡素化されたすべてのリンクとノードの詳細に加えて、接続情報も含まれています。