Cerca (Análisis)

Resumen

Calcula la distancia y la información de proximidad adicional entre entidades de entrada y la entidad más cercana en otras clases de entidad o capa.

Más información sobre cómo se calcula la proximidad con las herramientas de geoprocesamiento

Ilustración

Ilustración de la herramienta Cercano
Aparece la búsqueda de la entidad cercana por tipo de geometría.

Uso

  • Los campos siguientes se agregarán a la entrada. Si los campos ya existen, los valores de campo se actualizarán. Estos nombres de campo se pueden configurar con el parámetro Nombres de campo.

    • NEAR_FID: el ObjectID de la entidad más próxima. Si no se encuentra ninguna entidad próxima, el valor será -1.
    • NEAR_DIST: la distancia de la entidad de entrada a la entidad cercana. El valor está en unidades lineales del sistema de coordenadas de entidades de entrada o en metros cuando el parámetro Método está establecido en Geodésico y la entrada está definida en un sistema de coordenadas geográficas. Si no se encuentra ninguna entidad próxima, el valor será -1.
    • NEAR_FC: la ruta de la clase de entidad de origen que contiene la entidad más cercana encontrada. Se utilizará el nombre de la capa si las capas se utilizan como entrada; además, la ruta de catálogo a la clase de entidad se utilizará si emplea rutas como entrada. Este campo solo se agrega a la tabla de salida si se especifican varias entidades cercanas. Si no se encuentra ninguna entidad próxima, el valor será nulo o una cadena de caracteres vacía.

    Los siguientes campos se agregarán a la entrada si el parámetro Ubicación está activado. Los valores de campo se actualizan, si los campos ya existen. Las unidades del valor del campo dependen del valor del parámetro Método. Si el parámetro Método se establece como Planar, el valor de campo estará en la unidad lineal del sistema de coordenadas de la entidad de entrada. Si se establece como Geodésico, el valor de campo estará en el sistema de coordenadas geográficas asociado al sistema de coordenadas de la entidad de entrada.

    • NEAR_X— Coordenada X de la ubicación en la entidad próxima que está más cerca de la entidad de entrada. Si no se encuentra ninguna entidad próxima, el valor será -1.
    • NEAR_Y— Coordenada Y de la ubicación en la entidad próxima que está más cerca de la entidad de entrada. Si no se encuentra ninguna entidad próxima, el valor será -1.

    El siguiente campo se agregará a las entidades de entrada si el parámetro Ángulo está activado. El valor del campo se actualiza si el campo ya existe.

    • NEAR_ANGLE— Ángulo de la línea en la ubicación FROM_X y FROM_Y que conecta las entidades de entrada a la entidad próxima. Si no se encuentra una entidad próxima o esta interseca la entidad de entrada, el valor será 0.

  • Los valores correspondientes a NEAR_FID y NEAR_DIST serán -1 si no se encuentra ninguna entidad dentro del radio de búsqueda.

  • Las entidades de entrada y próximas pueden ser puntos, multipuntos, líneas o polígonos.

  • El valor del parámetro Entidades próximas puede incluir una clase de entidad o más de diferentes tipos de forma (punto, multipunto, línea o polígono).

  • La misma capa o clase de entidad se puede usar tanto para entidades de entrada como entidades cercanas. En esta situación, la entidad de entrada que se está evaluando se excluirá de los candidatos de entidad cercana para evitar que todas las entidades estén próximas a ellas mismas.

  • Las entidades de entrada pueden ser una capa en la que realizó una selección. Las entidades seleccionadas se utilizarán y actualizarán durante la operación de la herramienta. El resto de entidades tendrán los valores de los campos recién creados (como NEAR_FID y NEAR_DIST) configurados en -1.

  • Cuando la distancia más corta de una entidad de entrada es la misma en más de una entidad próxima, una de ellas es elegida de forma aleatoria como la entidad más cercana.

  • Cuando se utiliza la opción Planar para el parámetro Método, utilice una proyección para las entidades de entrada que sea adecuada para la medición de distancia, como una proyección equidistante.

    Más información sobre sistemas de coordenadas y proyecciones

  • Para visualizar las ubicaciones NEAR_X y NEAR_Y, la tabla de salida se puede usar como entrada de las herramientas Crear capa de eventos XY o De XY a línea.

  • Puede establecer una unidad de medida para el campo NEAR_DIST (como metros, kilómetros o millas) con el parámetro Unidad de distancia.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Las entidades de entrada, que pueden ser de tipo punto, polilínea, polígono o multipunto.

Feature Layer
Entidades próximas

Una o más capas de entidad o clases de entidad que contienen candidatos de entidades próximas. Las entidades cercanas pueden ser poligonales, de punto, polilínea o multipunto. Si se especifican varias capas o clases de entidad, se agregará un campo NEAR_FC a la tabla de entrada que almacenará las rutas de la clase de entidad de origen que contiene la entidad más cercana encontrada. La misma capa o clase de entidad se puede usar tanto para entidades de entrada como entidades cercanas.

Feature Layer
Radio de búsqueda
(Opcional)

El radio que se utilizará para buscar entidades cercanas. Si no se especifica ningún valor, se tendrán en cuenta todas las entidades próximas. Si se especifica una distancia, pero no se especifica ninguna unidad o se especifica una unidad desconocida, se utilizarán las unidades del sistema de coordenadas de las entidades de entrada. Si se utiliza la opción Geodésico para el parámetro Método, use una unidad lineal, como kilómetros o millas.

Linear Unit
Ubicación
(Opcional)

Especifica si las coordenadas x e y de la ubicación más cercana de la entidad próxima se escribirán en los campos NEAR_X y NEAR_Y.

  • Desactivado: las ubicaciones no se escribirán. Esta es la opción predeterminada.
  • Activado: las ubicaciones se escribirán.
Boolean
Ángulo
(Opcional)

Especifica si el ángulo cercano se calculará y se escribirá en el campo NEAR_ANGLE en la tabla de salida. Un ángulo próximo mide la dirección de la línea que conecta una entidad de entrada a la entidad más próxima en la ubicación más cercana. Cuando el método Planar se utilice en el parámetro Método, el ángulo se encontrará dentro del rango de -180° a 180°, con 0° al este, 90° al norte, 180° (o -180°) al oeste y -90° al sur. Cuando se utilice el método Geodésico, el ángulo se encontrará dentro del rango de -180° a 180°, con 0° al norte, 90° al este, 180° (o -180°) al sur y -90° al oeste.

  • Desactivado: no se calculará el ángulo cercano y no se agregará el campoNEAR_ANGLE. Esta es la opción predeterminada.
  • Activado: se calculará el ángulo cercano y se agregará el campo NEAR_ANGLE.
Boolean
Método
(Opcional)

Especifica si se utilizará un método de distancia de ruta más corta en un esferoide (geodésico) o en una tierra plana (planar). Se recomienda utilizar el método Geodésico con datos almacenados en un sistema de coordenadas que no sea adecuado para mediciones de distancias (por ejemplo, Web Mercator o cualquier sistema de coordenadas geográficas) y para los datasets que abarquen un área geográfica extensa.

  • PlanarSe utilizará la distancia planar entre las entidades. Esta es la opción predeterminada.
  • GeodésicaSe utilizarán distancias geodésicas entre las entidades. Este método tiene en cuenta la curvatura del esferoide y trata correctamente los datos cercanos a la línea internacional de cambio de fecha y a los polos.
String
Nombres de campo
(Opcional)

Nombres de los campos de atributos que se agregarán durante el procesamiento.

Si no se utiliza este parámetro o se excluye de él cualquier campo que se agregue, se utilizarán los nombres de campos predeterminados.

De forma predeterminada, los campos NEAR_FID y NEAR_DIST se agregarán, los campos NEAR_X y NEAR_Y se agregarán cuando se active el parámetro Ubicación, el campo NEAR_ANGLE se agregará cuando se active el parámetro Ángulo y el campo NEAR_FC se agregará cuando se utilicen varias entradas.

Value Table
Unidad de distancia
(Opcional)

Especifica la unidad de medida para el campo NEAR_DIST. Si no se especifica ninguna unidad de medida, los valores del campo NEAR_DIST estarán en la unidad lineal del sistema de coordenadas de la entidad de entrada. Si la entrada está en un sistema de coordenadas geográficas y se utiliza el método geodésico, las unidades del campo NEAR_DIST serán metros.

  • KilómetrosLa unidad será kilómetros.
  • MetrosLa unidad será metros.
  • Millas náuticas internacionalesLa unidad será millas náuticas internacionales.
  • Millas terrestresLa unidad será millas terrestres.
  • Yardas internacionalesLa unidad será yardas internacionales.
  • Pies internacionalesLa unidad será pies internacionales.
  • Millas náuticas topográficas de EE. UU.La unidad será millas náuticas topográficas de EE. UU.
  • Millas de agrimensura de EE. UU.La unidad será millas de agrimensura de EE. UU.
  • Yardas de agrimensura de EE. UU.La unidad será yardas de agrimensura de EE. UU.
  • Pies de agrimensura de EE. UU.La unidad será pies de agrimensura de EE. UU.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Entidades de entrada actualizadas

Las entidades de entrada actualizadas.

Feature Layer

arcpy.analysis.Near(in_features, near_features, {search_radius}, {location}, {angle}, {method}, {field_names}, {distance_unit})
NombreExplicaciónTipo de datos
in_features

Las entidades de entrada, que pueden ser de tipo punto, polilínea, polígono o multipunto.

Feature Layer
near_features
[near_features,...]

Una o más capas de entidad o clases de entidad que contienen candidatos de entidades próximas. Las entidades cercanas pueden ser poligonales, de punto, polilínea o multipunto. Si se especifican varias capas o clases de entidad, se agregará un campo NEAR_FC a la tabla de entrada que almacenará las rutas de la clase de entidad de origen que contiene la entidad más cercana encontrada. La misma capa o clase de entidad se puede usar tanto para entidades de entrada como entidades cercanas.

