jueves, 7 de marzo de 2013

Conversión de ficheros formato Kml a formato PLT


Y a formato GPX. Un fichero KML es uno de los tipos de fichero que utiliza  Google Hearth para representar una ruta. Es un fichero de texto leíble con cualquier editor de textos.
Una ruta en formato KML esta formada por una serie de comandos XML. Cada comando está dedicado a un tema, cabecera, nombre, el color, etc... Aquí solo nos interesan las coordenadas, que son una única línea en la que están todos los puntos de una ruta separados por un espacio. Cada punto, a su vez, está formado por un valor X para la longitud, un valor Y para la latitud y un valor Z para la altura, separados por comas X,Y,Z 
Esta estructura de datos nos crea un problema a la hora de trabajar con ellos en Excel, los datos no vienen en columnas, vienen en una sola línea, lo que junto a que una hoja excel tiene 256 columnas como máximo y a que el número de caracteres en una celda también es limitado nos impide trabajar, al menos, con rutas de mas de 256 puntos.
Cuando empecé este trabajo no tuve en cuenta estas limitaciones, me limité a abrir el fichero KML con excel y a procesar la línea con los puntos de la ruta. En esta primera forma de trabajar , durante el primer paso, necesitaba una columna por punto. Esta la limitación de 256 columnas me impedía trabajar rutas de mas 256 puntos. Posteriormente pensé ¿Como convierto esa línea de n puntos en una columna con n líneas de un punto? Se puede hacer y de hecho es relativamente sencillo. Como he dicho estos ficheros son editables con cualquier editor de textos, en mi caso utilicé el bloc de notas. 
  • Hacemos una copia del fichero KML, pongamos pru.kml, y la abrimos con el bloc de notas.
  • Eliminamos todas las líneas de comandos y nos quedamos solo con la enorme línea con los puntos de la ruta.
  • Delante de esa línea insertamos <table><tr><td>
  • Como en este caso el separador de los puntos de la ruta es un espacio sustituimos ese espacio por <tr><td>. Accedemos a la utilidad de reemplazar, escribimos un espacio en la casilla "buscar" y <tr><td> en la casilla "reemplazar por". Pulsamos reemplazar todo.
  • Añadimos después de la línea con los puntos </table>
  • Guardamos el fichero con "Guardar Como" cambiando la extensión del fichero a HTM. Pongamos pru.htm
  • Con el botón derecho del ratón (botón secundario) abrimos este fichero htm con excel. Por lo menos en mi PC funciona, ya tenemos la línea convertida en columna.
  • Copiamos la columna, con pegado especial-> Valores, a un libro nuevo.
  • En este punto hay que separar los distintos X,Y,Z de cada punto. Con Datos->texto en columnas los vamos a separar.
  • Seleccionamos la columna completa. Datos->Texto en columna, delimitados. En este caso el separador en una coma.
  • A la hora de convertir un punto de formato no vamos a tocar ni el valor X ni el Y. El valor Z lo tenemos que convertir a pies, por lo que tiene que ser numérico.
  • En el paso 3 de la conversión seleccionaríamos los dos primeros campos (X e Y) como texto y par el tercero, la altura, lo dejamos como "General" y con la opción avanzadas indicamos que el separador decimal es un punto y el separador de miles es una coma. Indicamos la celda de destino y finalizamos.
  • Para pasar la altura de metros a pies divido la altura en metros por 0,3 y ya de paso redondeo el resultado. Utilizo  la función =REDONDEAR(C1/0,3;0) 
  • El resto es concatenar los distintos valores XYZ para que tengan la estructura de los distintos formatos OZIEXPLORER o GPX.
  • Añadimos los valores en los ficheros de texto que tengamos preparados con cabeceras y colas, y ya podemos funcionar.
Conversión de De PLT a GPX
Conversión de GPX a PLT
http://ellibrosobreexcelquenoescribirenunca.blogspot.com.es/2011/11/de-gpx-plt.html
http://ellibrosobreexcelquenoescribirenunca.blogspot.com.es/2011/11/de-gpx-plt-ii.html
http://ellibrosobreexcelquenoescribirenunca.blogspot.com.es/2011/11/de-gpx-plt-iii.html




No hay comentarios:

Publicar un comentario