Страница 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=, о чем написано в документации (по умолчанию там топографическая легенда). Причем растягивает легенду на весь диапазон ...