1

私はRを使用して、下のレイヤーから始めて、以下のようないくつかのレイヤーを持つ家の間取り図を作成しています。

  • basemap:読みやすくするために最下層に配置したフロアプランのスキャンバージョン
  • bed:家には数十のベッドがあり、家のさまざまな部屋に散らばっていて、居住者の特性に基づいてさまざまな色があります
  • piechart:各ベッドには上部に円グラフがあります。ここでも、円グラフは居住者の他の特性に基づいて作成されます。一部のベッドには円グラフがあり、一部にはありません。

およびはbedpiechartベースマップに基づいて作成されたshpファイルに基づいて作成されました(つまり、Mapwindowを使用してベクターレイヤーを作成し、ベースマップをラスターレイヤーとしてインポートして下部に配置し、ベッドを1つずつ描画します。bedshpファイル次に、がRにインポートされ、ベッドポリゴンのセントロイドが計算され、そのセントロイドがピエチャートの配置に役立ちます)

以前はtoオブジェクトread.jpegをインポートしてから、新しい関数inを使用して、を最下部のマップレイヤーに配置しました。これは、レイヤーもに基づいて作成されるため、レイヤーはでレイヤーに完全にスーパーインポーズされます。basemapimagematrixannotation_rasterggplot2 0.9basemapbedbasemapbedbasemapggplot2

私は問題なくマップを作成できます-basemapが十分に小さい場合(3000 x 3000ピクセル)、今basemap8000+ x 3000+ピクセル(object.size241823624バイト)があります、shpファイルを作成しているときにRメモリの問題に気づいていませんでした、ggplotオブジェクトをコンパイルできます無効にしているが、オブジェクトannotation_rasterにを含めようとすると、RはxxxMBでメモリを割り当てることができると言い続けます。basemapggplot

jpgファイルをさらに圧縮しても寸法は変わらないので、これはjpgファイルの圧縮とは関係ないと思います。ただしbed、元のjpgファイルのサイズに基づいてレイヤーが作成されているため、jpgファイルのサイズを変更できません。

basemap誰かがjpegの次元を変更せずに、またはRのメモリ制限に対処するための他のトリックを使用せずに、のimagematrixのサイズを縮小するのを手伝うことができますか?ありがとう。

4

1 に答える 1

0

それを私が直した。

basemap最初に幅と高さを半分にした新しい画像ファイルを作成し、次にannotation_raster次のようにしました。

chart <- chart + annotation_raster(db$temp.basemap,
                                   xmin=0,
                                   xmax=basemap.xlength*2,  # I stretched the image in R
                                   ymin=0,
                                   ymax=basemap.ylength*2)  # I stretched the image in R

これで、マップをRのメモリ制限内でコンパイルできるようになりました。私が考えることができる欠点は、画質の低下ですが、8000 x 3000元々のように、それは耐えられます。

于 2012-04-06T18:15:59.553 に答える