Processing math: 100%

4 votos

¿Cuáles son las garantías de arc sobre la precisión de los datos, XYTolerance (i) cuando se muestra (ii) en arcpy?

Un comportamiento interesante:

Dos segmentos de línea en un conjunto de datos tienen casi, pero no del todo , puntos finales idénticos. La diferencia entre ellos es menor que la tolerancia XY del conjunto de datos.

Leyendo las coordenadas en arcpy, salen diferentes unas de otras.

Pero si hago un acercamiento y un acercamiento y un acercamiento, mucho más allá de la XYTolerance, ArcMap todavía los muestra como idénticos - no aparece ningún espacio entre las líneas.

¿Es de esperar? ¿Garantiza arc la precisión de los datos dibujados en la pantalla, o los datos pasados a arcpy? ¿Qué pasará si los puntos están separados por la tolerancia XY exactamente?

Actualización: He intentado probar el caso límite, pero la trama se complica. El siguiente script crea una clase de característica que se muestra correctamente en ArcMap a pesar de tener características más pequeñas que la tolerancia del clúster. Todavía tengo otros datos que no se muestran correctamente en las mismas circunstancias.

import arcpy

out_polyline_feature_class = arcpy.GetParameterAsText(0)

# t is tolerance
t=0.001

ic = arcpy.InsertCursor(out_polyline_feature_class)

edges = [ [ (0,0), (0,t/2) ],
          [ (0,0), (t,0) ],
          [ (0,0), (-t,-t) ],
          [ (0,0), (-2*t,0) ]
        ]

line = arcpy.Array()
pnt = arcpy.Point()
for edge in edges:
    line.removeAll()
    for point in edge:
        pnt.X, pnt.Y = point
        line.add(pnt)

    row = ic.newRow()

    row.shape = line
    ic.insertRow(row)
    del row

del ic

3voto

Monroecheeseman Puntos 825

La ayuda de ArcGIS 10.0 indica que las coordenadas más cercanas a la tolerancia XY se consideran idénticas. Las coordenadas de la característica no son idénticas pero se consideran idénticas. Su hallazgo de que las características se muestran como idénticas parece correcto. No he probado el caso especial en el que la distancia es igual a la tolerancia XY. Además, la configuración de la resolución XY (dígitos significativos) puede afectar a la interpretación de la distancia mínima.

1voto

Greg Puntos 1756

He visto muchas veces que vértices de diferentes características se dibujan y no se dibujan en lugares coincidentes. A veces, la disparidad desaparece al hacer zoom, sólo para reaparecer en niveles de zoom más finos.

Personalmente no confío en que ArcMap (o cualquier otro programa) mantenga la fidelidad a las coordenadas de los datos al dibujar . Hay tantos lugares diferentes donde se pueden hacer recálculos y tomar atajos cuando se transforma del espacio de almacenamiento al espacio de píxeles (y/o al espacio de papel).

Para un ejemplo específico, hubo un largo período de tiempo, desde ArcMap 8.0 a 9.2 más o menos, cuando ciertas operaciones como el recorte y la intersección durante una sesión de edición causaría coordenadas de vértice a la deriva y mover (CQ00176597). Según tengo entendido, esto se debía a que, por motivos de rendimiento, el espacio de coordenadas de la pantalla estaba en precisión única, incluso cuando los datos en sí eran de doble precisión.

Quizás ya lo sepas, pero para completar la exploración:

Resolución XY es la menor distancia posible entre dos conjuntos de coordenadas.

Tolerancia XY es cuando las coordenadas son considerado igual mientras se opera en/con ellos.

La resolución típica es de 0,0001 (1/10 de milímetro) y la tolerancia de 0,001 (1 milímetro).

La tolerancia es algo que hay que añadir, una función de valor añadido, no una propiedad inherente. Se utiliza con herramientas de geoprocesamiento ciertamente pero no me extrañaría del todo que haya lugares en los que no se recurra a la tolerancia (como tu script de arcpy). No sé cómo, cuando o incluso si la tolerancia XY se utiliza en ArcMap. Probablemente es diferente en diferentes momentos y situaciones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X