Створіть растр з інформацією про геореференцію в R


9

Посилаючись на моє попереднє запитання , як я "геокодувати" / конвертувати - використовуючи R - згенероване растрове зображення у формат, який може бути показаний у вигляді шару на карті? Коротше кажучи, я прагну відтворити результати комерційного програмного забезпечення SpatialKey ( скріншот ).

Я використовую примірник GeoServer для розміщення даних для карт, але як я можу включити необхідну проекцію та координувати інформацію у зображення, щоб вона правильно вирівнювалась зі своїм справжнім географічним положенням. Теплова карта щільності вироблялася за допомогою просторових даних.


Оскільки це виключно програмне питання, це насправді не є темою. Ви подивилися інформацію про пакет шпатла та короткий PDF-файл курсу, щоб побачити, чи він там охоплений? Я впевнений, що це вже було раніше, і швидкий пошук в Google знайде цю відповідну відповідь на допомогу . Я не був би здивований, якщо існують більш прямі рішення, а також ще кілька пошукових запитів.
Енді Ш

Як ви створили створене растрове зображення? Це надходить з іншої програми або зроблено в межах R?
Simbamangu

Він генерується в межах R за допомогою функції image ().
Мімо

x має неоднакові горизонтальні та вертикальні дозволи. Такі дані не можуть зберігатися у форматі arc-ascii My x має розмір 4684, 1950, він скаржиться на дозвіл. Я зробив це те саме, хоча. Buggy

Відповіді:


15

Растровий пакет дозволяє створювати довільні растри (розмір, проекція) або використовувати наявні об'єкти, як матриці; Ви можете призначити проекції та розширення. Ваша image()функція бере аргумент матриці, який можна використовувати безпосередньо:

library(raster)    
## Create a matrix with random data & use image()
xy <- matrix(rnorm(400),20,20)
image(xy)

# Turn the matrix into a raster
rast <- raster(xy)
# Give it lat/lon coords for 36-37°E, 3-2°S
extent(rast) <- c(36,37,-3,-2)
# ... and assign a projection
projection(rast) <- CRS("+proj=longlat +datum=WGS84")
plot(rast)

Потім ви можете використовувати writeRaster()з будь-якою кількістю форматів, наприклад

writeRaster(rast, "~/myraster.asc", format = "ascii")

2

Існує декілька різних способів, але, застосувавши забій, який потрібно використовувати інструменти з відкритим кодом у Windows, я можу запропонувати 3 варіанти:

  1. Використовуйте інструмент gdal_translate в GDAL (бібліотека маніпуляцій з георастром з відкритим кодом). Вам, напевно, потрібен -gcp pixel line easting northing elevationпараметр, де піксель і лінія є х / у на растрі ( http://www.gdal.org/gdal_datamodel.html ) та схід / встановлення географічних координат. Також вам доведеться вказати проекцію за допомогою-a_srs srs_def
  2. Використовуйте прив’язки r до GDAL і робіть те ж саме
  3. Простішим способом "GUI" може бути виконання цього уроку та використання QGIS з GDAL. Недоліком цього є те, що ви повинні налаштувати QGIS і GDAL, якщо цього ще не зробили.

Я б уважно переглянув залежність кожного біта програмного забезпечення, яке вам потрібно, перш ніж спускатись із того маршруту, який ви вибрали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.