美国宇航局瓷砖与R的传单

jaz*_*rro 12 r leaflet

我想请一些关于传单包的帮助.绘制交互式地图时,您可以执行此类操作.

library(leaflet)
library(magrittr)

m <- leaflet() %>% 
     setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
     addTiles() 

m
Run Code Online (Sandbox Code Playgroud)

如果您想添加第三方磁贴,也可以这样做.以下链接提供第三方磁贴的选项(http://leaflet-extras.github.io/leaflet-providers/preview/index.html)创建以下图像OpenWeatherMap.Precipitation.

### They work
m %>% addProviderTiles("MtbMap")
m %>% addProviderTiles("HikeBike.HikeBike")
m %>% addProviderTiles("OpenWeatherMap.Precipitation")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

链接中的一些图块选项包括NASA的图块.我想用其中一个.所以我尝试了以下代码.不幸的是,他们都没有工作.

### The default map appears, then a black layer appears on top of the default layer.
m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")
Run Code Online (Sandbox Code Playgroud)

唯一可行的选择如下.

m %>% addProviderTiles("NASAGIBS.ViirsEarthAtNight2012")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的下一次尝试是使用自定义URL模板addTiles().该URL来自上面的链接.但是,这也没有成功; 没有出现错误消息,但瓷砖没有变化.

m %>%addTiles(urlTemplate = "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/MODIS_Terra_CorrectedReflectance_Bands367/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",
              tileOptions(minZoom = 1, maxZoom = 8))
Run Code Online (Sandbox Code Playgroud)

我最后的尝试如下.这显示了默认地图,但是没有出现额外的图块.

leaflet() %>%
addTiles() %>%
setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
addTiles(urlTemplate = "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/MODIS_Terra_CorrectedReflectance_Bands367/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",
         tileOptions(minZoom = 1, maxZoom = 8))
Run Code Online (Sandbox Code Playgroud)

我的问题是这是否是一个特别与NASA瓷砖有关的潜在错误.或者,我需要在这些脚本中进行哪些修订?提前谢谢你的帮助.

UPDATE

我找到了一个使用相同NASA瓷砖的网站.我指定NASAGIBS.ModisTerraTRUEColorCR并获得了以下图像.图像显示了邮件从美国到瑞典的情况.如你所见,美国和欧洲都没有形象.我想这可能是我看到黑色瓷砖的原因.我想知道是否有人知道美国宇航局瓷砖的一些细节.我选择了可​​以看到NASA图像的区域.但是,我没有运气.

### I expected to see Japan area this time.
foo <- leaflet() %>% 
       setView(lng = 137.37, lat = 35.93, zoom = 5) %>%
       addTiles() 

foo %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

更新2

今天,我又多了几枪.此时,我设法得到以下图像.当我抓住它时,我缩小了一点.在UPDATE,我提供了一张你看不到美国和欧洲的地图.在新图像中,您看到美国西海岸是黑色的.鉴于所有观察结果,在我看来,人们似乎无法一直获得NASA的位置图像.根据您询问NASA瓷砖的时间,您可能/可能没有您想要的图像.

m <- leaflet() %>% 
     setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
     addTiles()

m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Whi*_*ing 6

您的最终结论是正确的:取决于您请求图像的位置以及请求时间,卫星可能已经或可能尚未获得图像.所以你可能得到一个实际的图像或只是一个空的图像.(这也在GIBS API文档中说明.)

但是,您可以通过addProviderTiles()的'time'选项指定请求图像的日期.通过指定近期的日期,您可以获得所有位置的非空图像(如果您喜欢的话).

这是语法:

> library(leaflet)
> library(magrittr)

> m <- leaflet() %>% 
       setView(lng = 4.5, lat = 51, zoom = 1) %>%
       addTiles() %>% 
       addProviderTiles("NASAGIBS.ModisTerraTrueColorCR",
                        options = providerTileOptions(time = "2015-08-31", opacity = 0.5))

> m
Run Code Online (Sandbox Code Playgroud)

在撰写本文时(2015-08-31),我得到了这样的结果:

指定今天的日期(或没有日期). 有些图像尚未获得.

在英格兰是阴天,谁会猜到?

大多数数据恰好已经存在,但阿拉斯加还没有图像.另一方面,如果我指定昨天的日期

options = providerTileOptions(time = "2015-08-30", opacity = 0.5)
Run Code Online (Sandbox Code Playgroud)

我们得到完整的图像:

指定过去的日期. 各地的影像已经获得了.

最后,之所以如此

m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
Run Code Online (Sandbox Code Playgroud)

不起作用可能是因为一个错字.它应该是

m %>% addProviderTiles("NASAGIBS.ModisTerraTrueColorCR")
Run Code Online (Sandbox Code Playgroud)