El núcleo central de mi webEl núcleo central de mi web
Foro de Usuarios de Sistemas de Información Geográfica
GIS - SIG y Teledetección

Encuentra respuesta a tus preguntas sobre ArcGIS, ArcView, ArcInfo, MapInfo, AutoCAD Map, Geomedia, Erdas, Idrisi, Envi, etc. Queremos ser un punto de encuentro para los profesionales de las Ciencias Geográficas: Geografía, Ingeniería Geográfica, Percepción Remota, etc.
Home | Perfil | Registro | Temas activos | Miembros | Buscar | Ayuda
Nombre de usuario:
Contraseña de acceso:
 
Guardar contraseña
¿Olvidaste tu contraseña?

  
   Accede a nuestra zona de chat para conversar en directo Accede a la zona para compartir archivos   
Ayuda a mantener la web:
 Todos los Foros
 Resuelve tus dudas sobre GIS
 Acceso a Conversaciones
 MDT a partir de curvas de nivel y ecuac. del plano
 Nuevo Tema  Responder al tema
 Imprimir
Autor Tema Anterior Tema Tema Siguiente  

galvedro

España
 

Enviado - 28/06/2003 :  21:17:50  Mostrar perfil  Responder  Responder con Cita
Hola a todos,

estoy intentando preparar un método que me permita obtener modelos digitales del terreno a partir de una capa con las curvas de nivel. De todo lo que he probado hasta ahora, el método que mejores resultados me ha dado es el siguiente:

  • A partir de la capa vectorial con las curvas, genero un raster con una resolución apropiada.


  • A partir del raster, genero otra capa vectorial, pero esta vez la geometría son puntos xyz.


  • Con la capa de puntos, aplico un método de interpolación del 3D Analyst conocido como interpolación estocástica de Kriging.


El resultado es... dejémoslo en razonable y muuuuuy lento. Supongo que el problema está en que la capa de curvas de la que dispongo es de equidistancia 100 m, lo cual es muy tosco y el raster de salida tiende a formar escalones (como las pirámides Mayas).

Alguien conoce un método que pueda dar mejores resultados o sea más directo

... A todo esto, si alguien conoce algún sitio de donde poder descargarse un MDT del área de Galicia, también me sería de gran ayuda.

Antón Gómez Alvedro
Redes de Telecomunicación de Galicia S.A.
Santiago de Compostela








Editado por - galvedro a las 28/06/2003 21:23:47
    
  
 
    

Gabriel



España
 

Enviado - 26/07/2003 :  10:35:46  Mostrar perfil  Visitar la web de Gabriel  Responder  Responder con Cita
Mi opinión es que cuando se trata de hacer modelos digitales del terreno partiendo de datos restituidos (curvas de nivel y puntos acotados, como creo que es tu caso) hay que tender a buscar métodos en los cuales la interpolación tenga el papel más limitado posible. Hay otros que no piensan así, pero yo siempre que trabajo con cartografía restituida tiendo a mantener el dato restituido y meter el mínimo posible de interpolación (naturalmente, en el caso de otra naturaleza de datos esto pudiera no ser válido, pero me ciño al caso de cartografía con altimetría procedente de restitución, y con curvas de nivel abundantes).

¿Cómo se puede hacer esto? La respuesta: el algoritmo de Delaunay, que es el que utiliza ArcView para calcular los TIN y la mayor parte de las herramientas GIS que trabajan con TIN. Como sabrás, para construir un TIN se pueden meter los datos con un papel diferente: puntos masivos (mass points), líneas de ruptura suaves (softlines), líneas de ruptura fuertes (hardlines), etc. (no sé si estoy utilizando exactamente la terminología de ArcView, pero en cualquier caso la idea es la misma en cualquier aplicación que use TIN).
Si se introducen bajo el epígrafe adecuado los datos originales, éstos serán replicados casi exactamente en el MDT de tipo TIN resultante, de tal manera que un curvado (contour) practicado a la misma equidistancia de curvas que la cartografía original nos devolverá casi las mismas curvas de nivel que las originales.

