このモジュールは、SUMO 用に書かれたスクリプトで利用できる各種のユーティリティを提供します。
次のいずれかになっていることを確認してください:
import dynamita.tool.py as dtool
| 注意 | Python では定数に新しい値を代入することを妨げませんが、そうすると予期しないバグをいくつも引き起こす可能性があります。 |
| dtool.msec | シミュレーション時間の1ミリ秒 |
| dtool.sec | シミュレーション時間の1秒 |
| dtool.minute | シミュレーション時間の1分 |
| dtool.hour | シミュレーション時間の1時間 |
| dtool.day | シミュレーション時間の1日 |
| dtool.week | シミュレーション時間の1週間 |
VariableEntry| sumo_name | 完全に名前空間を付与した変数名 |
| sumo_type | 変数の型。REAL、INT、STRING、BOOL、REALARRAY のいずれかです。 |
| dimensions | 変数の次元。変数がスカラの場合は空です。 |
| value | 変数の値。この値に対して convert_to_data を呼び出す必要はありません。 |
convert_to_datadef convert_to_data(s: str):
文字列を SUMO の標準に従って適切なデータ型に変換します。
| s | データを含む文字列 |
変換されたデータを格納した整数、浮動小数点数、文字列または配列
print(dtool.convert_to_data("4.0;3.2;8.0"))
# [4.0, 3.2, 8.0] を出力します
print(dtool.convert_to_data("5.1"))
# 5.1 を出力します
read_sumocore_xmldef read_sumocore_xml(file_name: str) -> dict:
SumoCore の「save」コマンドによって生成された xml 状態を読み取ります。
| file_name | 読み込むファイルのフルパス |
string -> VariableEntry の辞書。キーは変数名です。
write_sumocore_xmldef write_sumocore_xml(file_name: str, data: dict):
SumoCore の「load」コマンドで読み込める xml 状態を書き込みます。この関数を使用する場合は、read_sumocore_xml で既存の状態を読み取り、それを修正してから書き戻すようにしてください。こうすることで、モデルに存在するすべての変数が確実に含まれるようになります。
| file_name | 保存するファイルのフルパス |
| data | string -> VariableEntry の辞書。キーは変数名です。 |
なし
write_sumocore_scriptdef write_sumocore_script(file_name: str, data: dict):
SumoCore で「execute」コマンドを使って実行できる SumoCore スクリプト(.*scs)を書き込みます。
| file_name | 保存するファイルのフルパス |
| data | string -> value の辞書。キーは変数名です。 |
なし
create_arraydef create_array(begin, end = None, step = None, count = None, includeEnd = True)
指定された引数に基づいて配列を生成します。begin を指定し、他の 3 つの制御用引数(end、step、count)のうち 2 つを指定する必要があります。
| begin | 配列の最初の要素 |
| end | 配列の終了値。includeEnd が true の場合はこの値が含まれ、そうでない場合は除外されます。 |
| step | 連続する 2 つの要素間の差 |
| count | 配列の要素数 |
| includeEnd | end を配列に含めるかどうかを指定します。end が指定されていない場合、この引数は意味を持ちません。 |
生成された配列
dtool.create_array(begin = 1, end = 3, step = 1, includeEnd = True)
[1,2,3]
dtool.create_array(begin = 1, end = 3, count = 2, includeEnd = False)
[1,2]
dtool.create_array(begin = 1, end = 3, count = 2, includeEnd = True)
[1,3]
dtool.create_array(begin = 1, step = 2, count = 3, includeEnd = False)
[1,3,5]
extract_dll_from_projectdef extract_dll_from_project(project : str, path_to : str):
.sumo プロジェクトから dll ファイルを抽出します。この dll は SumoCore に読み込んでシミュレーションを実行するために使用できます。
| project | .sumo ファイルへのパス(ファイル名と拡張子を含む) |
| path_to | 出力 dll ファイルへのパス(ファイル名と拡張子を含む) |
なし
extract_misc_from_projectdef extract_misc_from_project(project : str, what : str, path_to : str):
.sumo プロジェクトから任意のファイルを抽出します。この関数を使用して、プロジェクトに保存された state.xml ファイルを抽出できます。
| project | .sumo ファイルへのパス(ファイル名と拡張子を含む) |
| what | 抽出するファイルの名前 |
| path_to | 出力ファイルへのパス(ファイル名と拡張子を含む) |
なし
extract_parameters_from_projectdef extract_parameters_from_project(project : str, tsvdir : str, script_to : str, scenario : str = "") -> bool:
プロジェクトから、SUMO GUI に表示されるとおりにパラメータを設定するスクリプトを抽出します。動的テーブルも含まれます。このスクリプトは SumoCore で「execute」コマンドを使って実行できます。
| project | .sumo ファイルへのパス(ファイル名と拡張子を含む) |
| tsvdir | モジュールが追加ファイルを保存するために使用できるフォルダへのパス |
| script_to | 出力スクリプトファイルへのパス(ファイル名と拡張子を含む) |
| scenario | 読み込むシナリオ。省略または不正な場合、モジュールは入力設定値のみを考慮します。 |
bool(関数の定義による。原文には説明がありません)
create_temp_folderdef create_temp_folder(base : str):
ランダムな 8 文字のフォルダを作成します。プロジェクトの dll や初期化スクリプトなど、抽出した SUMO プロジェクトのアーティファクトを保存するのに利用できます。これらのフォルダは、Python アプリケーションフォルダを整理するために安全に削除できます。
| base | ランダムな名前のフォルダが作成される親フォルダ。通常は「.」で、現在のフォルダを意味します。 |
作成したフォルダ名。