Hướng dẫn arcgis python spatial join - tham gia không gian của trăn arcgis

  • Bản tóm tắt
  • Cách sử dụng
  • Cú pháp
  • Mẫu mã
  • Môi trường
  • Thông tin cấp phép

Bản tóm tắt

Tham gia các thuộc tính từ tính năng này sang tính năng khác dựa trên mối quan hệ không gian. Các tính năng mục tiêu và các thuộc tính được nối từ các tính năng tham gia được ghi vào lớp tính năng đầu ra.

Xem các ví dụ đồ họa giải thích các mối quan hệ không gian

Cách sử dụng

  • Cú phápJoin Features to the Target Features based on their relative spatial locations.

  • Mẫu mãField Map of Join Features parameter.

  • Môi trườngJoin_Count and TARGET_FID, are always added to the output feature class. Join_Count indicates how many join features match each target feature (TARGET_FID).

    Thông tin cấp phépJOIN_FID, is added to the output when JOIN_ONE_TO_MANY is specified in the Join Operation parameter.

  • Tham gia các thuộc tính từ tính năng này sang tính năng khác dựa trên mối quan hệ không gian. Các tính năng mục tiêu và các thuộc tính được nối từ các tính năng tham gia được ghi vào lớp tính năng đầu ra.Join Operation parameter is JOIN_ONE_TO_MANY, there can be more than one row in the output feature class for each target feature. The JOIN_FID field makes it easier to determine which feature is joined to which target feature (TARGET_FID). A value of -1 for JOIN_FID field means no feature meets the specified spatial relationship with the target feature.

  • Xem các ví dụ đồ họa giải thích các mối quan hệ không gian

    • Tham gia không gian bao gồm các hàng phù hợp từ các tính năng tham gia đến các tính năng đích dựa trên các vị trí không gian tương đối của chúng.Join Operation is set to JOIN_ONE_TO_ONE, and
    • Theo mặc định, tất cả các thuộc tính của các tính năng tham gia được thêm vào các thuộc tính của các tính năng đích và được sao chép vào lớp tính năng đầu ra. Bạn có thể xác định thuộc tính nào sẽ được ghi vào đầu ra bằng cách thao tác chúng trong bản đồ trường của tham số tính năng tham gia. is checked (join_type = "KEEP_ALL" in Python).
  • Hai trường mới, tham gia_count và target_fid, luôn được thêm vào lớp tính năng đầu ra. Join_Count cho biết có bao nhiêu tính năng tham gia khớp với mỗi tính năng đích (Target_FID).Field Map of Join Features parameter only apply to attributes from the join features and when more than one feature is matched to a target feature (when Join_Count > 1). For example, if three features with DEPTH attribute values of 15.5, 2.5, and 3.3 are joined, and a merge rule of Mean is applied, the output field will have a value of 6.1. Null values in join fields are ignored for statistic calculation. For example, 15.5, , and 2.5 will result in 9.0 for Mean and 2 for Count.

  • Một trường mới khác, Join_FID, được thêm vào đầu ra khi tham gia_one_to_many được chỉ định trong tham số hoạt động tham gia.Match Option is set to CLOSEST or CLOSEST_GEODESIC, it is possible that two or more join features are at the same distance from the target feature. When this situation occurs, one of the join features is randomly selected as the matching feature (the join feature's FID does not influence this random selection). If you want to find the 2nd, 3rd, or Nth closest feature, use the Generate Near Table tool.

    Khi tham số hoạt động tham gia là Join_one_TO_MANY, có thể có nhiều hơn một hàng trong lớp tính năng đầu ra cho mỗi tính năng đích. Trường Join_FID giúp dễ dàng xác định tính năng nào được nối với tính năng đích (Target_FID). Giá trị -1 cho trường tham gia_FID có nghĩa là không có tính năng nào đáp ứng mối quan hệ không gian được chỉ định với tính năng đích.

  • Tất cả các tính năng mục tiêu đầu vào chỉ được ghi vào lớp tính năng đầu ra chỉ khi:

  • Hoạt động tham gia được đặt thành tham gia_one_to_one vàINTERSECT_3D and WITHIN_A_DISTANCE_3D see Select by Location 3D relationships.

Cú pháp

Mẫu mã
Môi trườngThông tin cấp phépTham gia các thuộc tính từ tính năng này sang tính năng khác dựa trên mối quan hệ không gian. Các tính năng mục tiêu và các thuộc tính được nối từ các tính năng tham gia được ghi vào lớp tính năng đầu ra.

target_features

Xem các ví dụ đồ họa giải thích các mối quan hệ không gian

Tham gia không gian bao gồm các hàng phù hợp từ các tính năng tham gia đến các tính năng đích dựa trên các vị trí không gian tương đối của chúng.

join_features

Theo mặc định, tất cả các thuộc tính của các tính năng tham gia được thêm vào các thuộc tính của các tính năng đích và được sao chép vào lớp tính năng đầu ra. Bạn có thể xác định thuộc tính nào sẽ được ghi vào đầu ra bằng cách thao tác chúng trong bản đồ trường của tham số tính năng tham gia.join_operation parameter for details on how the aggregation of joined attributes are affected by the type of join operation.

Tham gia không gian bao gồm các hàng phù hợp từ các tính năng tham gia đến các tính năng đích dựa trên các vị trí không gian tương đối của chúng.

out_feature_class

Theo mặc định, tất cả các thuộc tính của các tính năng tham gia được thêm vào các thuộc tính của các tính năng đích và được sao chép vào lớp tính năng đầu ra. Bạn có thể xác định thuộc tính nào sẽ được ghi vào đầu ra bằng cách thao tác chúng trong bản đồ trường của tham số tính năng tham gia.

Hai trường mới, tham gia_count và target_fid, luôn được thêm vào lớp tính năng đầu ra. Join_Count cho biết có bao nhiêu tính năng tham gia khớp với mỗi tính năng đích (Target_FID).

join_operation

(Optional)

Một trường mới khác, Join_FID, được thêm vào đầu ra khi tham gia_one_to_many được chỉ định trong tham số hoạt động tham gia.

  • Khi tham số hoạt động tham gia là Join_one_TO_MANY, có thể có nhiều hơn một hàng trong lớp tính năng đầu ra cho mỗi tính năng đích. Trường Join_FID giúp dễ dàng xác định tính năng nào được nối với tính năng đích (Target_FID). Giá trị -1 cho trường tham gia_FID có nghĩa là không có tính năng nào đáp ứng mối quan hệ không gian được chỉ định với tính năng đích.
  • Join_one_to_many, nhiều tính năng tham gia được tìm thấy có cùng mối quan hệ không gian với một tính năng đích duy nhất, lớp tính năng đầu ra sẽ chứa nhiều bản sao (bản ghi) của tính năng đích. Ví dụ: nếu một tính năng đích điểm duy nhất được tìm thấy trong hai tính năng tham gia đa giác riêng biệt, lớp tính năng đầu ra sẽ chứa hai bản sao của tính năng đích: một bản ghi với các thuộc tính của một đa giác và một bản ghi khác với các thuộc tính của đa giác khác .
Sợi dây

join_type

(Optional)

Xác định xem tất cả các tính năng đích sẽ được duy trì trong lớp tính năng đầu ra (được gọi là tham gia bên ngoài) hoặc chỉ các tính năng có mối quan hệ không gian được chỉ định với các tính năng tham gia (nối bên trong).

  • Các tính năng đích của Keep_all, sẽ được duy trì trong đầu ra (tham gia bên ngoài). Đây là mặc định.
  • Keep_Common - Chỉ những tính năng mục tiêu có mối quan hệ không gian được chỉ định với các tính năng tham gia mới được duy trì trong lớp tính năng đầu ra (nối bên trong). Ví dụ: nếu một lớp tính năng điểm được chỉ định cho các tính năng đích và lớp tính năng đa giác được chỉ định cho các tính năng tham gia, với match_option = "incide", lớp tính năng đầu ra sẽ chỉ chứa các tính năng đích trong một polygon tham gia tính năng; Bất kỳ tính năng đích nào không trong tính năng tham gia sẽ được loại trừ khỏi đầu ra.match_option = "WITHIN", the output feature class will only contain those target features that are within a polygon join feature; any target features not within a join feature will be excluded from the output.
Boolean

field_mapping

(Optional)

Kiểm soát những trường thuộc tính nào sẽ nằm trong lớp tính năng đầu ra. Danh sách ban đầu chứa tất cả các trường từ cả hai tính năng mục tiêu và các tính năng tham gia. Các trường có thể được thêm, xóa, đổi tên hoặc thay đổi thuộc tính của chúng. Các trường được chọn từ các tính năng đích được chuyển theo như là, nhưng các trường được chọn từ các tính năng tham gia có thể được tổng hợp bởi một quy tắc hợp nhất. Để biết chi tiết về ánh xạ trường, hãy xem bằng cách sử dụng các trường đầu vào ánh xạ ánh xạ trường và các trường đầu vào. Nhiều trường và kết hợp thống kê có thể được chỉ định.

Ánh xạ trường

match_option

(Optional)

Xác định các tiêu chí được sử dụng để phù hợp với các hàng. Các tùy chọn phù hợp là:

  • Các tính năng giao nhau trong các tính năng tham gia sẽ được khớp nếu chúng giao nhau với tính năng đích. Đây là mặc định. Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Intersect_3D-Các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng giao với một tính năng đích trong không gian ba chiều (X, Y và Z). Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Inside_A_Distance Các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng nằm trong một khoảng cách cụ thể của tính năng đích. Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Inside_A_Distance_Geodesic, AS trong Inside_A_Distance ngoại trừ khoảng cách trắc địa được sử dụng thay vì khoảng cách phẳng. Chọn điều này nếu dữ liệu của bạn bao gồm một phạm vi địa lý lớn hoặc hệ tọa độ của các đầu vào là không phù hợp để tính toán khoảng cách.WITHIN_A_DISTANCE except that geodesic distance is used rather than planar distance. Choose this if your data covers a large geographic extent or the coordinate system of the inputs is unsuitable for distance calculations.
  • Inside_A_Distance_3d Các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng nằm trong một khoảng cách được chỉ định của tính năng đích trong không gian ba chiều. Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Chứa các tính năng của các tính năng trong các tính năng tham gia sẽ được khớp nếu tính năng đích chứa chúng. Các tính năng mục tiêu phải là đa giác hoặc polylines. Đối với tùy chọn này, các tính năng đích không thể là điểm và các tính năng tham gia chỉ có thể là đa giác khi các tính năng đích cũng là đa giác.
  • Hoàn toàn_Contains Các tính năng trong các tính năng tham gia sẽ được khớp nếu tính năng đích hoàn toàn chứa chúng. Đa giác hoàn toàn có thể chứa bất kỳ tính năng nào. Điểm không thể chứa hoàn toàn bất kỳ tính năng, thậm chí không phải là một điểm. Polyline hoàn toàn chỉ có thể chứa polyline và điểm.
  • Chứa_clementini, mối quan hệ không gian này mang lại kết quả tương tự như hoàn toàn_contains ngoại trừ nếu tính năng tham gia hoàn toàn trên ranh giới của tính năng đích (không có phần nào đúng bên trong hoặc bên ngoài), tính năng sẽ không được khớp. Clementini định nghĩa đa giác ranh giới là đường phân tách bên trong và bên ngoài, ranh giới của một đường được định nghĩa là điểm cuối của nó và ranh giới của một điểm luôn trống.COMPLETELY_CONTAINS with the exception that if the join feature is entirely on the boundary of the target feature (no part is properly inside or outside) the feature will not be matched. Clementini defines the boundary polygon as the line separating inside and outside, the boundary of a line is defined as its end points, and the boundary of a point is always empty.
  • Trong các tính năng trong các tính năng tham gia sẽ được khớp nếu tính năng đích nằm trong chúng. Nó là đối diện với chứa. Đối với tùy chọn này, các tính năng đích chỉ có thể là đa giác khi các tính năng tham gia cũng là đa giác. Điểm chỉ có thể tham gia tính năng nếu điểm là mục tiêu.CONTAINS. For this option, the target features can only be polygons when the join features are also polygons. Point can be join feature only if point is target.
  • Hoàn toàn_Within Các tính năng trong các tính năng tham gia sẽ được khớp nếu tính năng đích hoàn toàn nằm trong chúng. Điều này trái ngược với hoàn toàn_contains.COMPLETELY_CONTAINS.
  • Inside_clementini Kết quả sẽ giống hệt với bên trong trừ khi toàn bộ tính năng trong các tính năng tham gia nằm trên ranh giới của tính năng đích, tính năng sẽ không được khớp. Clementini định nghĩa đa giác ranh giới là đường phân tách bên trong và bên ngoài, ranh giới của một đường được định nghĩa là điểm cuối của nó và ranh giới của một điểm luôn trống.WITHIN except if the entirety of the feature in the join features is on the boundary of the target feature, the feature will not be matched. Clementini defines the boundary polygon as the line separating inside and outside, the boundary of a line is defined as its end points, and the boundary of a point is always empty.
  • Is_identical_to, các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng giống hệt với tính năng đích. Cả tính năng tham gia và tính năng đích phải có cùng loại hình dạng điểm-điểm-điểm, dòng đến dòng và đa giác.
  • Boundary_touches Các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng có ranh giới chạm vào tính năng đích. Khi các tính năng đích và tham gia là các dòng hoặc đa giác, ranh giới của tính năng tham gia chỉ có thể chạm vào ranh giới của tính năng đích và không có phần nào của tính năng tham gia có thể vượt qua ranh giới của tính năng đích.
  • Chia sẻ_A_LINE_SENTENT_WITHTHER Các tính năng trong các tính năng tham gia sẽ được khớp nếu chúng chia sẻ một phân đoạn dòng với tính năng đích. Các tính năng tham gia và đích phải là các dòng hoặc đa giác.
  • Crossed_by_the_outline_of, các tính năng trong các tính năng tham gia sẽ được khớp nếu tính năng đích được vượt qua bởi phác thảo của chúng. Các tính năng tham gia và đích phải là các dòng hoặc đa giác. Nếu đa giác được sử dụng cho các tính năng tham gia hoặc đích, ranh giới (dòng) của đa giác sẽ được sử dụng. Các dòng chéo tại một điểm sẽ được khớp, không phải các dòng chia sẻ một phân đoạn dòng.
  • HAVE_THEIR_CENTER_IN Các tính năng trong các tính năng tham gia sẽ được khớp nếu trung tâm của tính năng đích nằm trong chúng. Trung tâm của tính năng được tính toán như sau: Đối với đa giác và đa điểm, trọng tâm của hình học được sử dụng và đối với đầu vào dòng, điểm trung điểm của hình học được sử dụng. Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Tính năng gần nhất trong các tính năng tham gia gần nhất với tính năng đích được khớp. Xem mẹo sử dụng để biết thêm thông tin. Chỉ định một khoảng cách trong tham số search_radius.search_radius parameter.
  • Gần nhất Chọn điều này nếu dữ liệu của bạn bao gồm một phạm vi địa lý lớn hoặc hệ tọa độ của các đầu vào là không phù hợp để tính toán khoảng cáchCLOSEST except that geodesic distance is used rather than planar distance. Choose this if your data covers a large geographic extent or the coordinate system of the inputs is unsuitable for distance calculations
Sợi dây

search_radius

(Optional)

Tham gia các tính năng trong khoảng cách này của một tính năng đích sẽ được xem xét cho sự tham gia không gian. Bán kính tìm kiếm chỉ có giá trị khi mối quan hệ không gian (tùy chọn khớp) giao nhau, bên trong_a_distance, trong_a_distance_geodesic, have_their_center_in, gần nhất hoặc gần nhất_geodesic được chỉ định. Sử dụng bán kính tìm kiếm 100 mét với mối quan hệ không gian bên trong_a_distance sẽ tham gia tính năng trong vòng 100 mét của tính năng đích. Đối với ba mối quan hệ bên trong_a_distance, nếu không có giá trị nào được chỉ định cho bán kính tìm kiếm thì khoảng cách 0 được sử dụng.Match Option) INTERSECT, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, HAVE_THEIR_CENTER_IN, CLOSEST or CLOSEST_GEODESIC is specified. Using a search radius of 100 meters with the spatial relationship WITHIN_A_DISTANCE will join feature within 100 meters of a target feature. For the three WITHIN_A_DISTANCE relationships, if no value is specified for search radius then a distance of 0 is used.

