¿Agregando datos de atributos a shapefile?

32

Puedo mostrar un shapefile en openlayers pero necesito agregar algunos datos de atributos.

Puedo abrir el archivo dbf en Excel pero no hay una opción para guardar en Excel en el archivo actualizado como dbf.

¿Cuál es la mejor manera (o software a usar) de agregar datos de atributos a mi shapefile?

    
pregunta ChrisJ 06.03.2011 - 20:42

10 respuestas

23

Usando QGIS puede editar su shapefile agregando nuevas columnas y valores. Simplemente abra el shapefile, vaya a Propiedades > Atributos y agregue nuevas columnas.

En las versiones más recientes de QGIS (2.x), 'Atributos' se llama 'Campos'

    
respondido por el doktoreas 06.03.2011 - 21:04
23

Use R con el paquete foreign para modificar el archivo DBF:

library(foreign)
dbfdata <- read.dbf("file.dbf", as.is = TRUE)
## add new attribute data (just the numbers 1 to the number of objects)
dbfdata$new.att <- 1:nrow(dbfdata)

## overwrite the file with this new copy
write.dbf(dbfdata, "file.dbf")

O lea la geometría y los datos de atributos con el paquete rgdal (para que también pueda modificar las relaciones y crear un shapefile completamente nuevo):

library(rgdal)
## read "/path/to/files/filename.shp"
shp <- readOGR("/path/to/files/", "filename")  

## add new attribute data (just the numbers 1 to the number of objects)
shp$new.att <- 1:nrow(shp)

## write out to a new shapefile
writeOGR(shp, "/path/to/files/", "filename2")  
    
respondido por el mdsumner 07.03.2011 - 01:18
4

No recomendaría el uso de OpenOffice, o una aplicación similar, en absoluto. Darren Cope comentando una respuesta a la pregunta " Creación y manipulación de DBF sin excel 2003 " dijo:

  

es que los shapefiles se molestan bastante si vas y editas el archivo .dbf en un programa 'externo'

    
respondido por el dariapra 06.03.2011 - 23:40
4

He combinado varios shapefiles usando MS Access. Necesitaba unirme a algunos datos de otro shapefile y funcionó bastante bien. También fue rápido. Sin embargo, supongo que no todo el mundo tiene este software

    
respondido por el Mykolas Simutis 29.03.2015 - 09:03
2

Usar QGIS es agradable y proporciona una interfaz sólida para interactuar con el DBF, pero si necesita hacer algo mediante programación o simplemente quiere herramientas para inspeccionar shapefiles, pensé en mencionar algunas otras herramientas: a menudo uso el características básicas de shapelib para examinar archivos DBF: puede agregar, crear y modificar tanto geometrías como atributos, a menudo uso dbfdump myshape.dbf para obtener una visión general rápida de los valores de los atributos.

Otra opción si está interesado en el control programático de un DBF es dbfpy , una biblioteca de python (una alternativa al agradable foreign biblioteca menciones mdsummer). Un script de ejemplo para agregar una columna:

import dbfpy

db = dbf.Dbf("myshape.dbf", new=False)
# add a new character field named 'myfield'
db.addField(("myfield", "C", 15))

db.close()
    
respondido por el scw 07.03.2011 - 03:54
2

como lo señaló Andy en el enlace al que se refiere DARIAPRA, hay un complemento de Excel 2007 que puede ser útil. Le permite guardar en el formato dbf. Puede encontrarlo en este sitio web:

enlace

(Como tengo Excel 2003, nunca lo he probado, pero he oído que fue útil.

En cuanto a la manipulación de DBF fuera de ArcGIS, lo he hecho varias veces. A veces funciona, a veces no funciona. Mis dos centavos: Si puedes evitar la manipulación exterior, evítalo. Si está tratando con un idioma que no es el inglés, evítelo por completo: tiende a fallar todo al editar fuera de ArcGIS).

    
respondido por el jonatr 08.03.2011 - 08:23
2

Alternativamente:

  1. abra el dbf en MS Excel 2007/10
  2. Realice los cambios (agregando columnas, completando datos, etc.) y guárdelos como xls / xlsx
  3. Navegue a la ubicación xls / xlsx en ArcCatalog, haga clic con el botón derecho en la hoja de trabajo y seleccione Exportar > A dBase (single)
  4. Cambie el nombre del archivo dbf de salida según sea necesario
respondido por el veedub 06.07.2012 - 12:36
2

uDig tiene una buena herramienta llamada remodelación, a través de la cual, por ejemplo, puede agregar atributos a una tabla: enlace

Las funciones admitidas son las del lenguaje de consulta común: enlace

    
respondido por el moovida 07.03.2011 - 15:00
2

Usualmente uso R (verifica la respuesta de mdsomners), pero no recomendaría aprender eso si eso es lo único que quieres hacer. Creo que el mejor enfoque sería utilizar un programa GIS, para crear los campos y luego intentar editarlos usando openoffice.

Más importante aún, debe pensar si necesita editar todos los campos de la tabla de atributos directamente o si puede unir otras tablas a ella. Esto último se puede hacer en la mayoría de los programas GIS, por ejemplo, SAGA GIS

enlace

    
respondido por el johanvdw 07.03.2011 - 09:42
1

Open Office Calc le permite leer y escribir archivos dbf. Pero la solución de Lcasagrande que usa QGIS debería ser más segura.

    
respondido por el underdark 06.03.2011 - 21:06

Lea otras preguntas en las etiquetas