Buat raster dengan informasi georeferensi di R

9

Mengacu pada pertanyaan saya sebelumnya , bagaimana cara "geocode" / convert - menggunakan R - gambar raster yang dihasilkan ke format yang dapat ditampilkan sebagai layer pada peta? Singkatnya, saya bertujuan untuk menciptakan kembali hasil dari perangkat lunak SpatialKey ( tangkapan layar ) komersial .

Saya menggunakan contoh GeoServer untuk meng-host data untuk peta, tetapi bagaimana saya bisa memasukkan proyeksi yang diperlukan dan mengoordinasikan info ke dalam gambar sehingga akan menyelaraskan dengan benar dengan posisi geografis yang sebenarnya. Peta panas kerapatan diproduksi menggunakan data spasial.

Mimo
sumber
Karena ini hanya pertanyaan pemrograman, ini tidak benar-benar pada topik. Sudahkah Anda melihat informasi paket spatstat dan kursus singkat pdf untuk melihat apakah itu tercakup di sana? Saya yakin ini telah muncul sebelumnya, dan pencarian google cepat memunculkan jawaban R-bantuan yang relevan ini . Saya tidak akan terkejut jika ada lebih banyak solusi langsung dengan beberapa pencarian lagi.
Andy W
Bagaimana Anda membuat gambar raster yang dihasilkan? Apakah itu berasal dari aplikasi lain, atau dibuat di dalam R?
Simbamangu
Ini dihasilkan dalam R menggunakan fungsi image ().
Mimo
x memiliki resolusi horizontal dan vertikal yang tidak merata. Data tersebut tidak dapat disimpan dalam format arc-ascii My x memiliki dimensi 4684, 1950, ia mengeluh tentang resolusi. Saya membuatnya sama. Buggy

Jawaban:

15

Paket raster memungkinkan Anda membuat raster sewenang-wenang (ukuran, proyeksi) atau menggunakan objek yang ada, seperti matriks; Anda kemudian dapat menetapkan proyeksi & luasan. image()Fungsi Anda mengambil argumen matriks yang dapat digunakan secara langsung:

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)

Anda kemudian dapat menggunakan writeRaster()sejumlah format, mis

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

Ada beberapa cara berbeda, tetapi mengambil tikaman bahwa Anda ingin menggunakan alat open-source pada Windows saya dapat menyarankan 3 opsi:

  1. Gunakan alat gdal_translate di GDAL (pustaka manipulasi geo-raster open-source). Anda mungkin memerlukan -gcp pixel line easting northing elevationparameter di mana piksel dan garis x / y pada raster ( http://www.gdal.org/gdal_datamodel.html ) dan mengarahkan / mengarahkan koordinat geografi ke arah timur / utara. Anda juga harus menentukan proyeksi dengan-a_srs srs_def
  2. Gunakan r binding untuk GDAL dan lakukan hal yang sama
  3. Cara "GUI" yang lebih mudah adalah dengan mengikuti tutorial ini dan menggunakan QGIS dengan GDAL. Kerugian dari ini adalah Anda harus menyiapkan QGIS dan GDAL jika Anda belum melakukannya.

Saya akan melihat dengan seksama dependensi dari setiap bit perangkat lunak yang Anda butuhkan sebelum turun ke rute mana pun yang Anda pilih.

Stev_k
sumber