10 votos

¿Cómo extraer líneas de ruptura de un DEM dado?

Las líneas de ruptura son muy útiles para describir un terreno, por ejemplo para construir un TIN exacto.

Mi pregunta es, ¿cómo extraer estas líneas de ruptura de un DEM dado?

He calculado la curvatura (vertical) - raster (usando arcgis 10), donde se pueden ver las líneas de ruptura (min/max-curvatura), pero no he averiguado cómo extraerlas para obtener polilíneas al final.

¿Cuál es el flujo de trabajo para obtener estas líneas de ruptura a partir de un DEM?

¿Alguien tiene una idea de un flujo de trabajo, o una "herramienta", o skript, que pueda ayudar?

Creo que no soy el primer/último hombre que quiere realizar esta tarea:)

...mientras tanto he encontrado un documento sobre este tema parece una buena solución, pero la gran pregunta sigue siendo: ¿cómo reducirlo a la práctica?

¿O alguien tiene un enfoque diferente (¿más fácil?) con algún software?

2voto

Flip Puntos 74

Yo lo intentaría así: buscar un valor crítico en el archivo raster de curvatura. Por encima de este valor se espera una línea de ruptura.

A continuación, utilizaría declaraciones condicionales en la calculadora de trama para utilizar "1" para los píxeles por encima del valor crítico y 0 por debajo del valor crítico. Utilice este raster binario para la conversión de raster a polígono en la caja de herramientas. encontrará una respuesta sobre cómo obtener el polígono a la línea aquí

al fin y al cabo se puede construir un modelo a partir de estos pasos.

2voto

Xitcod13 Puntos 338

Conrec hace esto. Sin embargo, fue escrito originalmente en fortran, por lo que ha sido portado varias veces.

Una biblioteca en la que he estado trabajando en node.js, césped utiliza este algoritmo para crear estos contornos a partir de datos vectoriales puntuales. El script para hacer esto es bastante simple y sería básicamente:

var t = require('turf')
var fs = require('fs')
var z = 'elevation'
var resolution = 15
var breaks = [.1, 22, 45, 55, 65, 85,  95, 105, 120, 180]

t.load('./path/to/points.geojson', function(err, points){
  t.contour(points, z, resolution, breaks, function(err, contours){
    if(err) throw err
    fs.writeFileSync('.path/to/output.geojson', contours)
  })
})

También puede generar pausas naturales jenks si no tiene en mente pausas específicas:

var t = require('turf')
var propertyName = 'elevation'
var num = 10

t.load('./path/to/points.geojson', function(err, pts){
  if(err) throw err
  t.jenks(pts, 'elevation', num, function(err, breaks){
    if(err) throw err
    console.log(breaks) // [ 11, 12, 18, 25, 29, 41, 50, 55, 76, 90, 143 ]
  })
})

1voto

Si vas a mi lidar VA sitio y busca un proyecto con Breaklines. Tenemos muchos.

Por ejemplo 2010 / 2011 Eleven County Coastal VA Lidar. Verá enlaces a todos los informes y otros documentos y esto explica cómo hicieron las líneas de ruptura por lo general en ArcGIS. Pruebe algunos proyectos diferentes para diferentes métodos, pero puedo decir que el NHD se utiliza a menudo, al igual que las crestas como derivados de un DEM. La mayoría de los informes se encuentran en los metadatos. Aquí está el un para arriba. CTRL F Breaklines en el pdf.

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