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
  • マイ プロフィール
  • サイン アウト

ヘルプ

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

最近接 (Near)

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

サマリ

入力フィーチャと、別のレイヤーまたはフィーチャクラス内の最近接フィーチャとの間の、距離および他の近接情報を計算します。

ジオプロセシング ツールでの近接性の計算方法の詳細

図

ジオメトリ タイプ別の近接フィーチャの検索

使用法

  • 以下のフィールドが入力に追加されます。これらのフィールドがすでに存在する場合、フィールドの値が更新されます。

    フィールド名説明
    NEAR_FID

    最近接フィーチャのオブジェクト ID。近接フィーチャが見つからない場合、この値は -1 になります。

    NEAR_DIST

    入力フィーチャと近接フィーチャ間の距離。この値の単位は、[メソッド] パラメーターが [測地線] に設定され、入力が地理座標系内にある場合、入力フィーチャの座標系の距離単位、つまりメートルです。近接フィーチャが見つからない場合、この値は -1 になります。

    NEAR_FC

    近接フィーチャを含むフィーチャクラスのカタログ パス。このフィールドは、複数の近接フィーチャが指定された場合にのみ出力テーブルに追加されます。近接フィーチャが見つからない場合、この値は空の文字列または NULL になります。

    [位置] パラメーターがオン (Python では、location パラメーターを LOCATION に設定) の場合、以下のフィールドが入力フィーチャに追加されます。フィールドがすでに存在する場合、フィールドの値が更新されます。フィールドの値の単位は、[メソッド] パラメーターで選択した内容によって異なります。[平面] に設定した場合、値は入力フィーチャの座標系の距離単位で表されます。[測地線] に設定した場合、値は入力フィーチャの座標系に関連付けられた地理座標系で表されます。

    フィールド名説明
    NEAR_X

    入力フィーチャに最も近い近接フィーチャの位置の X 座標。近接フィーチャが見つからない場合、この値は -1 になります。

    NEAR_Y

    入力フィーチャに最も近い近接フィーチャの位置の Y 座標。近接フィーチャが見つからない場合、この値は -1 になります。

    [角度] パラメーターがオン (Python では、angle パラメーターを ANGLE に設定) の場合、以下のフィールドが入力フィーチャに追加されます。フィールドがすでに存在する場合、フィールドの値が更新されます。

    フィールド説明
    NEAR_ANGLE

    入力フィーチャを近接フィーチャに接続するラインの、FROM_X と FROM_Y の位置での角度。近接フィーチャが見つからない場合、または近接フィーチャが入力フィーチャと交差する場合、この値は 0 になります。

  • 検索範囲内でフィーチャが見つからない場合、NEAR_FID と NEAR_DIST の値は -1 になります。

  • 入力フィーチャと近接フィーチャには、ポイント、マルチポイント、ライン、またはポリゴンを指定できます。

  • 近接フィーチャには、さまざまな形状タイプ (ポイント、マルチポイント、ライン、またはポリゴン) の 1 つ以上のフィーチャクラスを含めることができます。

  • 同じフィーチャクラスまたはレイヤーを、入力フィーチャと近接フィーチャの両方に使用することができます。その場合、すべてのフィーチャの最近接フィーチャがそのフィーチャ自体になることを防ぐために、評価対象の入力フィーチャは、近接フィーチャの候補から除外されます。

  • 入力フィーチャには、選択を実行したレイヤーを指定できます。選択フィーチャは、ツールの実行中に使用および更新されます。残りのフィーチャには、新規作成されたフィールド (NEAR_FID、NEAR_DIST など) に -1 の値が設定されます。

  • 入力フィーチャからの最短距離が等しい複数の近接フィーチャが存在する場合、そのうちの 1 つが最近接フィーチャとしてランダムに選択されます。

  • [メソッド] パラメーターで [平面] オプションを使用する場合、入力フィーチャの座標系を、距離の測定に適した投影座標系 (正距方位図法など) にする必要があります。

    地理座標系と投影座標系の詳細

  • FROM_X、FROM_Y、NEAR_X、および NEAR_Y の位置を視覚化するには、出力テーブルを、[XY イベント レイヤーの作成 (Make XY Event Layer)] ツールまたは [XY 座標 → ライン (XY To Line)] ツールへの入力として使用します。

構文

Near_analysis (in_features, near_features, {search_radius}, {location}, {angle}, {method})
パラメータ説明データ タイプ
in_features

ポイント、ポリライン、ポリゴン、またはマルチポイント タイプの入力フィーチャ。

Feature Layer
near_features
[near_features,...]

近接フィーチャの候補が含まれる 1 つ以上のフィーチャ レイヤーまたはフィーチャクラス。近接フィーチャとして、ポイント、ポリライン、ポリゴン、またはマルチポイントを使用できます。複数のレイヤーまたはフィーチャクラスを指定した場合、NEAR_FC という名前のフィールドが入力テーブルに追加されます。このフィールドには、検出された最近接フィーチャを含むソース フィーチャクラスのパスが格納されます。同じフィーチャクラスまたはレイヤーを、入力フィーチャと近接フィーチャの両方に使用することができます。

Feature Layer
search_radius
(オプション)

