NASA瓦片与R中的leaflet

14

我希望你能帮忙翻译关于leaflet包的内容。当你绘制交互式地图时,可以像这样做。

library(leaflet)
library(magrittr)

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

m

如果想添加第三方磁贴,也可以这样做。下面的链接提供了第三方瓦片的选项(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")

enter image description here

链接中的一些瓷砖选项包括NASA制作的瓷砖。我想使用其中之一。因此,我尝试了以下代码。可惜,它们都没有起作用。

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

唯一有效的选项是以下内容。
m %>% addProviderTiles("NASAGIBS.ViirsEarthAtNight2012")

enter image description here

我的下一个尝试是使用自定义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))

我的最后一次尝试是以下内容。这显示了默认地图,但是额外的瓷砖也没有出现。

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))

我的问题是,这是否是与NASA瓦片特定相关的潜在错误。或者,我需要在这些脚本中进行什么修订?提前感谢您的帮助。
更新:
我发现一个网站, 它使用相同的NASA瓷砖。我指定了 NASAGIBS.ModisTerraTRUEColorCR, 并得到了以下图像。图片展示了一封邮件从美国到瑞典的旅程,正如你所看到的,美国和欧洲都没有图像。我认为这可能是我看到黑色瓷砖的原因。我想知道是否有人了解NASA瓦片的细节。我选择了可以看到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")

enter image description here

更新2

今天,我又尝试了一次。此时此刻,我成功获取了以下图片。当我捕捉到它时,我稍微缩小了画面。在之前的 更新 中,我提供了一张地图,但你看不到美国和欧洲。在新的图片中,你可以看到美国西海岸是黑色的。根据所有观察,我认为人们可能并不能一直获得NASA某个位置的图片。取决于你何时请求NASA瓦片,你可能会/可能不会得到想要的图片。

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

m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")

enter image description here

1个回答

9
您的最终结论是正确的:根据您请求影像的位置和请求时间,卫星可能已经获取了图像,也可能尚未获取。所以您可能会得到实际的图像或空白的图像。(这也在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

在编写本文时(2015年8月31日),我得到了这个结果:

Specified today's date (or no date). Some images are not yet acquired.

英国天气多云,谁能想到呢?

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

options = providerTileOptions(time = "2015-08-30", opacity = 0.5)

我们获得完整的图像:

Specified a date in the past. Imagery everywhere alreadycacquired.

最后,原因为:
m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")

由于打字错误,导致“没有起作用”,应该是这样的。
m %>% addProviderTiles("NASAGIBS.ModisTerraTrueColorCR")

谢谢这个时间选项!这是非常有用的知识。 :) - jazzurro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接