在R中剪切光栅数据
我有一个有趣的案例要解决,因为我对这类数据没有太多的经验,所以我请求一些帮助 我有大约1000个TIF文件,每个都超过30MB。这些文件中的每一个都至少有一个我感兴趣的屋顶。我想根据存储lon lat数据的文件,仅从tif中剪切一些特定位置。我设法绘制了tif文件,但我正在努力绘制lon lat点。作为下一步,我只想切割点附近的区域。可能吗 对于导入TIF文件,我使用的是stars在R中剪切光栅数据,r,geospatial,r-raster,R,Geospatial,R Raster,我有一个有趣的案例要解决,因为我对这类数据没有太多的经验,所以我请求一些帮助 我有大约1000个TIF文件,每个都超过30MB。这些文件中的每一个都至少有一个我感兴趣的屋顶。我想根据存储lon lat数据的文件,仅从tif中剪切一些特定位置。我设法绘制了tif文件,但我正在努力绘制lon lat点。作为下一步,我只想切割点附近的区域。可能吗 对于导入TIF文件,我使用的是stars y <- read_stars('data/file_1.tif') y_ll <- st_trans
y <- read_stars('data/file_1.tif')
y_ll <- st_transform(y, "+proj=longlat +ellps=WGS84 +datum=WGS84")
coordinates(lon_lat_data) = ~lon+lat
plot(y_ll[,,,1], axes = TRUE)
points(lon_lat_data$lon, lon_lat_data$lat, pch=19, col="red", cex=0.5)
y请不要要求我们下载数据。而是使用代码生成一些数据和/或使用R附带的文件。例如:
library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
xy <- spatSample(r, 10, xy=TRUE, na.rm=TRUE)
v <- vect(as.matrix(xy[,1:2]), crs=crs(r))
plot(r)
points(v)
您还可以在点周围创建缓冲区,或者使用crop
v <- project(v, crs(r))
extract(r, v)
# ID elevation
#1 1 325
#2 2 281
#3 3 324
#4 4 353
#5 5 271
#6 6 306
#7 7 332
#8 8 260
#9 9 270
#10 10 280