ArcMap 10.1 セッションから実行する Python スクリプトを作成しました。ただし、可能であれば、スタンドアロン スクリプトとして実行するように変更したいと考えています。問題は、ArcMap の外部で実行するときにユーザーにパラメーターの入力を求めるための回避策が見当たらないことです。
これは合理的に行うことさえできますか?もしそうなら、私はそれにどのようにアプローチしますか?以下は私のスクリプトのサンプルです。これを変更して、コマンド ラインでユーザーにパラメーター 0 と 1 のパス名を入力するように求めるにはどうすればよいですか?
import arcpy
arcpy.env.overwriteOutput = True
siteArea = arcpy.GetParameterAsText(0)
tempGDB_Dir = arcpy.GetParameterAsText(1)
tempGDB = tempGDB_Dir + "\\tempGDB.gdb"
# Data from which records will be extracted
redWoods = "D:\\Data\\GIS\\Landforms\\Tress.gdb\\Redwoods"
# List of tree names that will be used in join
treesOfInterest = "C:\\Data\\GIS\\Trees\\RedwoodList.dbf"
inFeature = [redWoods, siteArea]
tempFC = tempGDB_Dir + "\\TempFC"
tempFC_Layer = "TempFC_Layer"
output_dbf = tempGDB_Dir + "\\Output.dbf"
# Make a temporaty geodatabase
arcpy.CreateFileGDB_management(tempGDB_Dir, "tempGDB.gdb")
# Intersect trees with site area
arcpy.Intersect_analysis([redWoods, siteArea], tempFC, "ALL", "", "INPUT")
# Make a temporary feature layer of the results
arcpy.MakeFeatureLayer_management(tempFC, tempFC_Layer)
# Join redwoods data layer to list of trees
arcpy.AddJoin_management(tempFC_Layer, "TreeID", treesOfInterest, "TreeID", "KEEP_COMMON")
# Frequency analysis - keeps only distinct species values
arcpy.Frequency_analysis(tempFC_Layer, output_dbf, "tempFC.TreeID;tempFC.TreeID", "")
# Delete temporary files
arcpy.Delete_management(tempFC_Layer)
arcpy.Delete_management(tempGDB)
これは、プログラム的な問題であると同時に、哲学的な問題でもあります。私はこれができるかどうか、そしてこの方法でそれを行うための努力の量に興味があります. マップ ドキュメントを開かないという利便性に見合う価値があるでしょうか。