Gracias a un formato bastante cerebral llamado DBF, no es posible agregar campos a los archivos de forma con datos de atributos existentes sin reescribir o agregar relleno al DBF. No conozco una solución preparada, pero lo que haría sería escribir un script para crear un nuevo archivo de forma basado en uno existente y agregar los campos adicionales al nuevo archivo de forma. Luego copie los datos de geometría / atributo del archivo de forma antiguo al nuevo. Y como paso final, elimine el antiguo archivo de forma y cambie el nombre del nuevo. Todo esto se logra con bastante facilidad utilizando los enlaces de Python de OGR.
Alternativamente, puede usar dbfpy para hacer lo anterior solo con el archivo DBF. El orden de los pasos sigue siendo el mismo:
- Cree un nuevo DBF con estructura idéntica a la original
- Crear nuevos campos de atributos en el nuevo DBF
- Copie datos del DBF original al nuevo DBF
- Elimine DBF antiguo, cambie el nombre de DBF nuevo a DBF antiguo
No es necesario realizar ningún cambio en el archivo de forma (.shp) ni en ninguno de los otros archivos, ya que no hacen referencia a la información de atributos contenida en el DBF. Sin embargo, debe mantener el orden de los registros exactamente igual en el DBF antiguo y en el nuevo.