近接フィーチャの検索に使用される半径。この値を指定しない場合、すべての近接フィーチャが考慮されます。距離を指定して、単位を指定しないか、単位に不明を指定した場合、入力フィーチャの座標系の単位が使用されます。[測地線] オプションを使用した場合、キロメートルやマイルなどの距離単位を使用する必要があります。

Linear unit
location
(オプション)

近接フィーチャ上の最も近い位置を示す XY 座標を NEAR_X フィールドと NEAR_Y フィールドに書き込むかどうかを指定します。

  • NO_LOCATION — 出力テーブルに位置情報を書き込みません。これがデフォルトです。
  • LOCATION — 出力テーブルに位置情報を書き込みます。
Boolean
angle
(オプション)

近接角度を計算して出力テーブルの NEAR_ANGLE フィールドに書き込むかどうかを指定します。近接角度は、入力フィーチャとその最近接フィーチャを最も近い位置で接続するラインの方向を示します。method パラメーターで PLANAR を使用した場合、角度の範囲は -180 〜 180°になり、0°は東、90°は北、180° (または -180°) は西、-90°は南を示します。GEODESIC を使用した場合、角度の範囲は -180 〜 180°になり、0°は北、90°は東、180° (または -180°) は南、-90°は西を示します。

  • NO_ANGLE —近接角度値は書き込まれません。これがデフォルトです。
  • ANGLE —近接角度値が NEAR_ANGLE フィールドに書き込まれます。
Boolean
method
(オプション)

楕円体 (GEODESIC) または平面地球 (PLANAR) のどちらで最短パスを使用するかを指定します。データが、距離の計測に適さない座標系 (Web メルカトル、任意の地理座標系など) で格納されている場合や、解析が広い地理範囲にまたがる場合、[測地線] を使用することを強くお勧めします。

  • PLANAR —フィーチャ間で平面距離を使用します。これがデフォルトです。
  • GEODESIC —フィーチャ間で測地距離を使用します。この方法では、楕円体の曲率を考慮して、日付変更線と極の近くのデータを正確に処理します。
String

コードのサンプル

Near (最近接) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで Near (最近接) 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/city.gdb" 

## find the nearest road from each house
arcpy.Near_analysis('houses', 'roads')
Near (最近接) の例 2 (スタンドアロン Python スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで最近接関数を使用する方法を示しています。

# Name: Near.py
# Description: Finds nearest features from input feature class to near feature class.

import arcpy

# Set workspace environment
arcpy.env.workspace = "C:/data/city.gdb"

try:
    # set local variables
    in_features = "houses"
    near_features = "parks"
    
    # find features only within search radius
    search_radius = "5000 Meters"
    
    # find location nearest features
    location = "LOCATION"
    
    # avoid getting angle of neares features
    angle = "NO_ANGLE"
    
    # execute the function
    arcpy.Near_analysis(in_features, near_features, search_radius, location, angle)
    
    # get geoprocessing messages
    print(arcpy.GetMessages())

except arcpy.ExecuteError:
    print(arcpy.GetMessages(2))
    
except Exception as err:
    print(err.args[0])
Near (最近接) の例 3 (スタンドアロン Python スクリプト)

次の Python スクリプトは、近接角度を方位角に変換する方法を示しています。

# Name: near_angle_to_azimuth.py

import arcpy

# Near tool does not calculate angle in azimuths
# This script, using the output of the tool, converts the angles
# to azimuth angles.

in_table = r"C:/data/city.gdb/near_table"
    
angles = arcpy.da.SearchCursor(in_table, ["NEAR_ANGLE"])

azimuth_angles = []

with angles as rows:
    for row in rows:
        angle = row[0]
        if angle <= 180 and angle > 90:
            azimuth_angles.append(360.0 - (angle - 90))
        else:
            azimuth_angles.append(abs(angle - 90))

# Use these azimuth angles as necessary.
Near (最近接) の例 4 (スタンドアロン Python スクリプト)

[最近接 (Near)] ツールの派生出力の後処理を示しています。このスクリプトは、最近接フィーチャごとに、最も近い入力フィーチャを検出します。

# Name: features_closest_to_input.py

"""
    This script finds, for each input feature, a list of near feature it is closest to.
    If near features 6, 7, 10 are closest to input feature 3 then the 
    resulting dictionary will have a list [6, 7, 10] as value for key 3
"""

import os
import arcpy

in_fc = r"C:\data\cities.gdb\cities_many"

# create a dictionary to hold the list of near ids for each input id
nearest_dict = dict()

with arcpy.da.SearchCursor(in_fc, ["OID@", "NEAR_FID"]) as rows:
    for row in rows:
        nearest_id = row[0]  # get OID value for that row
        input_id = row[1]    # get NEAR_FID value 
        
        if input_id in nearest_dict:
            # if a dict key already exists, append near id to value list for that key
            nearest_dict[input_id].append(nearest_id)
        else:
            # if the key does not exist then create a new list with near id
            # and add it to the dictionary
            nearest_dict[input_id] = [nearest_id]
            
print(nearest_dict)

# output will look like:
# {1: [13, 28], 2: [2, 9, 14, 20, 22], 3: [11, 12, 24, 25]}

環境

  • 範囲
  • 現在のワークスペース

ライセンス情報

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

関連トピック

  • 近接ツールセットの概要
このトピックへのフィードバック

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. | プライバシー | リーガル