ArcGIS ModelBuilderモデルにバージョン管理を適用していますか?


16

バージョン管理はソフトウェア開発に不可欠なツールであり、Xが最後に正確に仕事をしたときまで確実に時間をさかのぼることができます。また、その時と今の間に何が変わったのかを確認できます。 Xは正確に機能しなくなりました。

ただし、このために知っているすべてのツールは、プレーンテキストファイルでのみ機能します。ツールボックス(10.1で導入されたpythonツールボックスではなく、標準のもの)、およびそのモデルはバイナリです。誰かがバージョン管理を実行するための実行可能な方法を持っていますか?

注:バージョン管理backupとは異なります。Windowsのバックアップ、 -任意の特定の日付/時刻のファイルのスナップショットを作成するための簡単な方法は多数あり、以前のバージョンxcopy /s d:\foobar\ x:\foobar_%date%zip stuff_%date%.zip stuff\*、等が。

gitfossilmercurialsubversion...などのツールをバイナリファイルに適用することは、コミットメッセージを追加できる限り、xcopyまたはzipを使用するよりも1ステップ優れています。「Model foobar%date%now Bazが存在しない場合にのみ結果が得られます」が、同じツールセットがテキストファイルに適用できることと比較すると、まだ貧弱です

WinMergeスクリーンショット

回答:


9

SVNのような中央集中型バージョン管理であろうと、Git、Mercurial、Bazaarなどの分散ソリューションであろうと、すべてのメインストリームバージョン管理ソフトウェアは、バイナリファイルの保存を許可します。これらはすべて、パフォーマンス面でも占有スペースの面でも非常に効果的です。

ファイルのリビジョン/バージョン間の違いを調べることは、もちろん別の話です。実際にバイナリであるArcGISモデルを比較したいときにできることはあまりありません。私はモデル用の差分ツールを知りません。ほとんどの人がこの特定の機能を必要としないので、何かがあるとは思いません。


ただし、以前のバージョンをロールバックおよび/または取得することはできますか?
チャドクーパー

1
ええ、もちろんです。しかし、私が正しく理解していれば、質問はモデル間の実際の違いを見るという線に沿っていると思います。
ペトルクレブス

そのとおり。バイナリの.tbxファイルを既にVCに配置しています(mercurialを使用)が、通常のバックアップから同じファイルを取得する場合とほとんど変わりません。
マットウィルキー

1
git属性を使用すると、簡単なプログラムを使用していくつかのバイナリファイルをバージョン管理できます。.docxおよびimage exifメタデータ用のプログラムは既にあります。ArcGISモデルには、同様のカスタムプログラムが必要です。
ジェームズコンクリング14年

@JamesConklingさん、良いアイデアです。Esriの従業員はボランティアを希望していますか?
nmpeterson

7

現在、ArcCatalogのワークフローがあります:ツールボックスを開く>モデルの選択>編集>ファイル>エクスポート> pythonへ、SCMツールへの切り替え>変更の更新>変更のコミット(ログコメントの入力)

扱いにくいので、あまりやりません。そのため、バージョン管理の多くの利点が失われます。


1
私がやっていることだから、今のところ答えを受け入れる。表示されたら、もっと良いものに喜んで切り替えます!
マットウィルキー14年

問題ありません。とにかく、自分の賞金を獲得することはできません
レーダーの下で14

@以下、私はそれを知っています、解決策は報奨金ではありません(とにかく報奨金を開く前に回答を受け入れました)
マットウィルキー14年

6

ModelBuilderは古くて不格好で、このツイートが何らかの兆候である場合、ArcGIS Proで重要な更新を取得していません。私はそれを大ファンにしたことは一度もありません(残念ながら今でも使用する必要があります)ので、この回答を質問の回避と代替案を検討するための推奨事項とみなしてください。

FMEは、同様のフローダイアグラムUIを備えているため、おそらく最も明白なModelBuilderの代替です。関連する利点の1つは、ドキュメントがプレーンテキスト形式であるため、それらを区別できることです(多くの場合、無視することを学ばなければならない意味のない自動生成のクラフがたくさんあります)。ただし、商用ソフトウェアであるため、一部の人にとってはコストが手が届かない場合があります。

私があまり馴染みのないものには、Orfeo ToolboxWhitebox Geospatial Analysis Tools、およびQGISのグラフィカルモデラーSEXTANTEに基づく)があります。これらはすべて、GUIを備えたオープンソースモデリング環境です。

私が最近GISやオープンデータ会議で見た大きな推進力は、「再現可能な研究」、つまり、他の人と簡単に共有および再現できるデータとプロセスの概念に向かっています。多くの場合、オープンデータ形式、オープンソースソフトウェア、共有リポジトリを使用することを意味します。PythonとRはこのために非常に人気があります。