Đơn vị tuyến tính

distance_field_name

(Optional)

Tên của một trường được thêm vào lớp tính năng đầu ra, chứa khoảng cách giữa tính năng đích và tính năng tham gia gần nhất. Tùy chọn này chỉ hợp lệ khi mối quan hệ không gian (tùy chọn khớp) gần nhất hoặc gần nhất_geodesic được chỉ định. Giá trị của trường này là -1 nếu không có tính năng nào được khớp trong bán kính tìm kiếm. Nếu không có tên trường được chỉ định, trường sẽ không được thêm vào lớp tính năng đầu ra.CLOSEST or CLOSEST_GEODESIC is specified. The value of this field is -1 if no feature is matched within a search radius. If no field name is specified, the field will not be added to the output feature class.

Sợi dây

Tham gia các tính năng trong khoảng cách này của một tính năng đích sẽ được xem xét cho sự tham gia không gian. Bán kính tìm kiếm chỉ có giá trị khi mối quan hệ không gian (tùy chọn khớp) giao nhau, bên trong_a_distance, trong_a_distance_geodesic, have_their_center_in, gần nhất hoặc gần nhất_geodesic được chỉ định. Sử dụng bán kính tìm kiếm 100 mét với mối quan hệ không gian bên trong_a_distance sẽ tham gia tính năng trong vòng 100 mét của tính năng đích. Đối với ba mối quan hệ bên trong_a_distance, nếu không có giá trị nào được chỉ định cho bán kính tìm kiếm thì khoảng cách 0 được sử dụng.

