[GRASS-ES] RE: Resumen de grass-es, Vol 20, Envío 4

Jhon Ortiz eljhonjhon en hotmail.com
Vie Feb 20 22:42:37 EST 2009



Hola Roberto y todos los de la lista..

Retomando un problema que había puesto en un "post" hace un par de meses, y que en su momento
lo solucione sin interpolar, pero ahora si necesito trabajar en el, si alguien me puede dar pautas
de como proceder?  Gracias!!


> 3. Re: Como construir un DEM a partir de un archivo importado
> con r.in.xyz? ( Roberto Antolín )

> Message: 3
> Date: Thu, 11 Dec 2008 16:30:56 +0100
> From: " Roberto Antolín " <rantolin.geo en gmail.com>
> Subject: Re: [GRASS-ES] Como construir un DEM a partir de un archivo importado conr.in.xyz?
>
> Hola Jhon y todos:
>
> 2008/12/11 Jhon Ortiz <eljhonjhon en hotmail.com>:
> > Roberto, estoy utilizando el modulo r.in.xyz que se que le has trabajado
> > duro. Este modulo me funciona muy bien, no estoy trabajando con datos LIDAR,
> > si no con datos X,Y,Z proporcionados por adquisición sísmica del fondo
> > marino. Mi objetivo es reconstruir la superficie del fondo marino en un DEM,
> > para realizar análisis topográficos (geomorfometria).
>
> Unos más densos que otros, pero son puntos igualmente ;-)
>
> > Lo que hago es
> >
> > r.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"
> > output=r_seafloor_res10m fs="|" x=2 y=3 z=4
> >
> > y agregando la opcion meth=n, en una region con resolucion de 10m, obtengo
> > la figura que adjunte en el correo anterior.
> >
> > Ahora lo que creo que debo hacer, es a partir de estos datos interpolar
> > y generar la superficie, adjunte la figura para ilustrar la geometria del
> > area de trabajo y poder explicar, que deseo interpolar solo el
> > rectangulo donde estan los datos y no toda la region de GRASS.
> >
> > Alguna idea de como delimitar la zona que deseo interpolar?
>
> Es una cuestión difícil, en el sentido de que tu zona de interés está
> girada con respecto a los ejes XY. Entonces creo que lo que mejor
> puedes hacer es considerar una máscara para trabajar con raster. Por
> normal general, los módulos r.* deberían respetarlas, pero los v.* no
> tienen por qué hacerlo.
>
> Lo que te preguntaría ahora es... ¿cómo quieres interpolar los datos?
> Lo primero que me viene a la cabeza es considerar v.surf.rst o
> v.surf.bspline utilizando splines en formato vectorial, v.surf.idw o
> r.surf.idw con el inverso de la distancia (para vectorial y raster); o
> r.surf.nnbathy (add-ons) utilizando el formato raster y el método de
> vecino más próximo.

quisiera usar r.surf.idw o v.surf.rst y probar r.surf.nnbathy.. 

> Para el caso vectorial y como es un rectángulo bastante regular
> podrías hacer la máscara así:
>
> $ v.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"
> output=v_seafloor_res10m fs="|" x=2 y=3 z=4 -ztb

En este paso creo que hay un pequeño error, v.in.xyz no existe?
creo que te refieres a v.in.ascii?

entonces ejecute:
v.in.ascii -zr input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"
output=v_seafloor_res10m skip=1 x=2 y=1 z=3

> $ v.hull in=v_seafloor_res10m out=v_seafloor_res10m_HULL

el comando anterior con todos los datos (90000 puntos) y res=10m me genera el error

    Reading 3D vertices:
     100%
     Constructing 3D hull:    ##  llega al 5% y sale el siguiente error
     Segmentation fault

("Entonces hice una "location" con solo 500 puntos y resolución 50m, para probar
el comando v.hull y me funciono, pero esto lo hice solo como una solución temporal,
probar el comando y luego pasar a crear la mascara)

> $ v.to.rast in=v_seafloor_res10m_HULL out=MASK

al correr el comando v.to.rast con la "location" de 500 puntos el resultado que obtengo es:

         "ERROR: Column parameter missing (or use value parameter)"

Revise el manual de este comando, y no logro entenderlo? revise las opciones de parámetros
a adicionar que me podían servir y probé con "use=z " y después con "use=cat" ejecutando:

v.to.rast in=v_seafloor_res10m_HULL out=MASK use=cat (también probe con use=z) 
y para los dos obtuve el siguiente resultado:
 
   Loading data...
   Reading features...
   %
   Writing raster map...
   100%
   Converted areas: 0 of 0
   Converted points/lines: 0 of 0
   v.to.rast complete.
   [Raster MASK present]

No me crea ninguna área?, y al desplegar MASK, no ha generado nada??


> No lo he probado pero debería funcionar :-P. Si no te funciona o o si
> el resultado de v.hull te sale un churro vuelve a escribir para ver
> cómo podemos crear una máscara mejor. Ahora deberías utilizar el
> vectorial que has importado con v.in.xyz para crear la máscara
> anterior. Si no recuerdo mal v.surf.rst sí que respeta las máscaras,
> en el caso de v.surf.bspline NO las respeta. Por ejemplo, para el caso
> de v.surf.bspline (que es el que he programado yo :-P):
>
> $ v.surf.bspline in=v_seafloor_res10m raster=r_seafloor_res10m sie=50 sin=50
>
> NOTA: Deja el paso de spline bastante grande. Vista tu imágen y
> conociendo la resolución de tu región (10m) te aconsejaría que
> escogieras un paso de spline al menos dos veces la resolución o algo
> así. Si no el programa se eternizará.
>
> Si quieres interpolar partiendo de raster, que lo que supongo que hace
> es rellenar las celdas con valor NULL, lo que yo haría sería una
> primera máscara para importar los datos de la misma manera que has
> creado el anterior (pero sin 'meth='), y después interpolar con la
> máscara creada para el caso vectorial. Es decir:
>
> # Crear la primera máscara
> $ r.mapcalc MASK="if(v_seafloor_res10m=0,null(),v_seafloor_res10m)"
> $ r.in.xyz input="/home/john/Desktop/Superficies/sea_floor_profundidad.txt"
> output=r_seafloor_res10m fs="|" x=2 y=3 z=4

Tambien intente este procedimiento y hasta aca todo va bien, pero como tengo problemas
para crear la mascara vectorial, no puedo ejecutar el siguiente paso que es cambiar la mascara
 
> # Cambiar de máscara:
> $ g.remove MASK #eliminar la anterior
> $ v.to.rast in=v_seafloor_res10m_HULL out=MASK # crear la nueva
> máscara con el procedimiento descrito más arriba
>
> # Interpolar:
> $ r.surf.* ....
>
> Espero no haber liado a nadie y que sea correcto todo lo que he
> puesto, jejejeje. Por cierto, queremos "feedback" ;-)
>

Espero que con esta respuesta, no enrede mucho el asunto y desde luego que el "feedback"
lo reenviare a la lista, cuando tenga la solución..

Gracias Roberto por tu anterior respuesta y si tu, o alguien de la lista me puedes ayudar a aclarar
mis dudas?   de antemano Gracias!

Estoy trabajando con la versión GRASS 6.4.0RC2 en Ubuntu 8.04

Gracias!!


John Ortiz
Bioestratigrafia - ICP
Bogota - Colombia

_________________________________________________________________
Anímate y disfruta con los mejores juegos de Messenger, ¡descúbrelos!
http://www.vivelive.com/juegos/  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.osgeo.org/pipermail/grass-es/attachments/20090221/86ecd4c5/attachment.html


Más información sobre la lista de distribución grass-es