コンテンツにスキップ

コマンドラインの使いかた

原文ページ

SUMOパッケージの多くのアプリケーションはコマンドラインツールです。 現在SUMO-GUIのみが例外です。 「コマンドライン」がなにかわからない場合は、基本的なコンピュータスキルを参照してください。

コマンドラインからSUMOアプリケーションを使う

SUMOアプリケーションは単純な実行可能ファイルです。 コマンドラインに名前を打ちこむことで使うことができます。 例えばNETGENERATEなら

netgenerate.ext

とすることでWindowsで

netgenerate

とすることでLinuxで起動することができます。

これだけでアプリケーション(この場合はNETGENERATE)が起動します。 なんのパラメータも与えられていないので、アプリケーションはやるべきことがわからないため、自分自身に関する情報のみを出力します。

SUMO netgenerate Version 1.2.0
 Build features: Linux-4.1.39-56-default Proj GDAL GUI
 Copyright (C) 2001-2017 DLR and contributors; http://sumo.dlr.de
 License EPLv2: Eclipse Public License Version 2 <https://eclipse.org/legal/epl-v20.html>
 Use --help to get the list of options.

オプション

アプリケーションごとにどのファイルが処理/生成されるかのオプションがあります。 通常、アプリケーションは最低二つのパラメータ -入力ファイルと出力ファイル- を必要としますが、きめ細かな制御のためにはほぼ常により多くのパラメータが使用されます。 アプリケーションごとのオプションについてはそのアプリケーションの説明に書かれています。 ここでは、オプションをどのように設定するかを示します。

コマンドラインでのオプション設定

オプションには2種類あります。 引数を必要とせず指定されると「真」に設定される真偽値オプション(引数として"true"、"false"のような真偽値が指定されればその値になります)と、引数を必要とするオプションです。 コマンドラインでの引数付きオプションの設定はオプションの名前と値の二つに分かれます。 例として、シミュレーションで"mynet.net.xml"というロードネットワークを読みこむ場合、次のように書けます。

--net mynet.net.xml

先頭の'--'は、オプションの長い名前("net")が来ることを示しています。 空白のあとにはオプションの値を与える必要があります。l 空白のかわりに'='を使うこともできます。

--net=mynet.net.xml

いくつかのよく使われるオプションについては、短縮表記することが可能です。 --netオプションの短縮表記は-nです。 下の表記は上二つと全く同じ動きをします。

-n mynet.net.xml

短縮表記では一つの'-'を使うことに注意してください。

SUMOソフト群のなかで、全ての短縮表記が常に同じ意味を示すわけではありません。

オプションの値の型

SUMOアプリケーションは、どんな種類の値が設定されるべきか知っています。 例えば、NETGENERATEは標準の車線幅を決めることができ、これは整数値でなければいけません。 この時に文字列やその他の値が与えられると、

設定ファイル

オプションのリストがとても長くなってしまうことがあるため、設定ファイルが導入されました。 アプリケーション開始時に必要な全てのパラメータを含んだ設定ファイルを作ることができます。 さらには、設定ファイルを与えるだけでアプリケーションが動くようにします。

設定ファイルはXMLファイルで、configurationという名のルート要素を持っています。 オプションは要素名で書かれ、値はvalue(またはv)l属性に保持されます。 --net-file test.next.xmlというオプションは

一般的なオプション

SUMOスイートのアプリケーションは以下に示すいくつかのオプションを共有しています。

通知オプション

オプション 説明
-v <BOOL>
--verbose <BOOL>
冗長な出力に切りかえます
デフォルト値: false
--print-options <BOOL> 処理前にオプションを出力します
デフォルト値: false
-? <BOOL>
--help <BOOL>
画面にこの表の情報を出力します
デフォルト値: false
-V {{ DT_STRING }}
--version {{ DT_STRING }}
バリデーションスキームを設定します("never", "auto" または "always")
デフォルト値: auto

乱数のオプション

これらのオプションは乱数生成器がどのシード値(seed)を使うかを設定します。 同じシード値からは同じ乱数列が生成されます。

