2012-04-06 4 views
1

Я использую R, чтобы создать план этажа дома с несколькими слоями, как показано ниже, начиная с нижнего слоя:использованием ggplot в «annotation_raster» и достиг «потолка памяти» R в

  • basemap: отсканированная версия планировка, которую я положил его на нижнем слое, чтобы помочь читальном
  • bed: дома есть несколько десятков мест, разбросанных в разных комнатах дома, они имеют разные цвета, основанные на характеристиках жителей
  • piechart : у каждой кровати есть верхняя часть пикчарта, получить piecharts созданы на основе других наборов характеристик жителей, некоторые кровати имеют piecharts, некоторые нет.

bed и piechart были созданы на основе файла SHP создан на основе базовой карты (то есть я использую MapWindow Создать векторный слой, импортировать базовую карту в качестве растрового слоя и поместите его на дно, а затем сделать грядки один за другим. файл л.с слоя затем импортируются в R, медианы кровати полигонов рассчитываются и что центроид помогает расположить круговые диаграммы)

Я использовал read.jpeg импортировать basemap в imagematrix объекте в, а затем использовать новый annotation_raster функцию в ggplot2 0.9, чтобы положить basemap на нижний слой карты, так как bed слой создается на основе basemap также, слой bed накладывается на слой basemap отлично в ggplot2.

я могу создать карту без проблем - если basemap достаточно (3000 x 3000 пикселей) маленький, теперь у меня есть basemap из 8000+ x 3000+ пикселей (object.size 241823624 байт), я не в курсе вопроса памяти R, когда я создавал файл shp, объект ggplot может быть скомпилирован, если у меня отключен annotation_raster, но R продолжает говорить, что я могу выделить память с помощью xxxMB, когда я пытаюсь включить basemap в объект ggplot.

Я думаю, что это не связано с сжатием файлов jpg, поскольку размер не изменяется, даже я еще более сжимаю файл jpg. Но я не могу изменить размер файла jpg, так как мой слой bed создан на основе исходного размера файла jpg.

Может ли кто-нибудь помочь сжать размер imagematrix basemap, не изменяя размер jpeg или какие-либо другие трюки, чтобы справиться с ограничением памяти R? Благодарю.

+0

Я не знаю, как помочь, но я хочу знать, что это за проект ... –

ответ

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 

Теперь карта может быть собрана в памяти предела АиРа, недостаток я могу думать из-за снижения качества изображения, но это терпимо, так как первоначально было 8000 x 3000.

Смежные вопросы