Daha çox

Gdalwarp və ProjectRaster arasındakı fərq


Bir Raster layihəsi hazırlamağa çalışıram. R-də varprojectRaster ()bunun funksiyası (tamamilə təkrarlana bilən bir nümunənin altında):

# misal Rastr tələb edir (raster) r <- raster (xmn = -110, xmx = -90, ymn = 40, ymx = 60, ncols = 40, nrows = 40) r <- setValues ​​(r, 1: ncell (r) )) proyeksiya (r) # proyektə proyekt <- "+ init = epsg: 4714" # pr1 <- projectRaster (r, crs = CRS (newproj), method = 'bilinear')

Hansı yaxşı işləyir. Lakin bu, olduqca yavaşdır.

Sürəti artırmaq üçün istifadə edirəmgdalwarpbunun əvəzinə (SSD ilə / diskdən / R-dən oxumaq və yazma dəyəri çox yüksək deyil).

Ancaq nəticələrini çoxalda bilmirəmprojectRaster ()istifadə etməkgdalwarp:

# tf <- tempfile (fileext = '.tif') tf2 <- tempfile (fileext = '.tif') writeRaster (r, tf) system (command = paste (paste0 ("gdalwarp -t_srs  '") proqnozlaşdırmaq üçün gdalwarp istifadə. , newproj, " '-r bilinear-overwrite"), tf, tf2)) pr2 <- raster (tf2)

Görünür işləyir, lakin nəticələr fərqlidir:

# Məlumat sistemi (command = paste ("gdalinfo", tf)) sistem (command = paste ("gdalinfo", tf2)) # plotlar plot (r) plot (pr1) plot (pr2) #extents хязгаар (r) ölçü ( pr1) ölçü (pr2) # PROJ4 proj4string (r) proj4string (pr1) proj4string (pr2) # çıxarış dəyəri götür <- SpatialPoints (matrix (c (-100, 50), byrow = T, ncol = 2), proj4string = CRS (newproj)) süjet (götür, əlavə et = TRUE) çıxarış (pr1, götür) çıxarış (pr2, götür)

Nəyi itirirəm / səhv edirəm?

Başqa (daha sürətli) alternativlər varmı?projectRaster ()?


Gözəl və təkrarlanan sual. Şəxsən mən fərqin səbəbinin bilinməyən qınağın tətbiq edilməsində olacağını gözləyərdim. Şübhəsiz ki, iki yanaşma üçün mənbə kodunu nəzərdən keçirə bilərsiniz, amma bunun böyük bir həddən artıq olacağını gözləyirdim.
Görünür ki, R tətbiqi xam GDAL versiyasından daha böyük "səhvlər" / "dəyişikliklər" təqdim edir (versiyalarımda və testlərimdə ən azı - projectRaster + -0.01 ətrafında dəyişikliklər təqdim edərkən GDAL + -0.002 civarında dəyər verir).

Ən yaxın qonşu qınağından istifadə edərək hər iki yanaşmanı müqayisə etsəniz, gözlənildiyi kimi uyğunlaşırlar.