コンテンツにスキップ

FAQ/ 河岸線(右岸線、左岸線)の定義方法について

河岸線(右岸線、左岸線)の定義方法について教えてください。
DioVISTAでは、河岸線を「下流から上流に向かって指定してください」との定義方法の指示がありますが、誤って上流から下流に向かって指定してしまいました。河岸線を上流から下流に向かって指定した場合、シミュレーション計算に影響はあるでしょうか?

回答

河岸線は下流から上流に向かって指定してください。これは、DioVISTAの仕様です。
河岸線(右岸線、左岸線)を上流から下流に向かって指定しシミュレーション計算を行った場合、計算結果に影響します。また、シミュレーション中に、「メモリーが不足しています」というエラーメッセージが表示される場合があります。 そのため、河岸線は必ず下流から上流に向かって指定してください。

図:河岸線の定義例

また、上流から下流に向かって河岸線を指定したプロジェクトファイル(.fsxproj)を、 以下のPowerShellスクリプトを使用して、下流から上流に向かって河岸線を指定したプロジェクトファイル(.fsxproj)に修正することができます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#河岸線を入れ替えるPowerShellスクリプト

$ErrorActionPreference="Stop"

#修正前のプロジェクトファイルのパスを入力してください
$origProj = "D:\temp\修正前.fsxproj"

#修正後のプロジェクトファイルの出力先パスを入力してください
$newProj = "D:\temp\修正後.fsxproj"

[xml]$xml0 = cat $origProj
$xml1 = $xml0.Clone()

# left
$coords0 = $xml0.floodSim.conditions.diffusionalRivers.diffusionalRiver.leftLine.SelectNodes("coord")
$coords1 = $xml1.floodSim.conditions.diffusionalRivers.diffusionalRiver.leftLine.SelectNodes("coord")
$n = ($coords0 | measure).Count
for ($i = 0; $i -lt $n; $i++) {
    $coords1[$n - 1 - $i].innerText = $coords0[$i].innerText
}

# right
$coords0 = $xml0.floodSim.conditions.diffusionalRivers.diffusionalRiver.rightLine.SelectNodes("coord")
$coords1 = $xml1.floodSim.conditions.diffusionalRivers.diffusionalRiver.rightLine.SelectNodes("coord")
$n = ($coords0 | measure).Count
for ($i = 0; $i -lt $n; $i++) {
    $coords1[$n - 1 - $i].innerText = $coords0[$i].innerText
}

$xml1.Save($newProj)
Copy-Item -Recurse ($origProj + ".data") ($newProj + ".data")

関連項目


最終更新日: 2024-01-15