2012-04-13 55 views
3

愚かな質問かもしれませんが、これを行う経験はあまりありません。私はRで輪郭を作成するためにポリゴンから座標を取得する必要があります。それは約1000ポイントの複雑な多角形であるので、手動で座標を入力することは狂っています。また、私は輪郭の中のいくつかのオブジェクトのxy位置を抽出する必要があります。 IllustratorとInkscapeを使ってすべての情報を含むsvgファイルを作成しようとしました。 svgファイルにすべての情報が含まれていることを考慮すると、良いオプションのように見えます。パスまたはポリゴンの節点から座標を抽出する方法はありますか?またはこのプロセスを実行する他の簡単な方法がありますか? 私は約30枚の画像のためにそれをやらなければならないので、本当に助けに感謝します。 乾杯svgファイルからパスの座標を取得する方法R

+0

サンプルファイルへのリンクまたは再作成する方法では、これを非常に簡単に答えることができます。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

申し訳ありませんがsvgファイルを与えるために、私はそれの一部をコピー: –

+0

私は知らないどのようにファイルを添付するには、多くのポイントがあります。これは単なる例であり、ポリゴンから座標を取得し、次にテキストから座標を取得する必要があります。 –

答えて

6

XMLパッケージを使用して座標を抽出することができます。

# Sample data 
library(RCurl) 
url <- "http://upload.wikimedia.org/wikibooks/en/a/a8/XML_example_polygon.svg" 
svg <- getURL(url) 

# Parse the file 
library(XML) 
doc <- htmlParse(svg) 

# Extract the coordinates, as strings 
p <- xpathSApply(doc, "//polygon", xmlGetAttr, "points") 

# Convert them to numbers 
p <- lapply(strsplit(p, " "), function(u) 
    matrix(as.numeric(unlist(strsplit(u, ","))),ncol=2,byrow=TRUE)) 
p 

ただし、これはポリゴンに適用される変換をすべて無視します。

+0

ありがとう、私はXMLパッケージを使用してそれをやろうとしたが、htmlParseを使用しなかったので、問題だと思う。 –

関連する問題