私はこの質問で尋ねられたのと同じことをしようとしています. Cartogram + choropleth map in Rですが、 SpatialPolygonsDataFrame から始めて、同じタイプのオブジェクトになることを望んでいます。
オブジェクトをシェープファイルとして保存し、scapetoadを使用して再度開き、元に戻すこともできますが、手順を完全に再現できるように、また数十のバリエーションを自動的にコーディングできるように、すべてを R 内に置きたいと思います。
私は github で Rcartogram コードをフォークし、これまでの努力をここに追加しました。
基本的に、このデモが行うことは、マップ上に SpatialGrid を作成し、グリッドの各ポイントで人口密度を検索し、これをcartogram()
が作業するために必要な形式の密度マトリックスに変換することです。ここまでは順調ですね。
しかし、の出力に基づいて元のマップ ポイントを補間する方法はcartogram()
?
ここには 2 つの問題があります。1 つ目は、マップとグリッドを同じ単位にして、補間を可能にすることです。2 つ目は、すべてのポリゴンのすべてのポイントにアクセスして補間し、それらをすべて正しい順序に保つことです。
グリッドはグリッド単位で、マップは投影単位です (例の longlat の場合)。グリッドを longlat に投影するか、マップをグリッド単位に投影する必要があります。spTransform()
私の考えでは、偽の CRS を作成し、これを の関数と一緒に使用します。これpackage(rgdal)
は、最小限の手間でオブジェクト内のすべてのポイントを処理するためです。
SpPDFオブジェクトにいくつかのレイヤーがあるため、すべてのポイントにアクセスすることは困難です。オブジェクト>ポリゴン>ポリゴン>ライン>座標だと思います。マップ全体の構造をそのまま維持しながら、これらにアクセスする方法はありますか?