テレインの作成 (3D Analyst)
サマリ
新しいテレイン データセットを作成します。
使用法
テレインは、フィーチャ データセットに置く必要があります。
-
[平均ポイント間隔] パラメータは、テレインで使用するデータに従って設定する必要があります。この値は正確である必要はありませんが、適切な近似値を表している必要があります。収集されたデータの密度が場所によって大幅に異なる場合は、この値を決定する際に、より小さな間隔を値として使用します。
ポイント間隔を使用して、テレインのタイル サイズを決定します。テレインのタイル サイズは、データ解析や表示パフォーマンスを最適化するのに使用します。各タイルは近似させて、含むソースの標高ポイントが 200,000 を超えないようにします。
[テレイン ピラミッド レベルの追加(Add Terrain Pyramid Level)]、[テレインにフィーチャクラスを追加(Add Feature Class to Terrain)]、[テレインの構築(Build Terrain)] の順に使用してテレイン定義を完成し、使用可能なテレイン データセットを作成します。
-
テレインを構築するジオプロセシング ツールは、Python スクリプトと ModelBuilder でのデータ処理を自動化することを想定しています。対話的に新しいテレインを作成する場合は、ArcCatalog またはカタログ ウィンドウでテレイン ウィザード を使用することを検討してください。テレイン ウィザードにアクセスし、フィーチャ データセットを右クリックして、[新規作成] → [テレイン] の順にクリックします。
構文
パラメータ | 説明 | データ タイプ |
in_feature_dataset |
テレイン データセットの作成先となるフィーチャ データセットです。 | Feature Dataset |
out_terrain_name |
出力テレイン データセットです。 | String |
average_point_spacing |
テレインの構築に使用されたデータのポイント間の水平方向の平均(名目)距離です。写真測量、LIDAR、および SONAR 調査のために収集されたデータには、通常、既知の間隔があります。この値を使用する必要があります。この間隔がよくわからない場合は、推測で入力せずに、もう一度戻ってデータを確認してください。間隔は、フィーチャ データセットの座標系の横方向の単位で指定されます。 | Double |
max_overview_size (オプション) |
テレインの概観図は、テレイン データセットの最も解像度の低い表現で、画像のサムネイルの概念に似ています。最大サイズは、概観図を作成するためにサンプリングされる計測ポイント数の上限です。 | Long |
config_keyword (オプション) |
ArcSDE のコンフィグレーション キーワードです。コンフィグレーション キーワードは、データベースの格納を最適化するのに使用します。通常、これはデータベース管理者が設定します。 | String |
pyramid_type (オプション) |
テレイン ピラミッドを構築するのに使用するポイントの間引き処理です。
| String |
windowsize_method (オプション) |
ウィンドウ サイズで定義される領域のポイントを選択するのに使用される基準です。このパラメータは、WINDOWSIZE が [ピラミッド タイプ] パラメータで指定される場合にのみ適用可能です。
| String |
secondary_thinning_method (オプション) |
間引き処理の追加オプションを指定して、ウィンドウ サイズのピラミッドが使用されているときに平坦なエリアで使用されるポイントの数を減らします。エリアのポイントの高さが [追加間引き処理の閾値] パラメータに指定された値内にある場合、そのエリアは平坦であると見なされます。その効果は、ピラミッド レベルの解像度が高いほど明白になります。より小さなエリアは、より大きなエリアよりも平坦である可能性が高いためです。
| String |
secondary_thinning_threshold (オプション) |
「ウィンドウ サイズ」フィルタの二次間引きを有効にするときに使用する垂直方向の閾値です。データの垂直精度以上の値を設定する必要があります。 | Double |
コードのサンプル
The following sample demonstrates the use of this tool in the Python window:
import arcpy from arcpy import env arcpy.CheckOutExtension('3D') env.workspace = 'C:/data' arcpy.CreateTerrain_3d('source.gdb/Redlands', 'Redlands_terrain', 5, 50000, '', 'WINDOWSIZE', 'ZMIN', 'NONE', 1)
The following sample demonstrates the use of this tool in a stand-alone Python script:
"""**************************************************************************** Name: Create Terrain from TIN Description: This script demonstrates how to create a terrain dataset using features extracted from a TIN. It is particularly useful in situations where the source data used in the TIN is not available, and the amount of data stored in the TIN proves to be too large for the TIN. The terrain's scalability will allow improved display performance and faster analysis. The script is designed to work as a script tool with 5 input arguments. ****************************************************************************""" # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env # Set local variables tin = arcpy.GetParameterAsText(0) # TIN used to create terrain gdbLocation = arcpy.GetParameterAsText(1) # Folder that will store terran GDB gdbName = arcpy.GetParameterAsText(2) # Name of terrain GDB fdName = arcpy.GetParameterAsText(3) # Name of feature dataset terrainName = arcpy.GetParameterAsText(4) # Name of terrain try: arcpy.CheckOutExtension("3D") # Create the file gdb that will store the feature dataset arcpy.management.CreateFileGDB(gdbLocation, gdbName) gdb = '{0}/{1}'.format(gdbLocation, gdbName) # Obtain spatial reference from TIN SR = arcpy.Describe(tin).spatialReference # Create the feature dataset that will store the terrain arcpy.management.CreateFeatureDataset(gdb, fdName, SR) fd = '{0}/{1}'.format(gdb, fdName) # Export TIN elements to feature classes for terrain arcpy.AddMessage("Exporting TIN footprint to define terrain boundary...") boundary = "{0}/boundary".format(fd) # Execute TinDomain arcpy.ddd.TinDomain(tin, tinDomain, 'POLYGON') arcpy.AddMessage("Exporting TIN breaklines...") breaklines = "{0}/breaklines".format(fd) # Execute TinLine arcpy.ddd.TinLine(tin, breaklines, "Code") arcpy.AddMessage("Exporting TIN nodes...") masspoints = "{0}/masspoints".format(fd) # Execute TinNode arcpy.ddd.TinNode(sourceTIN, TIN_nodes) arcpy.AddMessage("Creating terrain dataset...") terrain = "terrain_from_tin" # Execute CreateTerrain arcpy.ddd.CreateTerrain(fd, terrainName, 10, 50000, "", "WINDOWSIZE", "ZMEAN", "NONE", 1) arcpy.AddMessage("Adding terrain pyramid levels...") terrain = "{0}/{1}".format(fd, terrainName) pyramids = ["20 5000", "25 10000", "35 25000", "50 50000"] # Execute AddTerrainPyramidLevel arcpy.ddd.AddTerrainPyramidLevel(terrain, "", pyramids) arcpy.AddMessage("Adding features to terrain...") inFeatures = "{0} Shape softclip 1 0 10 true false boundary_embed <None> "\ "false; {1} Shape masspoints 1 0 50 true false points_embed "\ "<None> false; {2} Shape softline 1 0 25 false false lines_embed "\ "<None> false".format(boundary, masspoints, breaklines) # Execute AddFeatureClassToTerrain arcpy.ddd.AddFeatureClassToTerrain(terrain, inFeatures) arcpy.AddMessage("Building terrain...") # Execute BuildTerrain arcpy.ddd.BuildTerrain(terrain, "NO_UPDATE_EXTENT") arcpy.GetMessages() except arcpy.ExecuteError: print arcpy.GetMessages() except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] # Concatenate error information into message string pymsg = "PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}"\ .format(tbinfo, str(sys.exc_info()[1])) msgs = "ArcPy ERRORS:\n {0}\n".format(arcpy.GetMessages(2)) # Return python error messages for script tool or Python Window arcpy.AddError(pymsg) arcpy.AddError(msgs) finally: arcpy.CheckInExtension("3D")