Đơn vị tuyến tính

Tên của một trường được thêm vào lớp tính năng đầu ra, chứa khoảng cách giữa tính năng đích và tính năng tham gia gần nhất. Tùy chọn này chỉ hợp lệ khi mối quan hệ không gian (tùy chọn khớp) gần nhất hoặc gần nhất_geodesic được chỉ định. Giá trị của trường này là -1 nếu không có tính năng nào được khớp trong bán kính tìm kiếm. Nếu không có tên trường được chỉ định, trường sẽ không được thêm vào lớp tính năng đầu ra.

import arcpy

target_features = "C:/data/usa.gdb/states"
join_features = "C:/data/usa.gdb/cities"
out_feature_class = "C:/data/usa.gdb/states_cities"

arcpy.SpatialJoin_analysis(target_features, join_features, out_feature_class)

Mẫu mã

Ví dụ về không gian 1 (Cửa sổ Python)

# Name: SpatialJoin_Example2.py
# Description: Join attributes of cities to states based on spatial relationships.
# Requirements: os module

# Import system modules
import arcpy
import os

# Set local variables
workspace = r"C:\gpqa\mytools\spatialjoin\usa.gdb"
outWorkspace = r"C:\gpqa\mytools\spatialjoin\output.gdb"
 
# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = os.path.join(workspace, "states")
joinFeatures = os.path.join(workspace, "cities")
 
