Hinzufügen von Attributdaten zum Shapefile?


33

Ich kann ein Shapefile in Openlayern anzeigen, muss aber einige Attributdaten hinzufügen.

Ich kann die DBF-Datei in Excel öffnen, aber es gibt keine Option zum Speichern als Excel für die aktualisierte Datei als DBF.

Wie kann ich meinem Shapefile am besten Attributdaten hinzufügen (oder mithilfe von Software)?


Gehen Sie zu einer früheren Version von Excel zurück: MS entfernt die Fähigkeit zu schreiben DBF - Dateien mit der aktuellen Version! :-(
whuber

4
Open Office und Quattro Pro können DBF-Dateien bearbeiten und speichern, aber keine Zeilen löschen oder Daten verschieben, da die Indexdatei sonst keine Übereinstimmungen zulässt. Verwenden Sie für diese Aufgaben ein kommerzielles oder Open-Source-

Gut!!! Und ich fand meine Frage zu einfach für diese Seite !! Ich hatte noch keine Gelegenheit, einen der Vorschläge auszuprobieren, weil ich irgendwie meine Geoserver- und Postgres-Software kaputt gemacht habe ... :-( Wenn ich also meine Linux-Box auf 100% zurückbekomme, werde ich alle Vorschläge prüfen. Danke fürs Mitnehmen Die Zeit,
Chris

Antworten:


23

Mit QGIS können Sie Ihr Shapefile bearbeiten und neue Spalten und Werte hinzufügen. Öffnen Sie einfach das Shapefile, gehen Sie zu Eigenschaften> Attribute und fügen Sie neue Spalten hinzu.

In neueren Versionen von QGIS (2.x) heißt "Attribute" "Felder".


Ich habe nicht daran gedacht, QGIS zu verwenden, da es auf meiner Linux-Box (Copiapo) abstürzt, wenn ich auf "Python-Plugin holen" klicke. Weiß jemand, ob es eine Lösung dafür gibt? In der Zwischenzeit werde ich versuchen, die Attribute mit einer Windows-Version hinzuzufügen.
ChrisJ

Sie können versuchen, das Problem so zu debuggen, wie Richard es hier beschreibt: osgeo-org.1803224.n2.nabble.com/…
underdark

Mit QGIS können Sie neue Spalten hinzufügen, aber das Auffüllen der neuen Spalte mit Daten scheint ein Point-Click-Enter zu sein - wirklich ineffizient! Ich schlage vor, R wie in der Antwort von mdsummer unten zu verwenden.
Baha-Kev

@ baha-kev Warum sollte es nur ein Klick sein? Könnten Sie nicht einfach so etwas wie dieses Tutorial machen?
ocean800

1
In QGIS 3.2.1 befindet es sich im Dialogfenster im Ebenenkontextmenü> 'Eigenschaften ...'> Kategorie 'Quellfelder'.
und

23

Verwenden Sie Rmit dem foreignPaket, um die DBF-Datei zu ändern:

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")

Oder lesen Sie die Geometrie- und Attributdaten mit dem rgdalPaket (damit Sie auch die Beziehungen ändern und ein komplett neues Shapefile erstellen können):

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")  

4

Ich würde die Verwendung von OpenOffice - oder einer ähnlichen Anwendung - überhaupt nicht empfehlen! Darren Cope kommentierte die Frage " DBF-Erstellung und -Manipulation ohne Excel 2003 " wie folgt:

Es ist so, dass Shapefiles ziemlich verärgert sind, wenn Sie die .dbf in einem "externen" Programm bearbeiten


3
Dies muss nicht unbedingt zutreffen: Ich habe viele Shapefiles in OpenOffice und Excel ohne Probleme bearbeitet: Sie müssen nur die Einschränkungen des Formats kennen (Spaltennamenslängen, Datentypen usw.).
scw

@scw: Kannst du Links zu Informationen über die Formatbeschränkungen geben?
LarsH

2
Die spezifischen Einschränkungen hängen von der Verwendung des Formats durch die jeweilige Software ab. Die einfachsten Einschränkungen sind jedoch: 11-stellige Feldnamen, keine Sonderzeichen oder Leerzeichen in Feldnamen und die Einhaltung der Kerndatentypen von DBF-Dateien (keine esoterischen Dinge wie "Memo"). Felder). Weitere Informationen finden Sie in shapefile.py , der shapelib-DBF-API oder diesem Band auf xbase .
scw

4

Ich habe mehrere Shapefiles mit MS Access zusammengeführt. Ich musste einige Daten aus einem anderen Shapefile zusammenfügen und es funktionierte ganz gut. Auch das ging schnell. Allerdings hat wohl nicht jeder diese Software


1
Normalerweise verwende ich Access oder eine andere Form von SQL, um Daten zu manipulieren. Es scheint mir viel einfacher zu sein, ein paar Fragen zu stellen. Wie bereits erwähnt, müssen Sie nur die Änderung des tatsächlichen Datenbankformats beobachten. Dies ist etwas, das am besten in der tatsächlichen GIS-Software gehandhabt wird.
MaryBeth

2

Die Verwendung von QGIS ist nett und bietet eine solide Schnittstelle für die Interaktion mit dem DBF. Wenn Sie jedoch etwas programmgesteuert ausführen müssen oder nur Tools zum Überprüfen von Shapefiles benötigen, würde ich ein paar andere Tools erwähnen: Ich verwende häufig die Grundfunktionen von Shapelib zum Untersuchen von DBF-Dateien: Es kann Geometrien und Attribute hinzufügen, erstellen und ändern. Ich verwende es oft dbfdump myshape.dbf, um einen schnellen Überblick über die Attributwerte zu erhalten.

Eine andere Option, wenn Sie an der programmgesteuerten Steuerung eines DBF interessiert sind , ist dbfpy , eine Python-Bibliothek (eine Alternative zu den netten foreignErwähnungen in der Bibliothek mdsummer). Ein Beispielskript zum Hinzufügen einer Spalte:

import dbfpy

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

db.close()

2

Wie andy in dem Link erwähnt hat, auf den DARIAPRA Sie verwies, gibt es ein Excel 2007-ADD-IN, das Sie möglicherweise nützlich finden. Es ermöglicht Ihnen das Speichern im DBF-Format. Sie finden es auf dieser Website:

http://savedbf.blogspot.com/

(Da ich Excel 2003 habe, habe ich es noch nie ausprobiert, aber ich habe gehört, dass es nützlich ist.

Was die DBF-Manipulation außerhalb von ArcGIS betrifft, habe ich dies einige Male getan. Manchmal funktioniert es, manchmal nicht. Meine zwei Cent: Wenn Sie die äußere Manipulation vermeiden können, vermeiden Sie es. Wenn Sie mit einer nicht-englischen Sprache arbeiten, vermeiden Sie diese vollständig. Bei der Bearbeitung außerhalb von ArcGIS kann dies zu Problemen führen.


2

Alternative:

  1. Öffnen Sie die DBF in MS Excel 2007/10
  2. Nehmen Sie Ihre Änderungen vor (Hinzufügen von Spalten, Auffüllen von Daten usw.) und speichern Sie sie als xls / xlsx
  3. Navigieren Sie in ArcCatalog zur xls / xlsx-Position, klicken Sie mit der rechten Maustaste auf das Arbeitsblatt und wählen Sie "Exportieren"> "In dBase (einzeln)".
  4. Benennen Sie die Ausgabe-DBF-Datei nach Bedarf um


2

Normalerweise benutze ich R (überprüfen Sie die Antwort von mdsomners), aber ich würde nicht empfehlen, dies zu lernen, wenn dies das einzige ist, was Sie tun möchten. Ich denke, der beste Ansatz wäre, ein GIS-Programm zu verwenden, um die Felder zu erstellen und sie dann mit openoffice zu bearbeiten.

Noch wichtiger ist, dass Sie überlegen, ob Sie alle Felder der Attributtabelle direkt bearbeiten müssen oder ob Sie andere Tabellen damit verknüpfen können. Letzteres ist in den meisten GIS-Programmen möglich, zB SAGA GIS

http://www.saga-gis.org/saga_modules_doc/shapes_tools/index.html


Einverstanden. Jedes Mal, wenn ich Daten hinzufüge / ändere, frage ich mich, ob es einen einfacheren Weg gibt.
MaryBeth

1

Mit Open Office Calc können Sie DBF-Dateien lesen und schreiben. Die Lösung von Lcasagrande mit QGIS sollte jedoch sicherer sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.