在南美洲栅格Map上以全图形式添加worldmap shapefile

vnjpjtjt  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(89)

我想在南美降水栅格上添加Worldmap shapefile。我使用了以下代码

# Calling variables
Prec <- raster("C:/Users/DELL/OneDrive/Desktop/test1/wc2.1_10m_prec_01.tif")
S_USA <- readOGR(dsn = "C:/Users/DELL/OneDrive/Documents", layer = "South_America")

# Cropping and masking
Prec_USA_c <- crop(Prec, S_USA)
Prec_USA_m <- crop(Prec_USA_c, S_USA)

# Plotting
plot(Prec_USA_m)
plot(S_USA, add = TRUE)

字符串
但是,我发现世界Mapshapefile的范围被缩小到适合光栅的范围。我已经附上了我得到的图像。
但这不是我想要的。我想在world_map shapefile中绘制栅格,保留shapefile的完整范围。我可以知道如何才能做到这一点吗?
请帮
栅格源:https://www.worldclim.org/data/worldclim21.html [降水量,10 m]
用于裁剪栅格的南美洲shapefile源:https://tapiquen-sig.jimdo.com/english-version/free-downloads/south-america/
世界shapefile的来源(覆盖;我在光栅上绘制之前将南极洲从其中删除):https://www.naturalearthdata.com/downloads/10m-cultural-vectors/ [admin 0]
x1c 0d1x的数据

a1o7rhls

a1o7rhls1#

最好提供一些示例数据,这样更容易帮助您和您的预期输出。但是,如果您希望您的图具有整个世界的空间范围,只需在南美洲内裁剪降水之前绘制地球仪。

library(terra)
library(rworldmap)
Prec <- rast("path/to/your/raster.tif")
world <-  vect(getMap()) 

# Cropping and masking
Prec_USA_c <- crop(Prec, world[world$continent=="South America",],mask=T)

# Plotting
plot(ext(world),axes=F)
plot(Prec_USA_c,add = TRUE,legend=F,axes=F)
plot(world,add = TRUE,legend=F,axes=T)

字符串


的数据
这里有两件事:
1.由于本例中使用的数据,南美洲还包括中美洲各州。
1.为了使降水数据上的边界可见,我首先绘制了地球仪的空白范围,然后绘制了降水数据,最后在所有图层上绘制了地球仪的边界。

编辑

我已经使用您提供的数据重新运行了代码,但无法重现您的问题(Axis标签)。请参阅下面的代码:

library(terra)

Prec <- rast("C:/es/wc2.1_10m_prec/wc2.1_10m_prec_01.tif")
world <-  vect("C:/es/input/ne_10m_admin_0_countries.shp") 
world <- world[world$CONTINENT!="Antarctica",]
SA <-  vect("C:/es/South_America/South_America.shp") 

# Cropping and masking
Prec_USA_c <- terra::crop(Prec,SA)

# Plotting
plot(ext(world),axes=F)
plot(Prec_USA_c,add = TRUE,legend=F,axes=F)
plot(world,add = TRUE,legend=F,axes=T)


它产生了这个图像:



正如你所看到的,坐标在边界框外是完全可见的

相关问题