# Output will be the target features, states, with a mean city population field (mcp)
outfc = os.path.join(outWorkspace, "states_mcp2")
 
# Create a new fieldmappings and add the two input feature classes.
fieldmappings = arcpy.FieldMappings()
fieldmappings.addTable(targetFeatures)
fieldmappings.addTable(joinFeatures)
 
# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
pop1990FieldIndex = fieldmappings.findFieldMapIndex("POP1990")
fieldmap = fieldmappings.getFieldMap(pop1990FieldIndex)
 
# Get the output field's properties as a field object
field = fieldmap.outputField
 
# Rename the field and pass the updated field object back into the field map
field.name = "mean_city_pop"
field.aliasName = "mean_city_pop"
fieldmap.outputField = field
 
# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.mergeRule = "mean"
fieldmappings.replaceFieldMap(pop1990FieldIndex, fieldmap)
 
# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findFieldMapIndex("CITY_NAME")
fieldmappings.removeFieldMap(x)
y = fieldmappings.findFieldMapIndex("CITY_FIPS")
fieldmappings.removeFieldMap(y)
 
#Run the Spatial Join tool, using the defaults for the join operation and join type
arcpy.SpatialJoin_analysis(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

Kịch bản sau đây trình bày cách sử dụng hàm không gian trong cửa sổ Python.

  • Ví dụ về không gian 2 (kịch bản độc lập)
  • Kịch bản độc lập sau đây trình bày cách sử dụng không gian để tham gia các thuộc tính của các thành phố với các quốc gia.
  • Môi trường
  • Không gian làm việc hiện tại
  • Không gian làm việc cào
  • Hệ tọa độ đầu ra
  • Biến đổi địa lý
  • Phạm vi
  • M Độ phân giải
  • M dung sai
  • Đầu ra m miền
  • Đầu ra XY miền
  • Miền z đầu ra
  • Đầu ra có giá trị m
  • Đầu ra mặc định giá trị z
  • Đầu ra có giá trị z
  • Độ phân giải XY

XY dung sai

  • Độ phân giải z
  • Z dung sai
  • Thông tin cấp phép

ArcGIS cho máy tính để bàn cơ bản: Có

  • ArcGIS cho tiêu chuẩn máy tính để bàn: Có
  • ArcGIS cho máy tính để bàn nâng cao: Có
  • Chủ đề liên quan
Tổng quan về bộ công cụ Lớp phủ