2012-03-12 11 views
2

私は暗闇の中で誰かがこれで私を導くことができるショットを撮っています。私はちょうどこれに取り組んできましたし、情報が見つけにくいです。私は土地利用の変化をシミュレートし、arcgisラスタ画像を出力することができるPythonコードを持っています。流域モデルSWATは、これらの画像を使用して河川流量を生成する土地利用パラメータを計算する。私はSWATのソースコードを持っています、それはfortranで書かれています。私は基本的に私のpythonコードを使ってSWATと話す方法を尋ねています。 SWATはtxtファイルを使用して流域モデルをコンパイルします。私は、土地利用の毎年の変化について何度も何度も何度も何度も何度も土地利用ラスタを使ってtxtファイルを書いているSWATsを傍受する必要があります。私はどこから始めるべきかわからないので、そのプロセスに関する助言は大いに感謝されます。 ありがとう!SWAT流域モデルとPythonコードを結合する方法

+0

SWATは、ディスクからファイルを読み込むだけですか? –

+1

'intercept'と言うと、ドロップファイルの場所を監視するのに十分ですか、より直接的に対話する必要がありますか? –

+0

SWATは、地形図、土地利用地図、土壌図から入力ファイルを作成します。最初に "ベース"のファイルを作成することができますが、私が行った変更ごとに土地利用に関連するファイルを書き直す必要があります。 – Linda

答えて

1

SWATはおそらく「バッチ」モード)。 1回の呼び出しでたくさんのファイルを生成すると、プログラムはそれらを読み込んで処理することができます。結果を生成するために何度も呼び出す必要がある場合は、PythonプログラムからSWATを呼び出すことができます。 SWATが必要とするコマンドラインオプション(または制御ファイル)を解説し、次にPythonモジュールsubprocessを見てください。

+0

あなたのご意見ありがとうございます。私はそれをチェックする。 – Linda

+0

私はこれをどのように処理したかに関するちょうどアップデート... Alexプロセスは、サブプロセスモジュールを使用して自分のコードからSWATモデルを開くだけで最高のリードを与えました。当時、私はこれが存在するのか分からなかった。私は流域モデルのサブルーチンをあまりにも複雑にするのではなく、マウスを数回クリックするだけで、非常に複雑ないくつかのステップを完了することができます。それに関連して約50〜60のサブルーチンがあります。コードを移動する前にモデルを開き、私のことをして閉じているだけで、私の場合に最適な解決策でした。アレクシスのお手伝いをありがとう。 – Linda

2

あなたはF2PYを見ましたか? SWATがすでにある場合、または自分で書くことができる場合、ファイルに書き込まれる前にデータを取得する方法は、かなりシームレスなインターフェースを作ることができます。 (私はいくつかのレガシーコードで何年か前にこのタイプのことをしていて、その結果に非常に満足していました)プログラムとデータをずっと簡単に扱うことができました)

+0

いいえ、私はそれを検討していません。リードしてくれてありがとう。やってみます。 – Linda