オプション 説明
--seed <INT> 乱数生成器に特定のシード値を設定します。異なる値を使うことで結果が変わりますが、再現が可能になります。
--random SUMOがシード値を選ぶようにします。設定されるとシード値は/dev/urandom の出力に従うかさもなければ現在のシステム時刻を使います。このオプションは--seed <INT>オプションよりも優先されます。

注意: --random--seed <INT>より優先するとは、設定ファイルに書かれた--randomをコマンドラインでの--seed <INT>で上書きできないということを示します。 将来的にはこの問題への解決策が導入されるでしょう。

ファイルの生成と読み込み

SUMOパッケージのほとんど全てのツールが、xmlファイルを読み込み/生成します。 SUMOを使い始める前に、XMLに慣れておく必要があるでしょう。 SUMOは異なるソースからファイルをインポートすることができますが、「ネイティブな」SUMOファイル - 道路ネットワーク設定、道路かつ/または 交通需要の設定、インフラ設定等々 - はSUMO固有のものであり、いかなる標準にも従っていません。 XMLファイルは単純なテキストエディタで読み込み、編集ができ、私達(訳注: 本家Wiki編集者たち)もそのようにしています。 とはいえ、いくつか再利用されるツールも存在するでしょう。

SUMOで使用されるいくつかのファイルタイプについてはxsd(XML Scheme Definition: XMLスキーマ) が存在しています。 ファイル拡張子のページを参照してください。

XML使用に関するヒント

  • WindowsにおけるXMLファイルのデフォルトビューアはInternet Explorerです。 これはXMLファイルを
  • EclipseはXMLを与えられたxsd(XML Schema Definition)に従って書くことができます。

訳注

文中のリンクでダウンロードできるのはEclipseの英語版です。日本語版はPleiadesからダウンロードできます。

ファイルの書き込み

ファイル名<FILE>にはいくつかのオプションをパラメータとして与えることができます。 コマンドラインから与えられたパスは現在のワーキングディレクトリに対して相対パスと見なされます。 設定ファイルで与えられた時は、設定ファイルのある場所からの相対パスと見なされます。 絶対パスの指定ももちろん可能です。

一般に同じ名前のファイルが存在した場合には、警告なしに上書きされます。 また、出力ファイルの書き込まれるフォルダは(実行時に)存在している必要があります。

ファイルの書き込みについては、追加で以下の特別な記法が可能です

  • nullデバイスへの書き込み(なにも出力しない): "NUL"か"/dev/null"をファイル名にしてください(どちらの書き方もプラットフォーム非依存で動きます)
  • ソケットへの書きこみ: "<HOST>:<PORT>"をファイル名にしてください
  • stdout(標準出力)への書きこみ(コマンドラインに書きだし): "stdout"または"-"をファイル名にしてください
  • stderrへの書き込み: "stdrr"をファイル名にしてください
  • ファイル名中の'TIME'文字列は特別で、アプリケーションが開始した時刻に置き換えられます

今のところソケットや標準入力からの読みこみはできません。

出力ファイルの名前を変える簡単な方法として、オプション--output-prefix <STRING>が提供されています。 設定すると、全てのファイルの先頭に指定された文字列が追加されます。

同じ出力ファイルに複数のデータソース(例: 検知器の定義)から書き込むことも可能です

Pythonツールをコマンドラインから使う

SUMOによって配布されている多くのツール(<SUMO_HOME>/toolsフォルダ内)はプログラミング言語pythonで書かれています。 これらを使うには python2.7インストールされている必要があります。

インストールしたら、SUMO_HOME環境変数が設定されていることを確認してください。 最も簡単なのはstart-command-line.batを使ってコマンドラインを開くことです。

さらに、コンピュータがあなたのpythonツールがどこにあるかを知っていることを確認する必要があります。 最も簡単(しかしやや扱いにくい) 方法はフルパスで起動することです。

C:\Users\yourname>D:\path_to_somo\tools\randomTrips.py  ... arguments ...

あるいは、ツールのあるディレクトリを環境変数に追加するという方法もあります。