サマリ
空間データをある座標系から別の座標系に変換します。
使用法
-
入力フィーチャクラスまたはデータセットの座標系が不明か未指定の場合、入力データセットの座標系を [入力データの座標系] パラメーターで指定することができます。これによって、入力データを修正することなく (読み取り専用形式のために修正不可能な場合もあります)、データの座標系を指定することができます。[投影法の定義 (Define Projection)] ツールによって、座標系を永続的にデータセットへ割り当てることもできます。
有効な入力は、ArcGIS アプリケーション (ArcMap、ArcScene、および ArcGlobe) に含まれる フィーチャクラス(ジオデータベース フィーチャクラス、カバレッジ フィーチャクラス、SDC フィーチャクラス、ならびにシェープファイル)、ジオデータベースのフィーチャ データセット、およびフィーチャ レイヤーのすべてのタイプです。
カバレッジ、VPF カバレッジ、ラスター データセット、およびラスター カタログは、このツールの入力としてサポートされていません。ラスター データセットを投影変換するには、[ラスターの投影変換 (Project Raster)] ツールを使用します。
カバレッジを投影変換する場合は、[カバレッジ] ツールボックスの [投影変換 (Project)] ツールを使用します。
ツールの [地理座標系変換] パラメーターはオプションです。地理座標変換や測地基準変換が不要な場合は、パラメーター上にドロップダウン リストは表示されず、空白のままになります。変換が必要な場合は、入力測地基準系および出力測地基準系に基づいてドロップダウン リストが生成され、デフォルトの変換が選択されます。
- たとえば、GCS_North_American_1983 から NAD_1983_UTM_Zone_12N への投影変換は、入力と出力の両方の座標系が NAD_1983 測地基準系であるため、地理座標変換は必要ありません。しかし、GCS_North_American_1983 から WGS_1984_UTM_Zone_12N への投影変換は、入力座標系が NAD_1983 測地基準系を使用しているのに対して、出力座標系が WGS_1984 測地基準系を使用しているため、地理座標変換が必要です。
- 変換の一覧とその使用範囲については、Esri の技術情報記事 #21327 をご参照ください。
in_memory ワークスペースは、出力データセットを書き込む場所としてサポートされていません。
以下に示すような複雑なデータ タイプを投影変換する場合、変換後のデータに対して特定の操作を実行する必要があります。
- ネットワーク データセットを含むフィーチャ データセット: ネットワーク データセットの再構築が必要です。
- トポロジを含むフィーチャ データセット: トポロジを再び整合チェックする必要があります。
フィーチャリンク アノテーションと同様に、入力がリレーションシップ クラスに属する場合、リレーションシップ クラスが出力に変換されます。このルールの例外は、使用されているスタンドアロン テーブルに関連しています。
入力フィーチャの座標および出力座標系の水平線 (有効範囲) によっては、マルチポイント、ライン、およびポリゴンが、投影変換の際にクリップされたり、複数の部分に分割される場合があります。水平線から完全に外れているフィーチャは、NULL の形状で出力に書き込まれます。これらのフィーチャは、[ジオメトリの修正 (Repair Geometry)] ツールを使用して削除できます。
ジオメトリック ネットワークに関係したフィーチャクラスは独立して投影することはできません (ネットワークを含むフィーチャ データセット全体が投影されなければなりません)。
多くのジオプロセシング ツールは出力座標系環境設定を参照します。また、多くのワークフローで、[投影変換 (Project)] ツールを使用する代わりに、この環境設定を利用することができます。たとえば、[ユニオン (Union)] ツールは出力座標系環境設定を参照します。これによって、異なる座標系のフィーチャクラスを結合することができ、結合した出力を全く異なる座標系のフィーチャクラスに書き出すことができます。
このツールでは、レイヤーに対する選択やフィルター設定は無視されます。レイヤーによって参照されるデータセットのすべてのフィーチャが投影されます。選択したフィーチャのみを投影する場合、[フィーチャのコピー (Copy Features)] ツールを使用して、選択したフィーチャのみを含むテンポラリ データセットを作成し、この中間データセットを [投影変換 (Project)] ツールへの入力として使用をすることを検討してください。
-
フィーチャ データセット内のフィーチャクラスが入力として使われると、同じフィーチャ データセットでは出力することができません。これは、フィーチャ データセット内のフィーチャクラスは同じ座標系でなければならないからです。この場合、出力フィーチャクラスはフィーチャ データセットを保持するジオデータベースに書き込まれます。
[形状の維持] パラメーターをオンにすると、正しい投影位置をより正確に表す出力フィーチャが作成されます。[形状の維持] は、ラインまたはポリゴンの境界を、数個の頂点を含む長い直線としてデジタイズする場合に特に役立ちます。[形状の維持] をオンにしない場合、入力のラインまたはポリゴンの境界の既存の頂点が投影され、その結果、フィーチャが新しい座標系に正確に配置されない可能性があります。[形状の維持] をオン (Python では preserve_shape = "PRESERVE_SHAPE") にすると、投影する前に頂点がフィーチャに追加されます。追加されるこれらの頂点によって、投影されるフィーチャの形状が維持されます。[最大オフセット偏差] パラメーターは、追加される頂点の数を制御します。この値は、投影されたフィーチャがツールで計算された正確な投影位置からずれることができる最大距離を表します。この値を小さくすると、追加される頂点が増えます。自分の要件に適した値を選択してください。たとえば、投影された出力が、一般的な縮尺の小さいカートグラフィック表示用である場合、大きい偏差を許容できます。投影された出力が、縮尺の大きい、狭い領域の解析で使用される場合、偏差を小さくすることが必要になります。
構文
Project_management (in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system}, {preserve_shape}, {max_deviation})
パラメータ | 説明 | データ タイプ |
in_dataset | 投影変換するフィーチャクラス、フィーチャ レイヤー、フィーチャ データセット。 | Feature Layer; Feature Dataset |
out_dataset | 結果が書き込まれる出力データセット。 | Feature Class; Feature Dataset |
out_coor_system | 有効な値は、空間参照オブジェクト、拡張子が「.prj」のファイル、または座標系の文字列表現です。 | Coordinate System |
transform_method (オプション) | この方法は、2 つの地理座標系または測地基準系の間のデータ変換に使用できます。入力座標系と出力座標系のデータが異なる場合は、オプションのパラメーターが必要になることがあります。
| String |
in_coor_system (オプション) | 入力フィーチャクラスまたはデータセットの座標系。入力の座標系が不明または未指定の場合、入力データを修正することなく (読み取り専用形式のために修正不可能な場合もあります)、データの座標系を指定することができます。 | Coordinate System |
preserve_shape (オプション) | 投影された形状をより正確にするためにラインまたはポリゴンの出力に頂点を追加します。
| Boolean |
max_deviation (オプション) | preserve_shape = "PRESERVE_SHAPE" の場合に、投影されたラインまたはポリゴンが正確な投影位置からずれることのできる距離を指定します。デフォルトは、出力データセットの空間参照の XY 許容値の 100 倍です。 | Linear unit |
コードのサンプル
Project (投影変換) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトで、Project (投影変換) 関数をイミディエイト モードで使用する方法を示します。
import arcpy
# input data is in NAD 1983 UTM Zone 11N coordinate system
input_features = r"C:/data/Redlands.shp"
# output data
output_feature_class = r"C:/data/Redlands_Project.shp"
# create a spatial reference object for the output coordinate system
out_coordinate_system = arcpy.SpatialReference('NAD 1983 StatePlane California V FIPS 0405 (US Feet)')
# run the tool
arcpy.Project_management(input_features, output_feature_class, out_coordinate_system)
Project (投影変換) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトで、Project (投影変換) 関数をスタンドアロン スクリプトで使用する方法を示します。
# Name: Project_Example2.py
# Description: Project all feature classes in a geodatabase
# Requirements: os module
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data/Redlands.gdb"
arcpy.env.overwriteOutput = True
# Set local variables
outWorkspace = "C:/data/Redlands_utm11.gdb"
try:
# Use ListFeatureClasses to generate a list of inputs
for infc in arcpy.ListFeatureClasses():
# Determine if the input has a defined coordinate system, can't project it if it does not
dsc = arcpy.Describe(infc)
if dsc.spatialReference.Name == "Unknown":
print ('skipped this fc due to undefined coordinate system: ' + infc)
else:
# Determine the new output feature class path and name
outfc = os.path.join(outWorkspace, infc)
# Set output coordinate system
outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 11N')
# run project tool
arcpy.Project_management(infc, outfc, outCS)
# check messages
print(arcpy.GetMessages())
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])
環境
ライセンス情報
- ArcGIS for Desktop Basic: ○
- ArcGIS for Desktop Standard: ○
- ArcGIS for Desktop Advanced: ○