5 votos

Reajuste de la distribución de peces a la capa de arroyos NHD

Estoy trabajando para realinear las capas de líneas de distribución de hábitats de peces con mi capa NHD Flowline en ArcMap. Ambas capas están en la misma proyección y sólo hay una ligera diferencia entre las dos. He estado trabajando en un modelo para realinear la capa de distribución de peces ya que estoy analizando un área grande y preferiría no hacer las ediciones avanzadas a mano.

Fish Distribution in Red and NHD Stream in Blue

Mi primera aproximación utilizó el snapping, que me acercó mucho a un buen producto final, pero sigue habiendo errores. Luego volví atrás y añadí más vértices a mi capa de flujo para mejorar el snapping. Una vez más, por los pelos, pero sin éxito. Veo que hay una herramienta de alineación de características en la caja de herramientas de edición, pero se bloquea en el último paso cada vez que lo uso. Model Builder approach to snapping fish distribution to stream layer

Para obtener más información, quiero intersecar la capa de distribución de peces sobre la capa del arroyo para clasificar el arroyo basándome en una opinión biológica de la ESA (por ejemplo, un arroyo perenne con una especie incluida en la ESA es de clase 1). Una unión espacial es demasiado conservadora para este análisis porque un tramo entero asumirá las características de la distribución de peces, incluso si los peces viajan a mitad de camino a través del tramo. Por lo tanto, quiero utilizar la distribución de los peces como un cortador de galletas para empalmar los arroyos con el fin de tener una simbología y un análisis más precisos.

Idealmente, me encantaría encontrar una herramienta que funcione como una unión espacial, pero que tenga la precisión y los resultados de la herramienta de intersección.

0voto

FelixIP Puntos 4035

No me sorprende tu respuesta a mi pregunta en el comentario. Los "pescadores" (¿ecólogos?) no entienden de redes fluviales. Eso dificulta su tarea. Así que dividir las líneas de 'peces' por puntos en las uniones de los arroyos. Para obtener los cruces, utilice la función vértices a los puntos dos veces: en primer lugar - calcular los dos extremos, el segundo colgantes. Elimine los puntos del primer conjunto que se cruzan con los rectángulos y elimine los idénticos utilizando el campo Forma.

Calcular los puntos medios de las líneas de peces y ejecutar la herramienta Near entre ellos y los arroyos. Transfiere los valores NEAR_FID a las líneas de peces. Así dispondrás de información suficiente para dividir los arroyos en segmentos y utilizarlos para modificar las líneas de pesca en consecuencia.

Así que cambie el nombre de la capa sream lines a "streams" en su mxd y ejecute este código en la calculadora de campo en el campo Shape de la copia de seguridad(!) de fish lines:

aDict ={}
with arcpy.da.SearchCursor("streams",("OID@","Shape@")) as cursor:
 for fid,shpR in cursor:aDict[fid]=shpR
def sliceStreams( shp, nfid):
 stream = aDict[nfid]
 ps = shp.firstPoint; f = stream.measureOnLine(ps)
 ps = shp.lastPoint; t = stream.measureOnLine(ps)
 segment = stream.segmentAlongLine(f,t)
 return segment

'------

sliceStreams( !Shape!, !NEAR_FID!)

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