【问题标题】:where could we get such a landscape GIS layer我们在哪里可以获得这样的景观 GIS 图层
【发布时间】:2011-11-17 04:35:06
【问题描述】:

在这里,我发现景观 GIS 图层非常吸引人,尤其是在展示物种/样本分布方面。我想知道是否可以在 R 或任何其他资源中访问它?

本文使用了图1中的GIS层(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 中提交此问题。但是,我失败了。我希望在这里得到一些帮助/指导。

非常感谢任何指示。

祝你好运,

【问题讨论】:

  • 你想做什么?我猜你想在漂亮的地图图像上绘制一些点。是的?请参阅包 sp、rgdal 和 raster。
  • 亲爱的 Spacedman,我希望得到如图 1 所示的这样一个层。我知道一些用于绘图的 R 函数。

标签: r plot geospatial layer geo


【解决方案1】:

很可能下载此文件并使用 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)

所以,我们仍然需要手动工作来为图像找到合适的参考坐标 - 这里的猜测可以正常工作,但它们仍然只是猜测,您可能最终会为看似简单的事情带来很多痛苦。

如果交互式绘图点对您来说已经足够了,那么您可以将locatorpointslinestext 以及相关的绘图功能结合使用。

【讨论】:

  • +1 表示清晰和完整;我不能说正确。
【解决方案2】:

如果您只想要像这张图片这样的数据,那么可以使用包直接访问图片,同样使用sprgdal 中的工具。此示例使用 dismo 包中的 gmap 很接近。

library(dismo)

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

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

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

print(gm)

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

【讨论】:

  • 亲爱的 mdsumner。非常感谢你给我的东西。
【解决方案3】:

冯, 如果我正确阅读了 Google 文档,您可以使用额外的参数样式和元素来修改标签和显示的功能。 我没有在 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", RETURNIMAGE = FALSE);

希望这会有所帮助,

马库斯·洛彻

【讨论】:

  • 亲爱的 Markus, 非常感谢您的友好指导。现在,我对 GetMap() 函数很清楚了。我认为我需要的数据是阅读 Google 文档,然后调整 GetMap() 的路径参数。
  • 但是你能发布谷歌地图图像吗?服务条款可以吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多