Para los que usamos sistemas de información geográfica (SIG o GIS en su abreviatura inglesa, yo uso gvSIG que es libre), a menudo necesitamos manipular los archivos de extensión DBF, es decir, la base de datos de la capa de información geográfica shp.
Por ejemplo, para hacer ordenaciones y filtrados de la base de datos yo usaba Excel 2002, pues permitía guardar en formato DBF. Sin embargo las versiones posteriores de Excel han eliminado esta posibilidad. Tampoco es que el programa fuera una maravilla, pues cambiaba el formato de los campos, lo mismo que ocurre con gvSIG al juntar capas (altera el tamaño de los campos, pone decimales a los campos numéricos, etc.), lo cual es un engorro y obliga a retocar la estructura del DBF.
Yo lo solía arreglar esas cosas con el DBASE, pero a muchos colegas les suena a chino y además hay que usar comandos… Así que empecé a rebuscar entre los múltiples programas de conversión de formatos, pero ninguno se adaptaba a lo que yo quería hacer: ordenaciones y filtrados, que me permitiera alterar la estructura de la tabla y que me la guardara el formato DBF.
Así que probé con la competencia de Excel, el programa Calc de OpenOffice, que además es gratuito, y voilà, aquí esta lo que estaba buscando.
Calc es capaz de abrir archivos DBF y guardarlos en ese mismo formato conservando la estructura de la tabla. Para ello, cuando importas un DBF, en la primera fila que contiene los nombres de los campos Calc añade una serie de caracteres, separados por comas, que definen la estructura de la tabla:
- C,10 : para campos tipo carácter, el número es la longitud del campo
- N,8,2: para los campos numéricos, el primer dígito es la longitud de la parte entera y el segundo la de la parte decimal
- L: para campos verdadero/falso.
Para finalizar os dejo un par de recomendaciones:
- Haced una copia de seguridad del DBF antes de manipularlo.
- Nada más importar la tabla en Calc (usad conversión Europa occidental ISO-8859-15/EURO) y antes de manipularla, cread un campo numérico (que yo suelo llamar FID) y numeradlo automáticamente siguiendo el orden de los registros. Con esto os evitaréis que, tras hacer varios filtros y manipulaciones, se os desordene la tabla y cambie de sitio todos los valores de la capa GIS. Sólo tenéis que observar que la tabla está ordenada por el campo FID antes de guardarla.
Gracias por el truco, Jose Luis.
No funciona, al modificar y guardar un archivo *.dbf en OpenOffice Calc, se crea un archivo adicional y el tamaño de la dbf se reduce.
Al intentar abrir un shape en algún SIG no funciona.
Pues a mi me funciona perfectamente. No sé qué decirte.
Quiero editar un archivo dbf y cuando le pido a calc que lo abra me pregunta como y me da las opciones unicode7,8 europa occidentel etc. cual debo elegir?
Generalmente funciona bien el Europa occidental (ISO-8859-15/EURO). Si no te funciona, prueba con otros a ver cuál no te da problemas.
Hola Jolube y lectores:
Todo va bien salvo porque el programa SIG me carga en la primera fila de datos los nombres de las columnas… Ahora tengo duplicado ese campo, por un lado aparece el encabezamiento de las columnas, y por otro, en la primera fila, esos mismos títulos como si fuesen un valor más. ¿Qué debo hacer?
Gracias de antemano
Ni idea, a mi eso no me ocurre.
Una precaución que hay que tener con esto, es que LibreOffice / OpenOffice renombran las columnas del dbf para ponerlas en mayúsculas. En la mayoría de los casos no importa, pero en algunas situaciones como si tienes scripts hechos te dejarán de funcionar.
Muchas gracias por tu útil aportación