2016-11-24 9 views
1

rgdalreadOGR関数を使用して、イングランドのCCG境界のKMLマップ(Available here, 200Kb)をRにインポートしようとしています。私の最終目標は、関連する価値に応じてCCGを着色してヒートマップを作成することです。 1つのデータフレーム内のCCG名の横にある値を持つリストがあります。そのデータフレームのCCG名をインポートしたマップオブジェクトのCCG名と照合し、その値に基づいて色を割り当てる必要があります。ただし、マップオブジェクトにインポートされたCCG名はKMLファイルには表示されませんが、CCG名は表示されません。これは私がやっていることです:readOGR(rgdal)がXMLからポリゴン名をフェッチできない

library(sp) 
library(rgdal) 
library(maps) 
library(maptools) 

KMLファイルが作業ディレクトリにあるとします。 層リスト:OGRGeoJSON層読書

ogrListLayers("Clinical_Commissioning_Groups_April_2016_Ultra_Generalised_Clipped_Boundaries_in_England.KML") 

ccg_boundaries <- ReadOGR("Clinical_Commissioning_Groups_April_2016_Ultra_Generalised_Clipped_Boundaries_in_England.KML","OGRGeoJSON") 

Rスタジオは、2つのセクション(?右の単語)がオブジェクト内に存在示します。

polygons(各ポリゴンのデータを含む)。

> [email protected][1] 
[[1]] 
An object of class "Polygons" 
Slot "Polygons": 
[[1]] 
An object of class "Polygon" 
Slot "labpt": 
[1] -2.104671 54.040320 
Slot "area": 
[1] 0.168067 
... 

そしてdata、私はCCGの名前が含まれていることを期待する二つの変数(NameDescription)と、それが空である:

> [email protected] 
    Name Description 
0     
1     
2     
3     
4     
5   

しかし、CCGの名前は最初のもののためにKMLファイルには、Wordエディタで開くと表示されます。アルファベット順の最初の文字は "NHS Airedale、Wharfedale and Craven"です。

<PolyStyle><fill>0</fill></PolyStyle></Style> 
    <ExtendedData><SchemaData schemaUrl="#OGRGeoJSON"> 
     <SimpleData name="objectid">1</SimpleData> 
     <SimpleData name="ccg16cd">E38000001</SimpleData> 
     <SimpleData name="ccg16nm">NHS Airedale, Wharfedale and Craven CCG</SimpleData> 

オブジェクトを抽出してオブジェクトに含めるには、LOGRなどのオプションを読み取るオプションがありますか?

答えて

1

誰かが同じ問題に遭遇した場合、ここで私が見つけた解決策があります。

ウェブサイトは、KML and SHPという2つの形式のマップを提供しています。私はKMLを選択しました。これは、私が従っていた実例で使用されていたからです。しかし、この特定のKMLファイルやその生成方法に問題があるようです。代わりにシェイプファイル(SHP)で手続きを試みましたが、それは魅力的でした。

シェープファイルは、同じ機能によってRに読み込むことができますが、レイヤを指定する必要はありません。

ccg_boundaries <- ReadOGR("Clinical_Commissioning_Groups_April_2016_Ultra_Generalised_Clipped_Boundaries_in_England.SHP") 

CCG名はccg16nm変数に今あります

> head([email protected]) 
    objectid ccg16cd         ccg16nm st_areasha st_lengths 
0  1 E38000001 NHS Airedale, Wharfedale and Craven CCG 1224636590 193149.74 
1  2 E38000002       NHS Ashford CCG 582174805 122841.19 
2  3 E38000003     NHS Aylesbury Vale CCG 984352696 229544.11 
3  4 E38000004   NHS Barking and Dagenham CCG 36315011 31196.87 
4  5 E38000005       NHS Barnet CCG 86654018 41833.69 
5  6 E38000006      NHS Barnsley CCG 327520495 106476.52 
関連する問題