Openlayersでシェープファイルを表示できますが、いくつかの属性データを追加する必要があります。
私はExcelでdbfファイルを開くことができますが、dbfとして更新されたファイルにExcelで保存オプションはありません。
シェープファイルに属性データを追加する最良の方法(または使用するソフトウェア)は何ですか?
Openlayersでシェープファイルを表示できますが、いくつかの属性データを追加する必要があります。
私はExcelでdbfファイルを開くことができますが、dbfとして更新されたファイルにExcelで保存オプションはありません。
シェープファイルに属性データを追加する最良の方法(または使用するソフトウェア)は何ですか?
回答:
QGISを使用すると、新しい列と値を追加してシェープファイルを編集できます。シェープファイルを開き、[プロパティ]> [属性]に移動して、新しい列を追加します。
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-または同様のアプリケーション-を使用することはまったくお勧めしません!Darlen Copeは、「Excel 2003を使用しないDBFの作成と操作」という質問に対する答えをコメントしています。
「外部」プログラムで.dbfを編集すると、シェープファイルがかなり混乱する
MS Accessを使用していくつかのシェープファイルをマージしました。他のシェープファイルの一部のデータを結合する必要があり、非常にうまく機能しました。また、迅速でした。しかし、誰もがこのソフトウェアを持っているとは限りません
QGISの使用は素晴らしく、DBFとやり取りするための強固なインターフェイスを提供しますが、プログラムで何かを行う必要がある場合や、シェープファイルを検査するためのツールが必要な場合は、他のいくつかのツールについて言及したいと思いました:DBFファイルを調べるためのshapelib:ジオメトリと属性の両方を追加、作成、および変更できdbfdump myshape.dbf
ます。属性値の概要をすばやく取得するためによく使用します。
あなたはDBFのプログラム制御に興味があるなら別のオプションはありdbfpy、Pythonライブラリ(素敵なのに代替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()
andyがリンクDARIAPRAであなたに言及したように、Excel 2007アドインが役に立つかもしれません-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