Dov'è lo strumento di misurazione dell'angolo in ArcMap 10?
Non riesco a trovarlo.
Dov'è lo strumento di misurazione dell'angolo in ArcMap 10?
Non riesco a trovarlo.
Risposte:
In ArcGIS 10.1 e versioni successive, è disponibile uno strumento chiamato COGO , situato nella barra degli strumenti dell'editor / Altri strumenti di modifica / COGO. Sulla barra degli strumenti è presente un pulsante chiamato Descrizione delle descrizioni di COGO . Questo strumento di reporting ha una funzione chiamata " Angolo tra due linee " che riporta l'angolo tra 3 punti su una linea.
Questo strumento di script Python farà il trucco. Per usarlo, aggiungilo come strumento di script, imposta il parametro su Feature Set e imposta il suo schema su una classe di caratteristiche di linea. Questo script dovrebbe funzionare con 10.0 e versioni successive.
# calculate an azimuth angle from a interactively entered
# line (feature set)
#
# Curtis Price, cprice@usgs.gov, 9/18/2013 11:51:10 AM
import math
import arcpy
# read line (This parameter should be a line feature set)
line = arcpy.GetParameterAsText(0)
# to see how this is used, see the help:
# http://resources.arcgis.com/en/help/main/10.1/index.html#//001500000028000000
# http://resources.arcgis.com/en/help/main/10.1/index.html#//002w00000023000000
def get_angle(xy1, xy2):
"""Calculate azimuth angle from two points. (Zero is north.)"""
import math
try:
# ArcPy point objects
x1, y1, x2, y2 = xy1.X, xy1.Y, xy2.X, xy2.Y
except:
# xy strings, e.g. "0 0"
x1, y1 = [float(x) for x in xy1.split()]
x2, y2 = [float(x) for x in xy2.split()]
dx, dy = (x2 - x1, y2 - y1)
return 90 - math.degrees(math.atan2(dy, dx))
try:
# get first and last point of a line
SHAPE = arcpy.Describe(line).shapeFieldName
Rows = arcpy.SearchCursor(line,"","",SHAPE)
feat = Rows.next().getValue(SHAPE)
pt1 = feat.firstPoint
pt2 = feat.lastPoint
angle = get_angle(pt1, pt2)
msg1 = " First point: {0:.1f}, {0:.1f}".format(pt1.X, pt1.Y)
msg2 = " Last point: {0:.1f}, {0:.1f}".format(pt2.X, pt2.Y)
msg3 = " Azimuth angle (in degrees): {0:.1f}".format(angle)
arcpy.AddMessage("{0}\n{1}\n{2}".format(msg1, msg2, msg3))
except:
raise Exception, "Invalid line input"
Per misurare un azimut da un punto solo con la licenza Basic è possibile utilizzare gli strumenti di modifica delle funzionalità:
Crea un file di forma fittizia con funzioni lineari
Inizia la sessione di modifica
Seleziona "Strumento linea" per iniziare a creare una nuova funzione
Fai clic con il pulsante sinistro del mouse sul punto da cui misurare il tuo azimut
Fare clic con il tasto destro del mouse sul punto in cui si desidera misurare l'azimut (verrà visualizzato il menu di scelta rapida contestuale)
Seleziona l'opzione "Direzione ..."
La casella di modifica in cui dovresti mettere nella direzione avrà l'azimut corrente.
Chiarisce la risposta di @TvsGIS . In ArcMap 10.3 utilizzare la barra degli strumenti COGO, selezionare Rapporto COGO (7 ° pulsante da sinistra), quindi selezionare "Descrizione COGO di una funzione esistente" (2 ° da destra: freccia che punta al centro di una linea). Quindi fare clic sulla funzione di linea. Ciò fornisce l'angolo e la lunghezza nelle coordinate Griglia (Mappa) e Terra (misure di rilievo). La trasformazione da griglia a terra è l'offset della direzione ADD e la divisione per il fattore distanza delle opzioni di modifica Opzioni> Unità> finestra di dialogo.
Se si utilizza "Direzione e distanza di una linea" (1 ° pulsante a sinistra), selezionare interattivamente i punti iniziale e finale della linea. L'angolo va dal punto iniziale al punto finale. Tuttavia, il segmento di linea può essere disegnato nella direzione opposta.
Con Aggiungi attributi geometria nella casella degli strumenti Gestione dati \ Funzionalità è possibile creare un rilevamento di linea: aggiunge un attributo per memorizzare il rilevamento dall'inizio alla fine di ogni funzione di linea. I valori vanno da 0 a 360, con 0 che significa nord, 90 est, 180 sud, 270 ovest e così via.