【发布时间】:2021-01-07 14:53:22
【问题描述】:
我正在尝试以 0.0417 度的分辨率将人工光发射的全球栅格从经度/纬度重新投影到贝尔曼等面积 (EPSG:6933)。由于在重投影期间对像素进行插值时,城市区域周围的数据会出现峰值,因此整个图层会丢失大约 15% 的数据。
我尝试将栅格转换为空间点数据框,重新投影空间点数据框,然后使用使用“projectraster”函数创建的栅格作为模板栅格进行栅格化(我认为模板栅格的尺寸、范围和分辨率可能是问题所在?)但是,这会产生一个水平线穿过图层的栅格。
这里是一些以西班牙为例的示例代码。我可以通过电子邮件发送西班牙的 tif 文件 (246kb):
library("sf")
library("raster")
behrmann <- CRS('+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +ellps=WGS84 +units=m +no_defs')
r <- raster("~/Documents/R spatial data[enter image description here][1]/Spain.tif")
cellStats(r, sum) # check summed light emissions
r_temp <- projectRaster(r, crs = behrmann) # creates template for rasterisation (data is lost due to interpolation of data spikes)
spdf <- rasterToPoints(r, spatial = TRUE)
spdf2 <- spTransform(spdf, CRS = behrmann)
r2 <- rasterize(spdf2, r_temp, field = "Spain", fun = "sum")
cellStats(r2, sum) # check no data has been lost
plot(log10(r2)) # see attached image[enter image description here][1]
如何在不丢失数据和避免水平线的情况下重新投影到相等的区域?我还尝试转换为空间多边形数据框而不是空间点,这不会产生线条,而是会丢失类似于“projectRaster”函数的数据。这一定是一个常见的(ish)问题,但我在网上找不到任何帮助。
非常感谢。
Example of horizontal lines after reprojectingstack.imgur.com/IV0fZ.png
【问题讨论】:
标签: r raster map-projections