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