5 votos

Cómo extraer las coordenadas y elevaciones de células de contorno de los DEM?

Estoy usando un 50mx50m cuadrícula de forma irregular DEM archivo.

Tengo que trabajar en las condiciones de frontera.

¿Cómo puedo extraer las ubicaciones de celda ( en coordenadas x,y ) a lo largo de la línea límite y, en consecuencia, encontrar la elevación de los respectivos límites de las células.

Estoy utilizando ArcGIS 9.3 para mi trabajo.

6voto

cjstehno Puntos 131

En esta pregunta se pide dos cosas: (1) identificar las células de contorno y (2) "encontrar" sus elevaciones. A pesar de que "encontrar" podría interpretarse de muchas maneras (¿quieres una tabla de salida de elevaciones? DEM que contiene sólo las células? etc.), hacerlo es sencillo una vez que se han resuelto (1), especialmente si las células de contorno se han representado como un indicador de la cuadrícula: esta es una cuadrícula que tiene un tipo de valor en las células deseadas y otro valor a todas las demás células. Dependiendo de seguimiento de análisis, un 1-0 a un indicador o a una 1-NoData indicador generalmente funcionan mejor (y, o bien se convierte en la otra mediante SetNull y IsNull).

El problema se reduce de manera eficiente calcular un indicador de la cuadrícula para las células de contorno. Si podemos caracterizar el límite de la célula como uno que es adyacente a al menos uno de NoData de la célula (donde "NoData" incluye hipotética de las células que se encuentran más allá de los bordes de la red propia), entonces la solución, evidentemente, requiere de un "centro" o barrio de la operación. Una forma es a su vez el DEM en un 1-0 indicador; esto se puede hacer con Not y IsNull. A continuación, una focal de la suma de este indicador será menor que el barrio de tamaño exactamente donde hay ceros en el barrio: estas serían todas las células de contorno y original de todos los NoData células.

Para resumir, un eficiente trama basada en el flujo de trabajo para crear un indicador de la cuadrícula de todas las células de contorno a partir de un DEM es dada por este pseudocódigo:

i = Not(IsNull('DEM'))          # Store a DEM indicator in temporary grid `i`
n = FocalSum('i', ...) < x      # Store a near-boundary indicator in temporary grid `n`
'i' & `n`                       # The desired boundary indicator

El x representa el barrio de tamaño; por ejemplo, cuando se utiliza un 3 por 3 barrio, x serían 9. Los "..." FocalMean indica que los argumentos necesarios para especificar el barrio: los diferentes barrios corresponden a diferentes definiciones de lo que significa estar en el "límite". Consulte la página de ayuda para los detalles sintácticos. El & operador es Spatial Analyst "Boolean" la cual será la verdadera exactamente cuando tanto sus argumentos son verdaderos: este recoge aquellas células que son parte de la DEM (indicado por cuadrícula i) y tienen valores NoData en sus barrios (indicado por cuadrícula n).

Como ejemplo, aquí está una esquina de una mucho más grande DEM, se muestra hillshaded:

DEM insert

Su indicador i está en constante 1, donde el DEM tiene valores, que se muestra aquí como el gris:

DEM indicator

El centro de la suma de i, el uso de un 3 por 3 vecindario, puede tener valores entre 0 y 9, se muestra en esta temperatura como mapa (de graduarse de la red de 0 a través de verdes y azules y, finalmente, convertirse en transparente para el valor máximo de 9, revelando el gris de i sí):

DEM border

Se puede ver que toda la acción en todo el perímetro, como debe ser. La superposición de esas células que están a menos de 9 con el indicador de i muestra de las células que forman parte de la DEM y en su borde, que se expone aquí en rojo superpuesto en el original DEM:

Boundary cell indicator

(Observe que la frontera en este caso incluye una interna de la celda que faltaba un valor: es cerca del centro de la parte inferior).

Este procedimiento consiste en sólo cinco operaciones de grid (Not, IsNull, FocalSum, <y &), todos de los cuales son muy rápidas de ejecutar. Por lo tanto, incluso si la intención última es a la salida de una tabla de valores o un punto de shapefile o algunos otros no raster representación de los límites de los valores de las celdas, será más fácil y computacionalmente mucho más eficiente para llegar a este punto con las operaciones de trama antes de la conversión a otra representación.

0voto

John Kramlich Puntos 286
  1. Me gustaría convertir la trama a un punto del conjunto de datos (Búsqueda de la trama a Punto de la herramienta).
  2. Añadir una X y y de campo de tipo double
  3. Ejecutar calcular la geometría de la herramienta de extracción de la X e y del punto de
  4. Como usted tiene 1 red es probablemente más fácil para seleccionar los puntos de límite y de exportación de la selección?

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