Feature Layer
search_radius
(Opcional)

El radio que se utilizará para buscar entidades cercanas. Si no se especifica ningún valor, se tendrán en cuenta todas las entidades próximas. Si se especifica una distancia, pero no se especifica ninguna unidad o se especifica una unidad desconocida, se utilizarán las unidades del sistema de coordenadas de las entidades de entrada. Si la opción GEODESIC se utiliza en el parámetro method, use una unidad lineal, como kilómetros o millas.

Linear Unit
location
(Opcional)

Especifica si las coordenadas x e y de la ubicación más cercana de la entidad próxima se escribirán en los campos NEAR_X y NEAR_Y.

  • NO_LOCATIONLa información de ubicación no se escribirá. Esta es la opción predeterminada.
  • LOCATIONLa información de ubicación se escribirá.
Boolean
angle
(Opcional)

Especifica si el ángulo cercano se calculará y se escribirá en el campo NEAR_ANGLE en la tabla de salida. Un ángulo próximo mide la dirección de la línea que conecta una entidad de entrada a la entidad más próxima en las ubicaciones más cercanas. Cuando el método PLANAR se utilice en el parámetro method, el ángulo estará dentro del rango de -180° a 180°, con 0° al este, 90° al norte, 180° (o -180°) al oeste y -90° al sur. Cuando se utilice el método GEODESIC, el ángulo se encontrará dentro del rango de -180° a 180°, con 0° al norte, 90° al este, 180° (o -180°) al sur y -90° al oeste.

  • NO_ANGLENo se calculará ni se escribirá el valor del ángulo cercano. Esta es la opción predeterminada.
  • ANGLEEl valor del ángulo cercano se calculará y se escribirá en el campo NEAR_ANGLE.
Boolean
method
(Opcional)

Especifica si se utilizará un método de distancia de ruta más corta en un esferoide (geodésico) o en una tierra plana (planar). Se recomienda utilizar el método GEODESIC con datos almacenados en un sistema de coordenadas que no sea adecuado para mediciones de distancias (por ejemplo, Web Mercator o cualquier sistema de coordenadas geográficas) y para los datasets que abarquen un área geográfica extensa.

  • PLANARSe utilizará la distancia planar entre las entidades. Esta es la opción predeterminada.
  • GEODESICSe utilizarán distancias geodésicas entre las entidades. Este método tiene en cuenta la curvatura del esferoide y trata correctamente los datos cercanos a la línea internacional de cambio de fecha y a los polos.
String
field_names
[[property, fieldname],...]
(Opcional)

Nombres de los campos de atributos que se agregarán durante el procesamiento.

Si no se utiliza este parámetro o se excluye de él cualquier campo que se agregue, se utilizarán los nombres de campos predeterminados.

De forma predeterminada, los campos NEAR_FID y NEAR_DIST se agregarán, los campos NEAR_X y NEAR_Y se agregarán cuando el parámetro location se defina como LOCATION, el campo NEAR_ANGLE se agregará cuando el parámetro angle se defina como ANGLE y el campo NEAR_FC se agregará cuando se utilicen varias entradas.

Value Table
distance_unit
(Opcional)

Especifica la unidad de medida para el campo NEAR_DIST. Si no se especifica ninguna unidad de medida, los valores del campo NEAR_DIST estarán en la unidad lineal del sistema de coordenadas de la entidad de entrada. Si la entrada está en un sistema de coordenadas geográficas y se utiliza el método geodésico, las unidades del campo NEAR_DIST serán metros.

  • KilometersLa unidad será kilómetros.
  • MetersLa unidad será metros.
  • NauticalMilesIntLa unidad será millas náuticas internacionales.
  • MilesIntLa unidad será millas terrestres.
  • YardsIntLa unidad será yardas internacionales.
  • FeetIntLa unidad será pies internacionales.
  • NauticalMilesLa unidad será millas náuticas topográficas de EE. UU.
  • MilesLa unidad será millas de agrimensura de EE. UU.
  • YardsLa unidad será yardas de agrimensura de EE. UU.
  • FeetLa unidad será pies de agrimensura de EE. UU.
String

Salida derivada

NombreExplicaciónTipo de datos
out_feature_class

Las entidades de entrada actualizadas.

Feature Layer

Muestra de código

Ejemplo 1 de Near (ventana de Python)

El siguiente script de la ventana interactiva de Python demuestra cómo utilizar la función Near en el modo inmediato.

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

# Find the nearest road from each house
arcpy.analysis.Near('houses', 'roads')
Ejemplo 2 de Near (script independiente)

El siguiente script de Python muestra cómo utilizar la función Near en un script independiente.

# 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.analysis.Near(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])
Ejemplo 3 de Near (script independiente)

El siguiente script de Python demuestra cómo convertir el ángulo cercano en acimut.

# 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.
Ejemplo 4 de Near (script independiente)

El siguiente script de Python muestra el procesamiento posterior con la salida derivada de la función Near. Para cada entidad cercana, el script busca las entidades de entrada de las que está más cerca.

# 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]}

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados