<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
<br>Hola Roberto y todos los de la lista..<br><br>Retomando un problema que había puesto en un "post" hace un par de meses, y que en su momento<br>lo solucione sin interpolar, pero ahora si necesito trabajar en el, si alguien me puede dar pautas<br>de como proceder? Gracias!!<br><br><br>> 3. Re: Como construir un DEM a partir de un archivo importado<br>> con r.in.xyz? ( Roberto Antolín )<br><br>> Message: 3<br>> Date: Thu, 11 Dec 2008 16:30:56 +0100<br>> From: " Roberto Antolín " <rantolin.geo@gmail.com><br>> Subject: Re: [GRASS-ES] Como construir un DEM a partir de un archivo importado conr.in.xyz?<br>><br>> Hola Jhon y todos:<br>><br>> 2008/12/11 Jhon Ortiz <eljhonjhon@hotmail.com>:<br>> > Roberto, estoy utilizando el modulo r.in.xyz que se que le has trabajado<br>> > duro. Este modulo me funciona muy bien, no estoy trabajando con datos LIDAR,<br>> > si no con datos X,Y,Z proporcionados por adquisición sísmica del fondo<br>> > marino. Mi objetivo es reconstruir la superficie del fondo marino en un DEM,<br>> > para realizar análisis topográficos (geomorfometria).<br>><br>> Unos más densos que otros, pero son puntos igualmente ;-)<br>><br>> > Lo que hago es<br>> ><br>> > r.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"<br>> > output=r_seafloor_res10m fs="|" x=2 y=3 z=4<br>> ><br>> > y agregando la opcion meth=n, en una region con resolucion de 10m, obtengo<br>> > la figura que adjunte en el correo anterior.<br>> ><br>> > Ahora lo que creo que debo hacer, es a partir de estos datos interpolar<br>> > y generar la superficie, adjunte la figura para ilustrar la geometria del<br>> > area de trabajo y poder explicar, que deseo interpolar solo el<br>> > rectangulo donde estan los datos y no toda la region de GRASS.<br>> ><br>> > Alguna idea de como delimitar la zona que deseo interpolar?<br>><br>> Es una cuestión difícil, en el sentido de que tu zona de interés está<br>> girada con respecto a los ejes XY. Entonces creo que lo que mejor<br>> puedes hacer es considerar una máscara para trabajar con raster. Por<br>> normal general, los módulos r.* deberían respetarlas, pero los v.* no<br>> tienen por qué hacerlo.<br>><br>> Lo que te preguntaría ahora es... ¿cómo quieres interpolar los datos?<br>> Lo primero que me viene a la cabeza es considerar v.surf.rst o<br>> v.surf.bspline utilizando splines en formato vectorial, v.surf.idw o<br>> r.surf.idw con el inverso de la distancia (para vectorial y raster); o<br>> r.surf.nnbathy (add-ons) utilizando el formato raster y el método de<br>> vecino más próximo.<br><br>quisiera usar r.surf.idw o v.surf.rst y probar r.surf.nnbathy.. <br><br>> Para el caso vectorial y como es un rectángulo bastante regular<br>> podrías hacer la máscara así:<br>><br>> $ v.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"<br>> output=v_seafloor_res10m fs="|" x=2 y=3 z=4 -ztb<br><br>En este paso creo que hay un pequeño error, v.in.xyz no existe?<br>creo que te refieres a v.in.ascii?<br><br>entonces ejecute:<br>v.in.ascii -zr input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"<br>output=v_seafloor_res10m skip=1 x=2 y=1 z=3<br><br>> $ v.hull in=v_seafloor_res10m out=v_seafloor_res10m_HULL<br><br>el comando anterior con todos los datos (90000 puntos) y res=10m me genera el error<br><br> Reading 3D vertices:<br> 100%<br> Constructing 3D hull: ## llega al 5% y sale el siguiente error<br> Segmentation fault<br><br>("Entonces hice una "location" con solo 500 puntos y resolución 50m, para probar<br>el comando v.hull y me funciono, pero esto lo hice solo como una solución temporal,<br>probar el comando y luego pasar a crear la mascara)<br><br>> $ v.to.rast in=v_seafloor_res10m_HULL out=MASK<br><br>al correr el comando v.to.rast con la "location" de 500 puntos el resultado que obtengo es:<br><br> "ERROR: Column parameter missing (or use value parameter)"<br><br>Revise el manual de este comando, y no logro entenderlo? revise las opciones de parámetros<br>a adicionar que me podían servir y probé con "use=z " y después con "use=cat" ejecutando:<br><br>v.to.rast in=v_seafloor_res10m_HULL out=MASK use=cat (también probe con use=z) <br>y para los dos obtuve el siguiente resultado:<br> <br> Loading data...<br> Reading features...<br> %<br> Writing raster map...<br> 100%<br> Converted areas: 0 of 0<br> Converted points/lines: 0 of 0<br> v.to.rast complete.<br> [Raster MASK present]<br><br>No me crea ninguna área?, y al desplegar MASK, no ha generado nada??<br><br><br>> No lo he probado pero debería funcionar :-P. Si no te funciona o o si<br>> el resultado de v.hull te sale un churro vuelve a escribir para ver<br>> cómo podemos crear una máscara mejor. Ahora deberías utilizar el<br>> vectorial que has importado con v.in.xyz para crear la máscara<br>> anterior. Si no recuerdo mal v.surf.rst sí que respeta las máscaras,<br>> en el caso de v.surf.bspline NO las respeta. Por ejemplo, para el caso<br>> de v.surf.bspline (que es el que he programado yo :-P):<br>><br>> $ v.surf.bspline in=v_seafloor_res10m raster=r_seafloor_res10m sie=50 sin=50<br>><br>> NOTA: Deja el paso de spline bastante grande. Vista tu imágen y<br>> conociendo la resolución de tu región (10m) te aconsejaría que<br>> escogieras un paso de spline al menos dos veces la resolución o algo<br>> así. Si no el programa se eternizará.<br>><br>> Si quieres interpolar partiendo de raster, que lo que supongo que hace<br>> es rellenar las celdas con valor NULL, lo que yo haría sería una<br>> primera máscara para importar los datos de la misma manera que has<br>> creado el anterior (pero sin 'meth='), y después interpolar con la<br>> máscara creada para el caso vectorial. Es decir:<br>><br>> # Crear la primera máscara<br>> $ r.mapcalc MASK="if(v_seafloor_res10m=0,null(),v_seafloor_res10m)"<br>> $ r.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"<br>> output=r_seafloor_res10m fs="|" x=2 y=3 z=4<br><br>Tambien intente este procedimiento y hasta aca todo va bien, pero como tengo problemas<br>para crear la mascara vectorial, no puedo ejecutar el siguiente paso que es cambiar la mascara<br> <br>> # Cambiar de máscara:<br>> $ g.remove MASK #eliminar la anterior<br>> $ v.to.rast in=v_seafloor_res10m_HULL out=MASK # crear la nueva<br>> máscara con el procedimiento descrito más arriba<br>><br>> # Interpolar:<br>> $ r.surf.* ....<br>><br>> Espero no haber liado a nadie y que sea correcto todo lo que he<br>> puesto, jejejeje. Por cierto, queremos "feedback" ;-)<br>><br><br>Espero que con esta respuesta, no enrede mucho el asunto y desde luego que el "feedback"<br>lo reenviare a la lista, cuando tenga la solución..<br><br>Gracias Roberto por tu anterior respuesta y si tu, o alguien de la lista me puedes ayudar a aclarar<br>mis dudas? de antemano Gracias!<br><br>Estoy trabajando con la versión GRASS 6.4.0RC2 en Ubuntu 8.04<br><br>Gracias!!<br><br><br>John Ortiz<br>Bioestratigrafia - ICP<br>Bogota - Colombia<br><br /><hr />Tienes un nuevo Messenger por descubrir. <a href='http://download.live.com/' target='_new'>¡Descárgatelo! </a></body>
</html>