Работа с растровыми данными в R

Обсуждение материалов сайта: вопросы, замечания, предложения
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Работа с растровыми данными в R

Сообщение Максим Дубинин » 06 ноя 2007, 05:58

Обсуждение статьи "Работа с растровыми данными в R"

http://gis-lab.info/qa/rgdal.html

Обновление:
11.03.2009 кучка мелких исправлений по коду
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Re: Дерево решений (Decision Tree) в R

Сообщение Анна » 01 мар 2009, 23:13

вопрос по вот этой части кода:

Код: Выделить всё

tif_driver = new("GDALDriver", "GTiff")
tif2 = new("GDALTransientDataset", tif_driver, height, width, 1, 'Int8')
resmtx = matrix(B,width,height)
bnd1 = putRasterData(tif2, resmtx)
tif_file = "path_to_file\\classification.tif"
saveDataset(tif2, tif_file)
Для чего создается bnd1 если он нигде потом не используется?
далее, если результат в resmtx имеет вид

Код: Выделить всё

 num [1:2205, 1:889] 0 0 0 0 1 0 1 1 1 1 ...
(то есть верный по логике вид) - а вот растр выходной - без значений получается, где может быть ошибка?
ну и последнее - выходной растр получается без привязки, верно?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 11 мар 2009, 22:43

bnd1 это указатель, если посмотреть его содержимое после операции

Код: Выделить всё

bnd1 = putRasterData(tif2, resmtx)
bnd1
то он выдаст что-то типа:
An object of class “GDALRasterBand”
Slot "handle":
<pointer: 0x00035bc0>
можно обойтись и без него:
putRasterData(tif2, resmtx)
По поводу проблем с выводом, попробуй Int8 на Byte заменить, ошибка в коде, такого типа как Int8 просто не существует.
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Анна » 12 мар 2009, 12:13

вот, отлично, теперь все получилось:) спасибо. действительно с байт все сработало.
но главное почему я видела "черный квадрат" потому что я его смотрела в AV3 как image тему, а когда загрузила как Image analysis тему все проявилось:). только вот если использовать для записи в тиф какие-то производные результаты обработки растра, то данные получаются без привязки ...
можно ли как-то скопировать информацию о привязки из header'а одного тиф-файла и записать в header нового файла? приходит в голову сохранять растр в формат грид - там как получить информацию в header понятно бм, а вот как быть с тифом?
либо еще приходит в голову записать информацию от известного растра в tfw и переназвать...
но может можно как-нибудь хидер копировать?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 12 мар 2009, 19:21

я просто копировал из исходного файла
наверняка есть поумнее способ, быстрый поиск дает вот такое

Код: Выделить всё

 dx <- copyDataset(x, driver="JPEG", options="WORLDFILE=YES")
saveDataset(dx, tf1, options="WORLDFILE=YES")
разберешься как именно с этим работать, поделись, тоже буду пользоваться
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 12 апр 2009, 22:39

вот такое решение есть, более простое, создать world-файл, но разумеется без прописывания всех тэгов геотиф:
после чтения растра

Код: Выделить всё

test <- "D:\\Programming\\R\\raster-open-save-georef\\s_2000.tif"
pixsize = as.numeric(GDALinfo(test)[6])
originx = as.numeric(GDALinfo(test)[4])
originy = as.numeric(GDALinfo(test)[5])
tfwinfo = rbind(pixsize,0,0,-1*pixsize,originx,originy)
после записи растра

Код: Выделить всё

tif_file = "D:\\Programming\\R\\raster-open-save-georef\\output.tif"
tfw_file = tif_file 
substr(tfw_file, nchar(tfw_file)-2, nchar(tfw_file)) <- "tfw"
write(tfwinfo,tfw_file,sep="\n")
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Анна » 06 май 2009, 18:42

а еще такой вопрос по работе с растрами в R - как можно сделать многоканальный растр из нескольких каналов?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 06 май 2009, 18:47

добавил к статье и про то как делать многоканальные растры и про сохранение привязки, описанное выше
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение SS_Rebelious » 23 июн 2012, 18:30

У меня почему-то получается открыть файл только с помощью "file.choose()", а system.file выдаёт такую ошибку:

Код: Выделить всё

Error in system.file("/my_path/my_file.tif", mustWork = TRUE) : 
  no file found
В чём может быть проблема?
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 23 июн 2012, 23:11

так system.file() в системных файлах ищет, то бишь пакетах R, зачем там свои данных хранить?

просто полный путь вместо "file.choose()" и все
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение SS_Rebelious » 24 июн 2012, 13:56

простой путь пробовал в самом начале- приводит к вылету
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Максим Дубинин » 24 июн 2012, 14:00

к вылету чего?

не вижу как file.choose() может работать и одновременно простое указание пути не работает.
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Anton_Kh
Участник
Сообщения: 61
Зарегистрирован: 13 мар 2012, 18:10
Репутация: 37
Откуда: Харьков
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Anton_Kh » 15 окт 2014, 08:45

Доброго времени суток!

При установке rgdal следующие проблемы:

Код: Выделить всё

> install.packages("rgdal")
Installing package into ‘/home/narwhale/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
пробую URL 'http://cran.gis-lab.info/src/contrib/rgdal_0.9-1.tar.gz'
Content type 'application/x-gzip' length 1624496 bytes (1.5 Mb)
открытие URL
==================================================
downloaded 1.5 Mb

* installing *source* package ‘rgdal’ ...
** пакет ‘rgdal’ удачно распакован, MD5 sums проверены
configure: CC: gcc -std=gnu99
configure: CXX: g++
configure: rgdal: 0.9-1
checking for /usr/bin/svnversion... no
configure: svn revision: 518
configure: gdal-config: gdal-config
checking gdal-config usability... 
./configure: line 2119: gdal-config: command not found
no
Error: gdal-config not found
The gdal-config script distributed with GDAL could not be found.
If you have not installed the GDAL libraries, you can
download the source from  http://www.gdal.org/
If you have installed the GDAL libraries, then make sure that
gdal-config is in your path. Try typing gdal-config at a
shell prompt and see if it runs. If not, use:
 --configure-args='--with-gdal-config=/usr/local/bin/gdal-config'
with appropriate values for your installation.

ERROR: configuration failed for package ‘rgdal’
* removing ‘/home/narwhale/R/x86_64-pc-linux-gnu-library/3.0/rgdal’
Warning in install.packages :
  installation of package ‘rgdal’ had non-zero exit status

The downloaded source packages are in
	‘/tmp/RtmpHzIiaw/downloaded_packages’
ОС Xubuntu 14.04
x86_64
R version 3.0.2 (2013-09-25)

Ставил из RStudio Version 0.98.953

Как решить такую проблему установки?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Работа с растровыми данными в R

Сообщение rhot » 15 окт 2014, 17:05

там же всё написано
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Anton_Kh
Участник
Сообщения: 61
Зарегистрирован: 13 мар 2012, 18:10
Репутация: 37
Откуда: Харьков
Контактная информация:

Re: Работа с растровыми данными в R

Сообщение Anton_Kh » 16 окт 2014, 01:12

rhot писал(а):там же всё написано
Да, действительно :)
Проблема решилась предварительной установкой libgdal-dev

Ответить

Вернуться в «Материалы сайта»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 23 гостя