0

在这里,我发现景观 GIS 图层确实很有吸引力,尤其是用于呈现物种/样本分布。我想知道它是否可以在 R 或任何其他资源中达到?

GIS 层在本文的图 1 中使用(http://onlinelibrary.wiley.com/doi/10.1111/j.1469-8137.2010.03479.x/full)。

此图 1 图像在这里:

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 在此处输入图像描述

我曾经尝试在 R-sig-geo 中提交这个问题。但是,我失败了。我希望在这里得到一些帮助/指导。

非常感谢任何指示。

最良好的祝愿,

4

3 回答 3

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结合使用pointsandlinestext, 以及相关的绘图功能。

于 2011-09-14T23:45:31.577 回答
1

如果您只想要此图像之类的数据,则可以使用包直接访问图像,再次使用sp和中的工具rgdal。这个例子gmapdismo包中使用很接近。

library(dismo)

e <- extent(-7, 5, 38, 44)

gm <- gmap(e, type = "terrain")
plot(gm)

非常简单的谷歌地图情节

请注意,虽然我们在“longlat”中指定范围,但图像会以其原生 (Google) 墨卡托返回。

print(gm)

?gmap有关转换您自己的数据以匹配图像的投影或更广泛的函数集的更多选项,请参阅rasterrgdal以及sp其他选项。还有其他可能更可取的图像提供程序,并且 R 套件提供的软件包中有很多选项。

于 2011-09-15T00:27:11.447 回答
1

Feng,如果我正确阅读了 Google 文档,您可以使用额外的参数 style 和 element 修改标签和显示的功能。我没有在 RgoogleMaps 包中包含这些自定义参数,但是,您可以通过路径参数轻松传递任何附加参数!如果您仔细阅读 GetMap 的帮助文件,您会注意到以下示例:

请注意,由于路径字符串只是附加到 URL,因此您可以“滥用”路径参数将任何内容传递给查询,例如样式参数:

#以下示例显示布鲁克林的地图,其中本地道路已更改为亮绿色,居民区已更改为黑色:##未运行:GetMap(center='Brooklyn', zoom=12, maptype = "roadmap" , path = "&style=feature:road.local|element:geometry|hue:0x00ff00|saturation:100&style=feature:landscape|element:geometry|lightness:-100", sensor='false', destfile = "MyTile4.png ", 返回图像 = FALSE);

希望这可以帮助,

马库斯·洛彻

于 2011-09-18T05:02:29.150 回答