Si introducimos líneas de ruptura suaves (softlines) en el cálculo del TIN estamos obligando a que la estructura de triángulos conserve los vértices de esas líneas de ruptura suave... es decir, estamos diciendo que dentro de una pendiente de una ladera, no traze los triángulos desde la cima hasta la base de la misma, sino que haga un término medio en la línea de ruptura suave (softline). Si introducimos las curvas de nivel de la cartografía base como softlines (todas las curvas), obligaremos al TIN a registrar todos los puntos de la curva de nivel, con lo cual estos puntos formarán parte con su cota original del modelo. En consecuencia, el MDT resultante tendrá un elevado grado de fidelidad sobre las curvas de nivel originales.

Es importante señalar el tema de las tolerancias geométricas, que básicamente en el caso de MDT de tipo TIN son dos (*pueden llamarse de otra forma según la geo-aplicación que estemos utilizando):

  • Tolerancia de generalización de puntos ('Weed Tolerance').

  • Tolerancia de proximidad ('Proximal Tolerance').

La tolerancia de generalización indica la distancia mínima entre los puntos de las entidades introducidas (en tu caso, la distancia mínima a considerar entre los puntos que definen las curvas de nivel). Una tolerancia weed de 5 m por ejemplo indica que aquellos puntos que estén a menos de 5 m entre sí no serán tenidos en cuenta en el proceso de cálculo del TIN (el proceso de selección de puntos se suele hacer normalmente en función del algoritmo de Douglas-Peucker). Indicar una tolerancia weed muy alta puede llevar a que tus curvas de nivel derivadas de un contour sobre el TIN difieran de las originales, por ser más rectas (carecer de algunos vértices).

Por otro lado, la tolerancia de proximidad (Proximal), nos permite establecer lo contrario: en el caso de que metas una línea de ruptura que tiene pocos vértices, cada cuánto te la gradúa con puntos nuevos. Por ejemplo, en la cartografía original tienes una cota del frente de una presa definida por una línea recta de 100 m, pero sólo está definida por dos vértices en los extremos. Si indicas una tolerancia de proximidad de 10 metros, esa línea de ruptura sería graduada cada 10 m a partir de su origen con nuevos puntos 3D con la Z de la línea original, y dichos puntos entrarían en el proceso de cálculo del TIN.

En cuanto a los puntos acotados, sólo puedes introducirlos como puntos masivos (mass-points) dentro del cálculo, así que no hay mucho más que decir sobre ellos... (es válida la tolerancia Weed, eso sí; en ese caso es considerada como radio de búsqueda alrededor de cada punto para la simplificiación).

En resumidas cuentas, mi opinión es conservar al máximo posible los datos de restitución porque son un método mucho más preciso de obtener información 3D del terreno que cualquier método de interpolación espacial por 'inteligente' que éste sea. Ni un Kriging, ni un IDW, ni ningún otro algoritmo te pueden igualar lo que el operador de restitución está viendo en un modelo estereoscópico, pese al error Z implícito en la restitución.

Mete las curvas de nivel como 'softlines', los puntos como 'mass-points' y si dispones de red hidrográfica u otros elementos como líneas de cumbres, acantilados, etc, mételos como 'hardlines'. Esa es la manera en que más se pueden mantener los datos originales.

Pero probablemente te estarás haciendo la pregunta: "Ya, pero yo lo que quiero es tener el modelo digital del terreno en raster, no en un TIN"
En ese caso de que necesites pasar el modelo a raster, hazlo a través de una asignación lineal, lo que te dará lugar a un MDT más preciso a mi entender que si partes de los datos de curvas de nivel y tiras a hacerlo directamente a través de una algoritmo raster (como Kriging, IDW, etc).

Veamos el fundamento de lo que he llamado 'asignación lineal'. Dicha asignación lo que te hace es que va recorriendo cada celda del MDT raster y para sacar la cota Z de ese punto se dirige al TIN, busca el triángulo en el que cae dicho punto, coge los tres puntos tridimensionales que definen el plano del triángulo 3D, calcula la ecuación del plano tridimensional y por último calcula la cota Z para las coordenadas del centro de la celda que esté calculando.

El fundamento para el cálculo de la ecuación del plano a partir de 3 puntos 3D lo tienes en
http://astronomy.swin.edu.au/~pbourke/geometry/planeeq/

Pero pongamos un ejemplo con el que se entenderá mejor; imagina que tienes un triángulo con las siguientes coordenadas UTM tridimensionales:
x1,y1,z1 = 434000, 4812000, 215
x2,y2,z2 = 437000, 4813000, 320
x3,y3,z3 = 435000, 4814000, 400

Y tú quieres calcular la Z del punto de tu celda raster que queda en
434500, 4812500

Los desarrollos para el cálculo de la ecuación del plano son:

   |1 y1 z1|    |x1 1 z1|    |x1 y1 1|    |x1 y1 z1|
A= |1 y2 z2| B= |x2 1 z2| C= |x2 y2 1| D=-|x2 y2 z2|
   |1 y3 z3|    |x3 1 z3|    |x3 y3 1|    |x3 y3 z3|

Desarrollando obtenemos:
A = y1 (z2 - z3) + y2 (z3 - z1) + y3 (z1 - z2)
B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1 - x2)
C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1 - y2)
-D = x1 (y2 z3 - y3 z2) + x2 (y3 z1 - y1 z3) + x3 (y1 z2 - y2 z1)

Lo aplicamos a nuestro ejemplo:
A = 4812000 (320 - 400) + 4813000 (400 - 215) + 4814000 (215 - 320)
B = 215 (437000 - 435000) + 320 (435000 - 434000) + 400 (434000 - 437000)
C = 434000 (4813000 - 4814000) + 437000 (4814000 - 4812000) + 435000 (4812000 - 4813000)
- D = 434000 (4813000 400 - 4814000 320) + 437000 (4814000 215 - 4812000 400) + 435000 (4812000 320 - 4813000 215)

Y obtenemos:
A = -25000
B = -450000
C = 5000000
D = 2.175175E12

La ecuación estándar del plano era:
Ax + By + Cz + D = 0

Sustituimos para nuestro ejemplo:
(-25000*434500)+(-450000*4812500)+5000000z+2.175175E12=0

Despejando obtenemos la Z para el punto que queríamos:
Z = 262.5

Esa misma ecuación te podría servir para cualquiera de los puntos que cayeran en ese triángulo del TIN.
Este tipo de interpolación está implementado en la mayor parte de las aplicaciones SIG del mercado que son capaces de transformar TIN en MDT raster (en ArcInfo creo recordar que el comando se llama TINtoGRID), y casi siempre bajo los parámetros de 'interpolación lineal'.
Según mi experiencia, cuando partes de curvas de nivel y puntos acotados en abundancia (cartografía de restitución), conseguir el MDT Raster es mucho más preciso a través del proceso que he descrito que no reducir las curvas a puntos y tratar de afrontar directamente el raster a partir de algoritmos como Kriging o IDW.

Yo prefiero pasar por el TIN y luego hacer una asignación lineal como la descrita anteriormente porque ello implica que se conserva mucho más el dato original (las curvas de nivel están implícitas dentro del TIN).







Ir al inicio de la página
  Tema Anterior Tema Tema Siguiente  
 Nuevo Tema  Responder al tema
 Imprimir
Ir a:
Ortografía: Revisa que tus palabras tengan la ortografía correcta. Escribe con minúsculas y tilda adecuadamente las palabras.
Cuidar nuestro idioma común, el Castellano, es importante.

Disclaimer: no me hago responsable de los comentarios. Los responsables son en cada caso los autores de los mismos.
Las normas de uso del foro y del chat no permiten conversaciones sobre piratería y uso ilegal de material sometido a copyright.
Todos los comentarios sobre pirateo serán borrados al cabo de unos minutos.


Principal | Sección de Recursos | Chat en vivo | Tu Opinión | Sobre este sitio | Aviso Legal | Requerimientos | Contactar
© GabrielOrtiz.com
 Image Forum 2001 Snitz Forums 2000