ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

空間検索 (Select Layer By Location)

  • サマリ
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

別のレイヤーのフィーチャに対する空間リレーションシップに基づいて、レイヤーのフィーチャを選択します。

[入力フィーチャ レイヤー] の各フィーチャは、[選択フィーチャ] レイヤーまたはフィーチャクラスのフィーチャに対して評価され、指定した [リレーションシップ] を満たすと、その入力フィーチャが選択されます。

リレーションシップの図の例

使用法

  • 入力として、フィーチャ レイヤーを指定します。フィーチャクラスは指定できません。

  • このツールは、ArcMap、ArcGlobe、または ArcScene のレイヤーの他、[フィーチャ レイヤーの作成 (Make Feature Layer)] ツールを使用したモデルおよびスクリプトに作成されたレイヤーに対して機能します。

  • 空間リレーションシップを評価する際の座標系は、結果に影響を与えます。ある座標系で交差するフィーチャが、別の座標系でも交差するとは限りません。

    • このツールは、空間リレーションシップを入力フィーチャ レイヤーのデータ ソース (ディスク上のフィーチャクラス) の座標系で評価します。空間リレーションシップを別の座標系で評価するには、出力座標系環境を設定します。

  • このツールを使って、同じレイヤー内の他のフィーチャへの空間リレーションシップに基づいて、フィーチャを選択することができます。例については、「レイヤー内での空間検索」をご参照ください。

  • [行のカウント (Get Count)] ツールを使用すると、[空間検索 (Select Layer By Location)] ツールで選択したフィーチャ数がわかります。この情報は、自動化されたワークフローの一部として分析を進める前に、フィーチャが目的の空間リレーションシップに一致しているかどうかを判断する際に役立ちます。

  • 3 次元空間リレーションシップ (INTERSECT_3D および WITHIN_A_DISTANCE_3D) の使用方法の詳細については、「空間検索の 3D リレーションシップ」をご参照ください。

構文

