tema3 lidar

Download Tema3 Lidar

Post on 24-Oct-2015

21 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Herram. Inf. para el Geoprocesado. Procesamiento y Gestin de datos Lser y Rdar Geotecnologas Cartogrficas en Ingeniera y Arquitectura

    Escuela Politcnica Superior de vila 1 Universidad de Salamanca

    1 Cargar archivo de datos terrestres

    Vamos a comenzar leyendo un archivo de puntos de datos Terrestre con las coordenadas

    xyz de los mismos. Utilizaremos algo de lo usado en el ejercicio 9 de la parte de

    introduccin para permitir leer un archivo de puntos y mostrar las coordenadas en una

    tabla, en este caso los archivos que vamos a leer utilizan como separador el tabulador.

    Despus probaremos a representar los puntos ledos ayudndonos de un componente de

    evaluacin.

    Comenzamos un proyecto nuevo que se llamar LeerFicherosTerrestre. Vamos a

    intentar leer ficheros de puntos en coordenadas X Y Z, separados por tabulador. Y

    vamos a representar esos puntos.

    Creamos el men con el control MenuStrip en el grupo Mens y Barras de

    Herramientas.

    El formulario presentar el aspecto:

    Las etiquetas que vemos, un cuadro de texto con nombre txt_ruta para ver la ruta del

    archivo ledo, un cuadro de texto txt_leidos en el que mostraremos el nmero de

    puntos que se lean, un cuadro de texto txt_visor en el que pondremos la propiedad

    Multiline a True, para mostrar las lneas que vamos leyendo del fichero y un

    DataGridView que encontramos en la categora de Datos y llamamos dgv_tabla. Al

    insertar la tabla le agregamos tres columnas con los nombres de las coordenadas de los

    puntos X, Y, Z.

  • Herram. Inf. para el Geoprocesado. Procesamiento y Gestin de datos Lser y Rdar Geotecnologas Cartogrficas en Ingeniera y Arquitectura

    Escuela Politcnica Superior de vila 2 Universidad de Salamanca

    Para el acceso al sistema de archivos utilizaremos el dilogo OpenFileDialog del grupo

    de controles Dilogos.

    Comenzamos con la opcin la operacin de leer que asociaremos al men

    Archivo/Abrir.

    Para el utilizar las clases relacionadas con la entrada y salida, importamos el espacio de

    nombres Imports System.IO al comienzo del cdigo.

    Escribimos el cdigo siguiente:

    Private Sub AbrirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AbrirToolStripMenuItem.Click OpenFileDialog1.Filter = "Archivos Ascii(*.asc)|*.asc|Archivos de Texto(*.txt)|*.txt|Todos los Archivos|*.*" 'Le indicamos los filtros que aparecern al seleccionar los archivos. asc, txt, o todos. OpenFileDialog1.ShowDialog() 'Mostramos dilogo de Abrir txt_ruta.Text = OpenFileDialog1.FileName 'Colocamos en el cuadro de texto la ruta y nombre del fichero seleccionado Dim leer As New StreamReader(New FileStream(OpenFileDialog1.FileName, FileMode.Open)) 'Creamos la variable de tipo StreamReader que nos permitir manejar el fichero 'la variable se crea a partir otra de tipo FileStream asociada al archivo seleccionado y 'Abiendo el archivo Dim linea As String txt_visor.Clear() 'Borramos el cuadro que visionar las lineas ledas dgv_tabla.Rows.Clear() 'Borramos la tabla que muestra las coordenadas de los puntos Dim punto(2) As String 'Vector de tres cadenas para guardar la X,Y,Z de cada punto Do linea = leer.ReadLine 'Leemos una linea del fichero If Not linea Is Nothing Then 'Si la linea no est vacia punto = Split(linea, vbTab, 3) 'Separamos con la funcin Split la linea por la posicin del separador "tabulador" 'Limitamos el nmero de trozos a 3 para no desbordar el vector If punto.Length = 3 Then 'Si no hay tres coordenadas descartamos el dato dgv_tabla.Rows.Add(punto(0), punto(1), punto(2)) 'Aado las coordenadas del punto a la tabla End If txt_visor.AppendText(linea & vbCrLf) 'Aado la linea leda al visor. vbCrLf es un salto de linea End If

    Loop Until linea Is Nothing 'Repetimos hasta que linea sea vacia que se habr terminado el fichero leer.Close() 'Cerramos el fichero leer = Nothing txt_leidos.Text = dgv_tabla.Rows.Count - 1 'Pongo en txt_leidos el numero de puntos aadidos a la tabla. End Sub

  • Herram. Inf. para el Geoprocesado. Procesamiento y Gestin de datos Lser y Rdar Geotecnologas Cartogrficas en Ingeniera y Arquitectura

    Escuela Politcnica Superior de vila 3 Universidad de Salamanca

    Se puede entender el cdigo a partir de los comentarios. Se podra realizar un control

    ms preciso de errores para contemplar casos en que los archivos proporcionados no se

    ajusten al formato previsto. Pero como comienzo lo dejamos as.

    Intentamos probar el cdigo que hemos escrito hasta el momento. Abrimos el fichero

    CuatroPostesmini.asc que se proporciona como ejemplo, tiene 16650 puntos. Luego

    probamos con el completo.

    Guardamos el proyecto y lo cerramos.

  • Herram. Inf. para el Geoprocesado. Procesamiento y Gestin de datos Lser y Rdar Geotecnologas Cartogrficas en Ingeniera y Arquitectura

    Escuela Politcnica Superior de vila 4 Universidad de Salamanca

    2 Convertir los puntos a DXF.

    Cuando realicemos algunas operaciones sobre los puntos y queramos utilizarlos en

    alguno de los programas habituales de diseo grfico, necesitaremos tenerlos en algn

    formato estndar. El formato DXF nos lo reconocer la mayora de los programas.

    Podramos utilizar algn componente existente para la conversin a DXF, pero algunos

    no son gratuitos. Otros no estn disponibles para Visual .Net. Adems as lo conocemos

    y podemos aadir esa funcionalidad a nuestras aplicaciones. Vamos a intentar entender

    la estructura de un archivo DXF, y vamos a programar una aplicacin sencilla para

    realizar la conversin slo de puntos. Despus en otro ejercicio posterior, crearemos una

    biblioteca de clases para dejar preparada la conversin a DXF para otras aplicaciones

    futuras.

    2.1 ESTRUCTURA DE UN ARCHIVO DXF.

    DXF viene de Drawing eXchange Format, es un archivo de intercambio de dibujos de

    CAD. Los archivos DXF son archivos ASCII. Tambin hay DXF binarios pero con el

    tiempo los ASCII han ganado protagonismo y si no se indica lo contrario cuando nos

    hablan de DXF se refieren a estos. Los archivos DXF se componen de pares de cdigos

    y valores asociados. Los cdigos, se llaman cdigos de grupo e indican el tipo de valor

    que les sigue. Los archivos DXF se organizan en secciones, que constan de registros a

    su vez compuestos o por un cdigo de grupo o un elemento de datos: cada cdigo de

    grupo y su valor cuentan con su propia lnea en el archivo DXF. Cada seccin comienza

    con un cdigo de grupo 0 seguido por la cadena SECTION. A continuacin aparece un

    cdigo de grupo 2 y una cadena que indica el nombre de la seccin (por ejemplo,

    HEADER). Las secciones terminan con un 0 seguido de la cadena ENDSEC.

    Las principales secciones de un archivo DXF y su orden son:

    SECCIN DESCRIPCIN Seccin HEADER Informacin de carcter general sobre el dibujo. Se compone de

    un nmero de versin de base de datos de AutoCAD y de una

    serie de variables de sistema. Cada uno de los parmetros

    contiene un nombre de variable y su valor asociado.

    Seccin CLASSES Informacin de las clases definidas por la aplicacin, cuyas apariciones se contienen en las secciones BLOCKS, ENTITIES

    y OBJECTS de la base de datos

    Seccin TABLES Definiciones de las siguientes tablas: APPID (tabla de identificacin de las aplicaciones) BLOCK_RECORD (tabla de

    referencia de bloques) DIMSTYLE (tabla de estilos de

    acotacin) LAYER (tabla de capas) LTYPE (tabla de tipos de

    lnea) STYLE (tabla de estilos de texto) UCS (tabla del Sistema

    de coordenadas personales) VIEW (tabla de visualizacin)

    VPORT (tabla de configuracin de la ventana grf.)

    Seccin BLOCKS Definiciones de bloques Seccin ENTITIES Contiene los objetos grficos (entidades) del dibujo, incluidas

    las referencias a bloques (entidades insertadas).

    Seccin OBJECTS Los objetos no grficos del dibujo. En esta seccin es donde se almacenan todos los objetos que no sean entidades ni registros

    de la tabla de smbolos.

  • Herram. Inf. para el Geoprocesado. Procesamiento y Gestin de datos Lser y Rdar Geotecnologas Cartogrficas en Ingeniera y Arquitectura

    Escuela Politcnica Superior de vila 5 Universidad de Salamanca

    Los cdigos de grupo definen el tipo de valor asociado como un nmero entero, un

    nmero de coma flotante o una cadena, segn la siguiente tabla de rangos de cdigo de

    grupo.

    RANGO DE CDIGO

    TIPO DE VALOR DE GRUPO

    0 - 9 Cadena

    10 - 59 Punto 3D de doble precisin

    60 - 79 Valor entero de 16 bits

    90-99 Valor entero de 32 bits

    100 y 102 Cadena

    105 Cadena con un valor de identificador hexadecimal

    140 - 147 Valor de coma flotante escalar de doble precisin

    170 - 175 Valor entero de 16 bits

    280 - 289 Valor entero de 8 bits.

    300 - 309 Cadena de texto arbitraria

    310-319 Cadena que representa el valor hexadecimal de un bloque

    binario

    320-329 Cadena que representa un valor de identificador Hexadecimal

    330-369 Cadena que representa identificador de objeto hexadecimal

    999 Comentario

    1000 - 1009 Cadena

    1010-1059 Valor de coma flotante

    1060 - 1069 Valor entero de 16 bits

    1071 Valor entero de 32 bits

    Hay algunos valores que por lo que se usan conv