当我尝试绘制以下内容时,我遇到了问题。
我创建了一个带有栅格单元ID的学习区域的面具和一个包含我的学习区域的国家轮廓的shapefile。 shapefile是通过合并国家/地区的shapefile创建的,然后将其裁剪到研究区域。 (这是必要的,因为世界各国的shapefile不够详细)
R version 3.3.3 (2017-03-06) -- "Another Canoe"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
library(raster)
library(maptools)
library(rgdal)
#load Mask
sa.ID <- raster("Masks/sa.ID.asc")
proj4string(sa.ID) <- "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
sa.ID
class : RasterLayer
dimensions : 177, 266, 47082 (nrow, ncol, ncell)
resolution : 0.08333333, 0.08333333 (x, y)
extent : 118.8333, 141, -9.166667, 5.583333 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : ....\Masks\sa.ID.asc
names : sa.ID
#load countries shapefile
countries.ra <- readOGR(dsn="diva-gis/Adm areas", layer="countries.ra")
countries.ra
class : SpatialPolygonsDataFrame
features : 4
extent : 118.8, 141, -9.2, 5.6 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
variables : 70
names : GADMID, ISO, NAME_ENGLI, NAME_ISO, NAME_FAO, NAME_LOCAL, NAME_OBSOL, NAME_VARIA, NAME_NONLA, NAME_FRENC, NAME_SPANI, NAME_RUSSI, NAME_ARABI, NAME_CHINE, WASPARTOF, ...
min values : 103, IDN, East Timor, INDONESIA, Indonesia, Indonesia, British New Guinea|German New Guinea|New Britain|New Guinea, East Timor|Portuguese Timor, NA, Indonésie, Filipinas, ????? — ????? ??????, ????? ????? ???????, ???, NA, ...
max values : 222, TLS, Philippines, TIMOR-LESTE, Timor-Leste, Timor-Leste, Dutch Borneo|Dutch East Indies|Dutch New Guinea|East Indies|Netherlands Indies|West New Guinea|Nederlands Indië, Philippines, NA, Timor-Leste (Timor Oriental), Timor Oriental, ????????? ?????, ?????????, ???????, NA, ...
现在我尝试用顶部的国家层绘制掩码
plot(sa.ID, xlim=c(118.8,141), ylim=c(-9.2,5.6), axes=TRUE)
plot(countries.ra, add=T)
最初,我得到的情节看起来不错,但是当情节窗口的范围发生变化时,或者当我试图保存它时,国家会随之改变形状而不是保持应有的状态(参见sa.ID })
但不知何故,当我改变它并绘制
时plot(sa.ID, xlim=c(118.8,141), ylim=c(-9.2,5.6), axes=TRUE)
plot(countries.ra, add=T)
各国的形状确实存在(见sa.ID.inverse)。 但是,由于我需要清晰的线条,我真的需要第一个工作。
任何人都可以帮助我吗?因为我真的无法看到我可能做错了什么......
eta:我的范围掩码(每个栅格单元都有值)和世界国家shapefile存在同样的问题
答案 0 :(得分:0)
关于@Bastien的评论,我想您可以尝试使用:
plot.window(xlim, ylim, log = "", asp = NA, ...)
指定绘图窗口的尺寸。我不确定你希望你的情节出现在什么样的地方,但是有什么影响:
plot.window(xlim=c(118.8333, 141), ylim=( -9.166667, 5.583333))
如果您指定这些值,应该强制R每次都正确地重绘绘图窗口。