shapefile에 속성 데이터를 추가 하시겠습니까?


33

openlayers에 shapefile을 표시 할 수 있지만 일부 속성 데이터를 추가해야합니다.

Excel에서 dbf 파일을 열 수는 있지만 업데이트 된 파일에 dbf로 Excel로 저장 옵션이 없습니다.

쉐이프 파일에 속성 데이터를 추가하는 가장 좋은 방법은 무엇입니까?


이전 버전의 Excel로 돌아 가기 : MS 는 최신 버전으로 .dbf 파일을 작성하는 기능을 제거 했습니다! :-(
whuber

4
Open office와 Quattro Pro는 dbf 파일을 편집하고 저장할 수 있습니다. 행을 삭제하거나 다른 곳으로 옮기지 마십시오. 그렇지 않으면 색인 파일이 일치하지 않습니다. 이러한 작업에 상용 또는 오픈 소스 gis를 사용하십시오. 셀 값을 편집해도 문제가 발생하지 않습니다.

잘!!! 그리고 나는 내 질문이이 사이트에 대해 너무 단순하다고 생각했다 !! 어떻게 든 지오 서버와 postgres 소프트웨어를 휴지통에 버렸기 때문에 어떤 제안도 시도 할 기회가 없었습니다 ... :-( 그래서 일단 리눅스 상자를 100 %로 되 돌리면 모든 제안을 확인하겠습니다. 응답 시간 chris
ChrisJ

답변:


23

QGIS 를 사용 하면 새 열과 값을 추가하여 shapefile을 편집 할 수 있습니다. shapefile을 열고 Properties> Attributes로 이동하여 새 열을 추가하십시오.

최신 버전의 QGIS (2.x)에서 '속성'은 '필드'라고합니다.


리눅스 박스에서 "파이썬 플러그인 가져 오기"를 클릭하면 (Copiapo) 크래시되기 때문에 QGIS 사용을 생각하지 않았습니다. 이것에 대한 해결책이 있는지 아는 사람이 있습니까? 그 동안 나는 미망인 버전으로 속성을 추가하려고합니다.
ChrisJ

당신은 문제를 리처드 여기에서 설명하는 방법을 디버깅을 시도 할 수 있습니다 : osgeo-org.1803224.n2.nabble.com/...
언더 다크

QGIS를 사용하면 새 열을 추가 할 수 있지만 데이터로 새 열을 채우는 것은 클릭 한 번으로 입력하는 것 같습니다. 아래 mdsummer의 답변과 같이 R을 사용하는 것이 좋습니다.
baha-kev

@ 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 또는 유사한 응용 프로그램을 사용하지 않는 것이 좋습니다! 대런 코프 (Darren Cope) 는 " Excel 2003없이 DBF 생성 및 조작 "이라는 질문에 대한 답변을 다음 과 같이 언급했습니다.

'외부'프로그램에서 .dbf를 편집하고 편집하면 shapefile이 상당히 화가납니다.


3
이것이 반드시 사실은 아닙니다 : OpenOffice 및 Excel에서 많은 모양 파일을 문제없이 편집했습니다. 형식의 제한 사항 (열 이름 길이, 데이터 유형 등) 만 알고 있으면됩니다.
scw

@ scw : 형식 제한에 대한 정보에 대한 링크를 제공 할 수 있습니까?
LarsH

2
특정 제약 조건은 특정 소프트웨어의 형식 사용에 따라 다르지만 가장 간단한 제한 사항은 11 개의 문자 필드 이름, 특수 문자 또는 필드 이름에 공백이없고 DBF 파일의 핵심 데이터 유형 ( 'memo'와 같은 난해한 것이 아님) 전지). 자세한 내용은 shapefile.py , shapelib DBF API 또는 xbase의이 주제를 참조하십시오 .
scw

4

MS Access를 사용하여 여러 shapefile을 병합했습니다. 다른 shapefile의 일부 데이터를 왼쪽으로 남겨야했고 꽤 잘 작동했습니다. 또한 빠르다. 그러나 모든 사람이이 소프트웨어를 가지고있는 것은 아니라고 생각합니다


1
일반적으로 Access 또는 다른 형식의 SQL을 사용하여 데이터를 조작합니다. 몇 가지 쿼리를 실행하는 것이 훨씬 쉬워 보입니다. 앞에서 언급했듯이 실제 데이터베이스 형식의 변화를 지켜봐야합니다. 실제 GIS 소프트웨어에서 가장 잘 처리되는 것입니다.
MaryBeth

2

QGIS 사용은 훌륭하고 DBF와의 상호 작용을위한 견고한 인터페이스를 제공하지만 프로그래밍 방식으로 무언가를 수행해야하거나 모양 파일을 검사하는 도구를 원한다면 몇 가지 다른 도구를 언급 할 것이라고 생각했습니다. DBF 파일을 검사하기위한 shapelib : 지오메트리와 속성을 모두 추가, 작성 및 수정할 수 있으며, 종종 dbfdump myshape.dbf속성 값에 대한 빠른 개요를 얻는 데 사용 합니다.

당신이 DBF의 프로그램 제어에 관심이 있다면 또 다른 옵션은 dbfpy , 파이썬 라이브러리 (AN은 좋은의 대안 foreign라이브러리 mdsummer 언급). 열 추가를위한 예제 스크립트 :

import dbfpy

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

db.close()

2

andri가 DARIAPRA가 참조한 링크에서 지적했듯이, 유용한 Excel 2007 ADD-IN이 있습니다-dbf 형식으로 저장할 수 있습니다.이 웹 사이트에서 찾을 수 있습니다.

http://savedbf.blogspot.com/

(Excel 2003을 사용하면서 시도한 적이 없지만 유용하다고 들었습니다.

ArcGIS 외부의 DBF 조작에 대해서는 몇 번 수행했습니다. 때로는 작동하지만 때로는 작동하지 않습니다. 나의 2 센트 : 외부 조작을 피할 수 있다면 피하십시오. 영어 이외의 언어를 다룰 때는 모두 피하십시오-ArcGIS 외부에서 편집 할 때 모든 언어가 혼란스러워지는 경향이 있습니다).


2

또는

  1. MS Excel 2007/10에서 dbf를여십시오
  2. 변경 (열 추가, 데이터 채우기 등)을 수행하고 xls / xlsx로 저장하십시오.
  3. ArcCatalog에서 xls / xlsx 위치로 이동하여 워크 시트를 마우스 오른쪽 버튼으로 클릭하고 내보내기> dBase로 (단일)을 선택합니다.
  4. 필요에 따라 출력 dbf 파일의 이름을 바꾸십시오.


2

나는 보통 R (mdsomners 답변 확인)을 사용하지만 그것이 유일한 방법이라면 배우기를 권장하지 않습니다. 가장 좋은 방법은 GIS 프로그램을 사용하여 필드를 만든 다음 openoffice를 사용하여 편집 해 보는 것입니다.

더 중요한 것은 속성 테이블을 직접 모든 필드를 편집해야하는지 또는 다른 테이블을 조인 할 수 있는지 생각해야합니다. 후자는 SAGA GIS와 같은 대부분의 GIS 프로그램에서 수행 될 수 있습니다.

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


동의했다. 데이터를 추가 / 변경할 때마다 더 쉬운 방법이 있는지 궁금합니다.
MaryBeth

1

Open Office Calc를 사용하면 dbf 파일을 읽고 쓸 수 있습니다. 그러나 QGIS를 사용하는 Lcasagrande의 솔루션이 더 안전해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.