Résumé
Calcule la distance tridimensionnelle entre chaque entité en entrée et l'entité la plus proche résidant dans l'une ou plusieurs des classes d'entités de proximité.
Utilisation
Toutes les entités en entrée doivent comporter des valeurs Z et tous les types de géométrie sont pris en charge. Vous pouvez également spécifier les entités en entrée en tant qu'entités de proximité pour déterminer les entités les plus proches au sein de la même classe d'entités.
Vous pouvez ajouter les champs suivants à la table attributaire de l'entité en entrée :
- NEAR_FID : FID de l'entité la plus proche. La valeur -1 indique qu'aucune correspondance n'a été trouvée dans le rayon de recherche spécifié.
- NEAR_DIST : distance 2D (horizontale) entre le point le plus proche d'une entité en entrée et le point le plus proche de l'entité la plus proche.
- NEAR_DIST3 : distance 3D (distance de la pente) entre le point le plus proche d'une entité en entrée et le point le plus proche de l'entité la plus proche.
- NEAR_DELTX : distance le long de l'axe X du point le plus proche sur l'entité en entrée au point le plus proche sur l'entité la plus proche.
- NEAR_DELTY : distance le long de l'axe Y du point le plus proche sur l'entité en entrée au point le plus proche sur l'entité la plus proche.
- NEAR_DELTZ : distance le long de l'axe Z du point le plus proche sur l'entité en entrée au point le plus proche sur l'entité la plus proche.
- NEAR_FROMX : coordonnée X du point le plus proche sur l'entité en entrée à l'entité la plus proche.
- NEAR_FROMY : coordonnée Y du point le plus proche sur l'entité en entrée à l'entité la plus proche.
- NEAR_FROMZ : coordonnée Z du point le plus proche sur l'entité en entrée à l'entité la plus proche.
- NEAR_X : coordonnée X du point le plus proche sur l'entité la plus proche.
- NEAR_Y : coordonnée Y du point le plus proche sur l'entité la plus proche.
- NEAR_Z : coordonnée Z du point le plus proche sur l'entité la plus proche.
- NEAR_ANG_H : angle arithmétique horizontal au point le plus proche exprimé en degrés.
- NEAR_ANG_V : angle d'altitude au point le plus proche exprimé en degrés. Les angles sont 0° à l'horizontale, 90° tout droit vers le haut et -90° tout droit vers le bas.
- NEAR_FC : chemin d'accès de la classe d'entités qui contient l'entité la plus proche. Ce champ est ajouté uniquement lorsque plusieurs entités de proximité sont spécifiées.
Syntaxe
Near3D_3d (in_features, near_features, {search_radius}, {location}, {angle}, {delta})
Paramètre | Explication | Type de données |
in_features | Classe d'entités en entrée dont les entités reçoivent les informations relatives à l'entité la plus proche. | Feature Layer |
near_features [near_features,...] | La ou les entités dont la proximité vis-à-vis des entités en entrée est calculée. Si plusieurs classes d'entités sont spécifiées, un champ supplémentaire nommé NEAR_FC est ajouté à la classe d'entités afin d'identifier la classe d'entités proche contenant l'entité la plus proche. | Feature Layer |
search_radius (Facultatif) | Distance maximale pour laquelle les entités les plus proches d'une entrée donnée sont déterminées. Si aucune valeur n'est spécifiée, l'entité la plus proche est déterminée, quelle que soit la distance. | Linear Unit |
location (Facultatif) | Détermine si les coordonnées du point le plus proche dans l'entité en entrée et l'entité de proximité sont ajoutées à la table attributaire de l'entrée.
| Boolean |
angle (Facultatif) | Détermine si l'angle arithmétique horizontal et l'angle vertical entre l'entité en entrée et l'entité la plus proche sont ajoutés à la table attributaire en entrée.
| Boolean |
delta (Facultatif) | Détermine si les distances le long des axes X, Y et Z entre l'entité en entrée et l'entité la plus proche sont ajoutées à la table attributaire en entrée.
| Boolean |
Exemple de code
1er exemple d'utilisation de l'outil Near3D (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
2e exemple d'utilisation de l'outil Near3D (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Near 3D Example
Description: This script demonstrates how to use
the Near 3D tool to identify the nearest z-aware features
that satisfy the results from a queried feature.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'homes.shp'
nearFC = 'radiotowers.shp'
# See the 'Building an SQL expression' topic for more information
# Query the field 'MATERIAL' for the string 'Reinforced Concrete'
SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'"
#Execute Make Feature Layer
arcpy.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression)
result = arcpy.GetCount_management('Near Layer')
if int(result.getOutput(0)) == 0:
arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\
.format(nearFC, SQL_Expression))
else:
#Execute Near3D
arcpy.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst