R'de coğrafi referanslı bilgiler içeren bir tarama oluşturun


9

Benim daha önceki değinen soruya kullanarak R - -, nasıl / dönüştürme "coğrafi kod" do harita üzerinde bir katman olarak gösterilebilir bir biçime oluşturulmuş bir raster görüntü? Kısacası, ticari SpatialKey ( ekran görüntüsü ) yazılımının sonuçlarını yeniden oluşturmayı hedefliyorum .

Haritalar için verileri barındırmak için bir GeoServer örneği kullanıyorum, ancak gerekli projeksiyon ve koordinat bilgilerini gerçek coğrafi konumuyla doğru hizalanacak şekilde görüntüye nasıl dahil edebilirim. Yoğunluk ısı haritası, uzamsal veriler kullanılarak üretildi.


Bu sadece bir programlama sorusu olduğundan, bu aslında konu ile ilgili değildir. Spatstat paket bilgilerine ve orada ele alınıp alınmadığını görmek için kısa kurs pdf'e baktınız mı? Bunun daha önce geldiğinden eminim ve hızlı bir google araması bu ilgili R-yardım yanıtını getiriyor . Biraz daha araştırmayla birlikte daha doğrudan çözümler varsa şaşırmazdım.
Andy W

Oluşturulan tarama görüntüsünü nasıl yaptınız? Başka bir uygulamadan mı geliyor, yoksa R içinde mi yapılmış?
Simbamangu

R (içinde) image () işlevi kullanılarak oluşturulur.
Mimo

x eşit olmayan yatay ve dikey çözünürlüklere sahiptir. Bu tür veriler arc-ascii formatında saklanamaz My x'in 4684, 1950 boyutu vardır, çözünürlükten şikayet eder. Ben de aynısını yaptım. Buggy

Yanıtlar:


15

Raster paketi, rasgele rasterler (boyut, projeksiyon) oluşturmanıza veya matrisler gibi mevcut nesneleri kullanmanıza olanak tanır; daha sonra projeksiyonlar ve uzantılar atayabilirsiniz. Sizin image()işlevi doğrudan kullanılabilecek bir matris argüman alır:

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)

Daha sonra writeRaster()istediğiniz sayıda formatla kullanabilirsiniz, örn.

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

2

Birkaç farklı yol var, ancak Windows'ta açık kaynak araçlarını kullanmak istediğiniz bir bıçak alarak 3 seçenek önerebilirim:

  1. İçinde gdal_translate aracını kullanın GDAL (açık kaynak jeo-raster manipülasyon kütüphanesi). Muhtemelen rasterde -gcp pixel line easting northing elevationpiksel ve çizginin x / y olduğu ( http://www.gdal.org/gdal_datamodel.html ) ve coğrafi koordinatların doğu / kuzey yönündeki parametreye ihtiyacınız vardır . Ayrıca aşağıdakileri içeren bir projeksiyon belirtmeniz gerekir:-a_srs srs_def
  2. GDAL için r bağlarını kullanın ve aynı şeyi yapın
  3. Bu öğreticiyi takip etmek ve GDAL ile QGIS kullanmak daha kolay bir "GUI" yolu olabilir . Bunun dezavantajı, henüz yapmadıysanız hem QGIS hem de GDAL'yi ayarlamanız gerekir.

Hangi yolu seçerseniz seçin, ihtiyacınız olan her bir bitin bağımlılıklarına dikkatle bakacağım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.