今年初めにDharhas Pothina がPythonとGISについて発表したことは、これについて良い議論になったと思います。GUIに過度に依存すると、再現性が損なわれることに強く同意します。コードを使用すると、言語に精通している限り、非常にすばやくスキャンして何が起こっているかを把握できますが、GUIでは、多くの場合、互いに深く入れ子になっているさまざまなウィンドウをクリックしてスクロールする必要があります、値と設定を取得します。

確かに、ここにはトレードオフがありますが、私の意見では、深刻な作業(科学的研究、政策立案など)を行う人は、再現性を促進するツールを使用する必要があります。

これはあなたの質問に直接答えないことを申し訳ありません(簡単な答えがあるとは思いませんが)。


3
再現性のある研究の概念についてこれ以上同意できませんでした。私にとって、それが研究者がOSSを使用する最も説得力のある理由です。
djq 14

2
多くの場合、GUIが再現性に悪影響を与えることに大きく依存していることに同意できませんでした。コードとの摩擦は「言語に精通している限り」です。そのゲートの小さなサイズは、野外で、多くの賢くて生産的な人々を外に保ちます。本当にこの質問の核心は、その門を広げる方法を探すことです。Modellerにはほとんど GUIとコードの両方があるため、イライラします。あなたは正しい、それは注意の欠如からつるに枯れている。悲しいことに、Modellerの親しみやすさを通じて、自動化とスクリプトのモジョを見つけようとしている人々がいます。
マットウィルキー14

4

ArcGIS 10.1 for DesktopでのPythonツールボックスの導入により、4年前の声明がすべて無効になります。

ツールボックス、つまりそのモデルはバイナリです。

標準ツールボックスはバイナリですが、Pythonツールボックス(* .pyt)はテキストファイルです。

したがって、ソースコードのバージョン管理がGUIを構築するモデルの要件に勝る場合は、Pythonツールボックスを検討する必要があると思います。

これは、PythonスクリプトツールではなくPythonツールボックスを学習/使用する理由に関する回答から知っています。しかし、標準のツールボックスではなくPythonツールボックスを使用する(バージョン管理に簡単にアクセスする)オプションをこのQ&Aの将来の読者が見過ごさないように、ここに回答として含める必要があると思いました。


この重要な区別を引き出してくれてありがとう。残念ながら、実際にはまったく異なるクリーチャーであるツールボックスに同じ単語、ツールボックスが使用されています。それに応じて文言を修正します。
マットウィルキー14年

1

多くの点で、ESRIがArcGIS Proへの移行に伴いジオプロセシングフレームワークとModelbuilder全体をオーバーホールしなかったことは実際にうれしいです。ESRIが互換性を壊した場合、完全なオーバーホールを必要とする巨大なカスタムモデルの構築に多額の投資をした(研究)組織があります。

Arc / Info AMLマクロのバックグラウンドからPython /ジオプロセシングへの移行と同様に、これは間違いなく大きな影響と多くの人々の損失を意味します。ArcGISの最初のリリースから5〜8年後でも、研究者や政府機関は、このようなフォーラムでAMLモデルに言及していましたが、時間、お金、またはPythonに変換することができませんでした。その他の制約。これは、このような移行の潜在的な影響を示しているだけであり、間違いなく巨大です。

ModelBuilderがよくわからない場合、ModelBuilderが「不格好」になることがありますが、Pythonの学習を始めてから、ツール検証プログラミング(http://resources.arcgis.com/en/help/main /10.2/index.html#//00150000000v000000)、「痛み」の大部分は撤回されました。これで、ツール検証で発生する可能性のある「暗号化された」エラーメッセージのいくつかをよりよく理解し、モデルのどの部分が破損しているのかがわかりません。適切なツール検証コードを記述することで、より効果的に修正または防止できます。これは、非Pythonツールボックス/モデルをPythonスクリプトと「統合」するときに特に役立ちます。

私はまだ持っていますが、それはModelBuilderの生活を大きくすることを願っていますより簡単なのは、自動ツール検証が実際にツールを強調表示し、変数に関連する警告またはエラーを引き起こすモデルを自動的に開いた場合です。または、少なくとも、無効なモデルで[OK]をクリックするとポップアップするエラーと警告のリストには、正確なツール名と、無効なツールが存在するモデルの名前を含める必要があります。ネストされたモデルが多数あり、特定の検証エラーの原因となったツールを見つけると、ツールまたは(サブ)モデル名ではなく無効な変数名のみが含まれるエラーのリストだけでは面倒な場合があります。実際に、ESRIがリストにツールとモデル名を含めなかった理由について、私は迷っています。この問題は簡単に修正できるようです。

また、モデルで定義されている名前でツールを検索するための一種の「検索」機能が便利です。


マルコ、あなたの視点と視点に感謝します!ただし、ここではトピックはありません。目標は、モデルビルダーで使用可能なバージョン管理を見つける(試行する)ことです。チャットに移動しましょう:chat.stackexchange.com/rooms/939/gis
マットウィルキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.