Страница 1 из 1

Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 12:02
Odd-Bird
Добрый день!

Буду благодарен за помощь с экспортом растровых файлов из R в *.kml. Я использую функцию KML из пакета raster. При этом не получается правильно задать цвета, чтобы они отображались так же, как на графиках в самой R. В качестве аргумента col я пробовал использовать слот растра @legend@colortable. При этом в KML-файле действительно применяются эти цвета, но соответствие цветов и значений ячеек растра другое, поэтому ничего понять нельзя. Кто-нибудь знает, как справиться с этой проблемой? Спасибо.

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 12:40
rhot
При обычном экспорте изображения нормальные цвета получаются?

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 12:49
Odd-Bird
При создании jpeg-файла из растра - да. Другие способы экспорта не пробовал.

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 13:04
rhot
Функция KML {raster} переписана с функций из пакета {maptools} и создаёт она PNG с KML. Попробуйте сделать экспорт PNG.

В учебнике [1] даётся пример экспорта PNG c KML с помощью kmlOverlay {maptools}.

--
[1] Bivand R. S., Pebesma E. J., Gómez-Rubio V. Applied spatial data analysis with R. – New York : Springer, 2008.

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 15:10
Odd-Bird
Да, png-файл тоже создается функцией KML, в нем с цветами та же проблема.

Функция kmlOverlay предназначена для экспорта объектов Spatial*, использовать ее для растров напрямую не получится. Если же воспользоваться стандартной функцией png(), то цвета отобразятся нормально, однако полученным файлом нельзя заменить тот, что создается KML - видимо, проекция другая. На GoogleMaps корректно не накладывается.

Вообще слот растра @legend@colortable содержит 256 значений, номера значений с 1 по 255 соответствуют значениям растра и используются функцией plot(). Почему они неправильно используются в параметр col() функции KML() - непонятно.

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 15:20
rhot
Может быть, сначала записать цвета в переменную, а эту переменную скормить функции KML {raster}?

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 15:22
Odd-Bird
Да, я так и пробовал - но соответствие между значениями растра и цветами получается неправильным.

Re: Цвета растра при экспорте в *.kml

Добавлено: 01 ноя 2014, 15:27
gamm
Odd-Bird писал(а):Да, я так и пробовал - но соответствие между значениями растра и цветами получается неправильным.
там же есть и исходники, и отладчик - кто мешает посмотреть, что реально происходит?

судя по всему, KML() при выводе этот слот не использует, а берет легенду, заданную параметров col=, о чем написано в документации (по умолчанию там топографическая легенда). Причем растягивает легенду на весь диапазон ...