openlayers에 shapefile을 표시 할 수 있지만 일부 속성 데이터를 추가해야합니다.
Excel에서 dbf 파일을 열 수는 있지만 업데이트 된 파일에 dbf로 Excel로 저장 옵션이 없습니다.
쉐이프 파일에 속성 데이터를 추가하는 가장 좋은 방법은 무엇입니까?
openlayers에 shapefile을 표시 할 수 있지만 일부 속성 데이터를 추가해야합니다.
Excel에서 dbf 파일을 열 수는 있지만 업데이트 된 파일에 dbf로 Excel로 저장 옵션이 없습니다.
쉐이프 파일에 속성 데이터를 추가하는 가장 좋은 방법은 무엇입니까?
답변:
QGIS 를 사용 하면 새 열과 값을 추가하여 shapefile을 편집 할 수 있습니다. shapefile을 열고 Properties> Attributes로 이동하여 새 열을 추가하십시오.
최신 버전의 QGIS (2.x)에서 '속성'은 '필드'라고합니다.
패키지 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")
OpenOffice 또는 유사한 응용 프로그램을 사용하지 않는 것이 좋습니다! 대런 코프 (Darren Cope) 는 " Excel 2003없이 DBF 생성 및 조작 "이라는 질문에 대한 답변을 다음 과 같이 언급했습니다.
'외부'프로그램에서 .dbf를 편집하고 편집하면 shapefile이 상당히 화가납니다.
MS Access를 사용하여 여러 shapefile을 병합했습니다. 다른 shapefile의 일부 데이터를 왼쪽으로 남겨야했고 꽤 잘 작동했습니다. 또한 빠르다. 그러나 모든 사람이이 소프트웨어를 가지고있는 것은 아니라고 생각합니다
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()
andri가 DARIAPRA가 참조한 링크에서 지적했듯이, 유용한 Excel 2007 ADD-IN이 있습니다-dbf 형식으로 저장할 수 있습니다.이 웹 사이트에서 찾을 수 있습니다.
(Excel 2003을 사용하면서 시도한 적이 없지만 유용하다고 들었습니다.
ArcGIS 외부의 DBF 조작에 대해서는 몇 번 수행했습니다. 때로는 작동하지만 때로는 작동하지 않습니다. 나의 2 센트 : 외부 조작을 피할 수 있다면 피하십시오. 영어 이외의 언어를 다룰 때는 모두 피하십시오-ArcGIS 외부에서 편집 할 때 모든 언어가 혼란스러워지는 경향이 있습니다).
uDig에는 reshape라는 멋진 도구가 있습니다. 예를 들어 테이블에 속성을 추가 할 수 있습니다. http://udig.github.io/docs/user/reference/Transform%20operation.html
지원되는 기능은 일반적인 쿼리 언어의 기능입니다. http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
나는 보통 R (mdsomners 답변 확인)을 사용하지만 그것이 유일한 방법이라면 배우기를 권장하지 않습니다. 가장 좋은 방법은 GIS 프로그램을 사용하여 필드를 만든 다음 openoffice를 사용하여 편집 해 보는 것입니다.
더 중요한 것은 속성 테이블을 직접 모든 필드를 편집해야하는지 또는 다른 테이블을 조인 할 수 있는지 생각해야합니다. 후자는 SAGA GIS와 같은 대부분의 GIS 프로그램에서 수행 될 수 있습니다.
http://www.saga-gis.org/saga_modules_doc/shapes_tools/index.html