在这里,我发现景观GIS层非常有吸引力,特别是对于呈现物种/样本分布。我想知道是否可以在R或任何其他资源中找到它?
本文(http://onlinelibrary.wiley.com/doi/10.1111/j.1469-8137.2010.03479.x/full)中使用了GIS图层(http://onlinelibrary.wiley.com/store/10.1111/j.1469-8137.2010.03479.x/asset/image_t/NPH_3479_f1_thumb.gif?v=1&t=gsk5sbhs&s=e5e2e4bbb194f799f7ab9bec85a416e295405784)。
这张图1的图片在这里:
{{3}}
我曾尝试在R-sig-geo中提交此问题。但是,我失败了。我期待在这里得到一些帮助/指示。
非常感谢任何指示。
祝福,
答案 0 :(得分:2)
可以下载此文件并使用R读取它,将其配置为具有正确的地理坐标,以便过度绘图很容易,并使用正确的颜色方案显示图像等等。但是,自动获取所需的所有数据并非易事。
您需要GIF文件中的颜色表,以便您可以为每个像素绘制正确的RGB值集(信息在文件中,但我不确定是否可以直接使用R,我会检查 - 当然可以使用GDAL,但是以自动方式提取这些值取决于可用的各种工具。
更新:事实证明,光栅包正确地获取了颜色信息并进行了绘制,见下文。
您还需要地理空间信息,即参考像素的坐标(例如,左上角的像素角)和比例(像素的地理宽度和高度),此信息不会存储在文件。此外,文件的坐标系不在文件中,很可能没有明确地提供图像数据。
如果颜色和坐标系统与文件一起存储,那么它将很容易,类似下面的内容就足够了。
(注意这对我有用,但后来我认为后续请求被服务器阻止,所以尽量只下载文件一次)。
u <- "http://onlinelibrary.wiley.com/store/10.1111/j.1469-8137.2010.03479.x/asset/image_n/NPH_3479_f1.gif?v=1&t=gskxvi17&s=0f13fa9dae78bd6837aeee594065c6ca112864d2"
imfile <- paste(tempfile(), ".gif", sep = "")
download.file(u, imfile, mode = "wb")
library(raster) ## rgdal also required for this file format
library(rgdal)
im <- raster(imfile)
plot(im)
这看起来很好,但现在看到没有“真实世界”坐标系,这只是从像素1到X维度中的数字的轴(对于Y来说是相同的)。
axis(1, pos = 2)
所以,我们仍然需要手动工作来发现图像的适当参考坐标 - 这里的猜测可以正常工作,但它们只是猜测,你最终可能会因为看似简单的事情而产生很多痛苦。
如果交互式绘图点足够您,那么您可以将locator
与points
和lines
以及text
以及相关的绘图功能结合使用。
答案 1 :(得分:1)
如果您只想要此图片之类的数据,则可以使用sp
和rgdal
中的工具直接访问图像。此示例在gmap
包中使用dismo
即将结束。
library(dismo)
e <- extent(-7, 5, 38, 44)
gm <- gmap(e, type = "terrain")
plot(gm)
请注意,虽然我们在“longlat”中指定范围,但图像会在其原生(Google)墨卡托中返回。
print(gm)
有关转换您自己的数据以匹配图片投影的更多选项,请参阅?gmap
,或raster
,rgdal
和sp
中用于其他选项的更广泛的功能集。还有其他图像提供程序可能更受欢迎,并且R套件中提供了相当多的选项。
答案 2 :(得分:1)
峰, 如果我正确阅读了Google文档,您可以使用额外的参数样式和元素修改标签和显示的功能。 我没有在RgoogleMaps包中包含这些参数的自定义参数,但是,您可以通过路径参数轻松传递任何附加参数! 如果您仔细阅读GetMap的帮助文件,您将注意以下示例:
#以下示例显示布鲁克林地图,其中当地道路已变为亮绿色,住宅区已更改为黑色: ##未运行:GetMap(center ='Brooklyn',zoom = 12,maptype =“roadmap”,path =“&amp; style = feature:road.local | element:geometry | hue:0x00ff00 | saturation:100&amp; style = feature:landscape | element:geometry | lightness:-100“,sensor ='false',destfile =”MyTile4.png“,RETURNIMAGE = FALSE);
希望这有帮助,
Markus Loecher