Un kmz2shp hecho en casa
11 de Febrero de 2013
Actualmente, tengo un colega que trabaja mucho con GoogleEarth donde digitaliza un montón de polígonos y me pide una vez por semana transformar sus archivos en formato shapefile y luego proyectarlos. Eso se hace al toque con OGR, ya lo enseñe en este blog aquí y aca.
Pero esa vez, no prestó mucha atención y guardó algunos de sus archivos (unos 60) en formato .kmz en vez de .kml. El formato .kmz es solamente un archivo .kml zipeado. Entonces para transformar un .kmz en .kml, hay que cambiar la extensión del archivo a .zip y luego descomprimirlo. Obtenemos un archivo .kml (que generalmente se llama "doc.kml").
Como el no quería hacer esas manipulaciones unas 60 veces (y yo tampoco...), decidí hacer un pequeño archivo bash (entonces que funciona en linux, ubuntu en mi caso) para automatizar el proceso. Ademas, solamente nos interesaba la geometria de nuestros objetos, los atributos no (en el caso contrario es mas complicado). A continuación, las etapas a realizar para cada archivo .kmz (todos se encuentran en la misma carpeta):
- Cambiar la extension .kmz en .zip
- Descomprimir el .zip para obtener el arhivo .kml
- Renombrar el archivo "doc.kml" con el nombre del archivo .kmz
- Suprimir el .zip
- Transformar el .kml en shapefile (con OGR)
- Proyectar este shape (que esta en WGS84) en UTM 18 Zona Norte, EPSG:32618 (son datos de Puerto Príncipe en Haiti) y ponerlo en una otra carpeta que llamo "proj" (con OGR)
- Suprimir el shape inicial (el que esta en WGS84)
Llame mi archivo kmz2shp.sh. Aca esta el código completo:
#!/bin/bash # Renombro el arhivo "doc.kml" con el nombre del archivo .kmz # Creo una carpeta "proj" donde pongo el shape proyectado |
Nada mas. Antes de poder usarlo, tiene que ser ejecutable:
$ chmod +x kmz2shp.sh |
Ahora me pongo en la carpeta donde tengo mis archivos .kmz y ejecuto mi archivo bash (en mi caso se encuentra justo en la carpeta anterior):
$ ../kmz2shp |
Ahora mi carpeta contiene una sola carpeta "proj" que contiene unos 60 shapefiles proyectados.
Hecho! Tenemos nuestro kmz2shp "home made" que podemos volver a utilizar en otras ocasiones. Felices?