SelectLayerByLocation_management (in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
パラメータ説明データ タイプ
in_layer

select_features に対して評価されるフィーチャを含むレイヤー。このレイヤーに選択が適用されます。ディスク上のフィーチャクラスへのパスを入力として指定することはできません。

Feature Layer; Mosaic Layer; Raster Catalog Layer
overlap_type
(オプション)

評価される空間リレーションシップ。

  • INTERSECT —入力レイヤー内のフィーチャは、そのフィーチャが選択フィーチャと交差している場合に選択対象になります。これがデフォルトです。
  • INTERSECT_3D —入力レイヤー内のフィーチャは、そのフィーチャが 3 次元空間 (X、Y、および Z) で選択しているフィーチャと交差している場合に選択対象になります。
  • WITHIN_A_DISTANCE —入力レイヤー内のフィーチャは、そのフィーチャが選択フィーチャから指定の距離内にある場合に選択対象になります。[選択距離] パラメーターに距離を指定します。
  • WITHIN_A_DISTANCE_3D —入力レイヤー内のフィーチャは、そのフィーチャが 3 次元空間で選択フィーチャから指定の距離内にある場合に選択対象になります。[選択距離] パラメーターに距離を指定します。
  • WITHIN_A_DISTANCE_GEODESIC —入力レイヤー内のフィーチャは、そのフィーチャが選択フィーチャから指定の距離内にある場合に選択対象になります。フィーチャ間の距離は、測地線メソッドを使用して計算されます。このメソッドは、地球のカーブを考慮して、日付変更線と極の付近や交差するデータを正しく処理します。
  • CONTAINS —入力レイヤー内のフィーチャは、そのフィーチャが選択フィーチャを包含している場合に選択対象になります。
  • COMPLETELY_CONTAINS —入力レイヤー内のフィーチャは、そのフィーチャが完全に選択フィーチャを包含している場合に選択対象になります。
  • CONTAINS_CLEMENTINI —この空間リレーションシップは、選択フィーチャが完全に入力フィーチャの境界線上にある (選択フィーチャのどの部分も入力フィーチャの内部または外部にない) 場合、そのフィーチャは選択されない点を除くと、COMPLETELY_CONTAINS と同じ結果になります。Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • WITHIN —入力レイヤーのフィーチャは、選択フィーチャに含まれる場合に選択対象になります。
  • COMPLETELY_WITHIN —入力レイヤー内のフィーチャは、完全に選択フィーチャに含まれる場合に選択対象になります。
  • WITHIN_CLEMENTINI —入力レイヤーのフィーチャ全体が、選択レイヤーのフィーチャの境界線の上にある場合にはフィーチャが選択対象にならない点を除き、WITHIN と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • ARE_IDENTICAL_TO —入力レイヤー内のフィーチャは、そのフィーチャが (ジオメトリ上) 選択フィーチャと一致する場合に選択対象になります。
  • BOUNDARY_TOUCHES —入力レイヤー内のフィーチャは、選択フィーチャに接する境界線がある場合に選択対象になります。入力フィーチャがラインまたはポリゴンであるとき、入力フィーチャの境界線は、選択フィーチャの境界線と接することができるだけで、入力フィーチャのいずれの部分も選択フィーチャの境界線と重なることはできません。
  • SHARE_A_LINE_SEGMENT_WITH —入力レイヤーのフィーチャは、ライン セグメントを選択フィーチャと共有する場合に選択対象となります。入力フィーチャおよび選択フィーチャは、ラインまたはポリゴンのどちらかでなければなりません。
  • CROSSED_BY_THE_OUTLINE_OF —入力レイヤーのフィーチャは、選択フィーチャのアウトラインと交差する場合に選択対象となります。入力フィーチャおよび選択フィーチャは、ラインまたはポリゴンのどちらかでなければなりません。入力レイヤーまたは選択レイヤーとしてポリゴンが使用される場合には、ポリゴンの境界線 (ライン) が使用されます。ポイントで交差するラインは選択されますが、ライン セグメントを共有するラインは選択されません。
  • HAVE_THEIR_CENTER_IN —入力レイヤー内のフィーチャは、その中心が選択フィーチャに含まれる場合に選択対象になります。フィーチャの中心は、次のように計算されます。ポリゴンとマルチポイントの場合は、ジオメトリの重心を使用します。ライン入力の場合は、ジオメトリの中間点を使用します。
String
select_features
(オプション)

入力フィーチャ レイヤーのフィーチャは、このレイヤーまたはフィーチャクラスのフィーチャとの関係に基づき、選択対象となります。

Feature Layer
search_distance
(オプション)

このパラメーターは、overlap_type パラメーターが、WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, または WITHIN のいずれかに設定されている場合にのみ有効です。

WITHIN_A_DISTANCE_GEODESIC オプションを使用した場合、キロメートルやマイルなどの距離単位を使用する必要があります。

Linear unit
selection_type
(オプション)

選択をどのように入力に適用するか、および既存の選択とどのように統合するかを決定します。ここには、既存の選択を消去するオプションはありません。選択を消去するには、[属性検索 (Select Layer By Attribute)] ツールで CLEAR_SELECTION オプションを選択します。

  • NEW_SELECTION —結果として得られる選択によって、既存の選択が置換されます。これがデフォルトです。
  • ADD_TO_SELECTION —選択が存在する場合、結果として得られる選択が既存の選択に追加されます。選択が存在しない場合は、NEW_SELECTION オプションと同じです。
  • REMOVE_FROM_SELECTION —結果として得られる選択が、既存の選択から削除されます。選択が存在しない場合、このオプションは影響を与えません。
  • SUBSET_SELECTION —結果として得られる選択が、既存の選択に統合されます。両方に共通のレコードだけが選択された状態となります。
  • SWITCH_SELECTION —選択を切り替えます。選択されたすべてのレコードが選択から削除され、選択されなかったすべてのレコードが選択に追加されます。 このオプションを選択すると、select_features および overlap_type パラメーターは無視されます。
String
invert_spatial_relationship
(オプション)

空間リレーションシップが評価された後、このオプションによって、結果をそのまま使用するか変換するかが決定されます。たとえば、このオプションを使用すると、交差しないまたは別のデータセットのフィーチャの距離内にないフィーチャのリストを迅速に取得することができます。

  • NOT_INVERT —検索の結果は反転されません。これがデフォルトです。
  • INVERT —検索の結果は反転されます。selection_type オプションを使用する場合、反転は、選択フィーチャが既存の選択フィーチャを結合される前に行われます。
Boolean

コードのサンプル

SelectLayerByLocation (空間検索) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SelectLayerByLocation (空間検索) 関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。

import arcpy

# First, make a layer from the feature class
arcpy.MakeFeatureLayer_management("c:/kamsack.gdb/parcel", "parcel_lyr")

# Then add a selection to the layer based on location to features in another feature class 
arcpy.SelectLayerByLocation_management ("parcel_lyr", "have_their_center_in", "c:/kamsack.gdb/city_limits")
SelectLayerByLocation (空間検索) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、位置と属性検索に基づいてフィーチャを新しいフィーチャクラスに抽出するために、ワークフローで SelectLayerByLocation (空間検索) 関数を使用する方法を示したものです。

# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a Location and an attribute query

# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = "c:/data/mexico.gdb"

# Make a layer and select cities which overlap the chihuahua polygon
arcpy.MakeFeatureLayer_management('cities', 'cities_lyr') 
arcpy.SelectLayerByLocation_management('cities_lyr', 'intersect', 'chihuahua')
 
# Within the previous selection sub-select cities which have population > 10,000
arcpy.SelectLayerByAttribute_management('cities_lyr', 
                                        'SUBSET_SELECTION', 
                                        '"population" > 10000')

# If features matched criteria write them to a new feature class
matchcount = int(arcpy.GetCount_management('cities_lyr')[0]) 
if matchcount == 0:
    print('no features matched spatial and attribute criteria')
else:
    arcpy.CopyFeatures_management('cities_lyr', 'chihuahua_10000plus')
    print('{0} cities that matched criteria written to {0}'.format(
                                                  matchcount, chihuahua_10000plus))

環境

  • 現在のワークスペース
  • 出力データの座標系

ライセンス情報

  • ArcGIS for Desktop Basic: ○
  • ArcGIS for Desktop Standard: ○
  • ArcGIS for Desktop Advanced: ○

関連トピック

  • レイヤーとテーブル ビュー ツールセットの概要
  • レイヤーとテーブル ビューの使用
  • レイヤーとテーブル ビューの操作
  • レイヤーでの選択の作成と使用
  • 空間検索の使用 (ArcMap ダイアログ)
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル