Додавання даних атрибутів до файлу shape?


33

Я можу відобразити файл форм у відкритих шарах, але мені потрібно додати деякі дані атрибутів.

Я можу відкрити файл dbf у excel, але немає жодної опції збереження як excel до оновленого файлу як dbf.

Який найкращий спосіб (або програмне забезпечення) для додавання даних атрибутів до мого формату?


Поверніться до більш ранньої версії Excel: MS видалила можливість писати .dbf файли з останньою версією! :-(
whuber

4
Відкритий офіс і Quattro Pro можуть редагувати та зберігати файли dbf, просто не видаляйте рядки та не переміщуйте речі, інакше файл індексу не дозволить речам збігатися. Використовуйте комерційний або відкритий код для цих завдань, редагування значень комірок не повинно викликати проблем

Добре!!! І я подумав, що моє питання занадто просте для цього сайту !! У мене не було можливості спробувати будь-яку пропозицію, тому що я якось пошкодив програмне забезпечення для геосервера та постгрес ... :-( Отже, як тільки я поверну свою скриньку linux на 100%, я отримаю ознайомлення з усіма пропозиціями. Дякую, що взяв час відповісти chris
ChrisJ

Відповіді:


23

За допомогою QGIS ви можете редагувати файл форми, додаючи нові стовпці та значення. Просто відкрийте файл форми, перейдіть до Властивості> Атрибути та додайте нові стовпці.

У нових версіях QGIS (2.x) "Атрибути" називають "Поля"


Я не думав використовувати QGIS, тому що в моєму вікні Linux він (Copiapo) виходить з ладу, коли натискаю на "Вибрати плагін python". Хтось знає, чи є для цього виправлення? Тим часом я спробую додати атрибути у версії для вдів.
ChrisJ

Ви можете спробувати налагодити проблему так, як описано тут Річардом: osgeo-org.1803224.n2.nabble.com/…
underdark

QGIS дозволяє додавати нові стовпці, але заповнення нового стовпця даними, схоже, є натисканням кнопки-введення - дійсно неефективно! Я пропоную використовувати R, як описано нижче у відповіді нижче.
баха-кев

@ baha-kev Чому це було б просто натиснути-ввести? Чи не могли ви просто зробити щось подібне до цього підручника?
ocean800

1
У QGIS 3.2.1 він розташований у контекстному меню шару> "Властивості ..."> Категорія "Поля джерела" у діалоговому вікні.
andw

23

Використовуйте Rразом з foreignпакетом для зміни файлу 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")

Або прочитайте дані з геометрії та атрибутів у rgdalпакеті (щоб ви могли також змінювати взаємозв'язки та створювати абсолютно новий профіль форми):

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

Я б не рекомендував взагалі використовувати OpenOffice - або подібний додаток! Даррен Коуп, коментуючи відповідь на питання " Створення та маніпулювання DBF без чудового рівня 2003 ", сказав:

це те, що shapefiles дуже засмучується, якщо ви переходите та редагуєте .dbf у програмі "зовні"


3
це не обов'язково вірно: я без проблем редагував багато файлів форм у OpenOffice та Excel: вам просто потрібно знати про обмеження формату (довжина імен стовпців, типи даних тощо).
scw

@scw: чи можете ви надати будь-які посилання на інформацію про обмеження формату?
LarsH

2
Конкретні обмеження залежать від використання формату певного програмного забезпечення, але найпростішими обмеженнями є: 11 імен полів символів, відсутність спеціальних символів або пробілів у іменах полів та дотримуйтесь основних типів даних файлів DBF (не езотеричних речей, таких як "пам'ятка" поля). Докладніше див. Shapefile.py , API DBF shapelib або цей файл на xbase .
scw

4

Я об'єднав кілька файлів форм за допомогою MS Access. Мені потрібно було приєднатися до деяких даних з іншого формфайлу, і це спрацювало досить добре. Також це було швидко. Однак я думаю, не всі мають це програмне забезпечення


1
Зазвичай я використовую або Access, або іншу форму SQL для маніпулювання даними. Просто мені здається набагато простіше запустити кілька запитів. Як згадувалося раніше, вам просто потрібно спостерігати за зміною фактичного формату бази даних, це найкраще оброблятись у фактичному програмному забезпеченні ГІС.
MaryBeth

2

Використання QGIS є приємним і забезпечує надійний інтерфейс для взаємодії з DBF, але якщо вам потрібно зробити щось програмно або просто потрібні інструменти для перевірки форм-файлів, я подумав, що я згадаю кілька інших інструментів: я часто використовую основні функції shapelib для вивчення файлів DBF: він може додавати, створювати та змінювати як геометрії, так і атрибути, я часто використовую dbfdump myshape.dbfдля швидкого огляду значень атрибутів.

Ще один варіант, якщо вас цікавить програмне управління DBF, - це dbfpy , бібліотека пітонів (альтернатива foreignзгадуваній файловій бібліотеці приємної бібліотеки). Приклад сценарію для додавання стовпця:

import dbfpy

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

db.close()

2

як Енді зазначав у посиланні, на яке посилався DARIAPRA, є додаток Excel 2007, яке може бути корисним - воно дозволяє зберігати у форматі dbf. Ви можете знайти його на цьому веб-сайті:

http://savedbf.blogspot.com/

(Як я маю Excel 2003, я ніколи не пробував цього, але чув, що це було корисно.

Щодо маніпуляцій з DBF поза ArcGIS - я це робив кілька разів. Іноді це працює, іноді - ні. Мої два центи: Якщо ви можете уникнути зовнішньої маніпуляції, уникайте цього. Якщо ви маєте справу з неанглійською мовою, уникайте цього взагалі - Це, як правило, все збивається під час редагування за межами ArcGIS).


2

Як варіант:

  1. відкрити dbf в MS Excel 2007/10
  2. Внесіть зміни (додавання стовпців, заповнення даних тощо) та збережіть як xls / xlsx
  3. Перейдіть до місця розташування xls / xlsx в ArcCatalog, клацніть правою кнопкою миші робочий аркуш і виберіть Експорт> До dBase (один)
  4. Перейменуйте вихідний dbf-файл за потребою

2

uDig має чудовий інструмент під назвою переформатування, за допомогою якого ви можете, наприклад, додавати атрибути до таблиці: http://udig.github.io/docs/user/reference/Transform%20operation.html

Підтримувані функції - це функції загальної мови запитів: http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html


2

Зазвичай я використовую R (перевірити відповідь mdsomners), але я б не рекомендував вчитися, якщо це єдине, що ти хочеш зробити. Я думаю, що найкращим підходом було б використання програми GIS, створення полів, а потім спробувати їх редагувати за допомогою openoffice.

Що ще важливіше, ви повинні подумати, чи потрібно вам редагувати всі поля таблиці атрибутів безпосередньо, чи ви можете приєднати до неї інші таблиці. Останнє можна зробити в більшості програм ГІС, наприклад, SAGA GIS

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


Домовились. Кожен раз, коли я додаю / змінюю дані, я цікавлюсь, чи існує простіший спосіб.
MaryBeth

1

Open Office Calc дозволяє читати та записувати файли dbf. Але рішення Lcasagrande із використанням QGIS повинно бути безпечнішим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.