2015-08-23 3 views
10

Я хотел бы попросить некоторую помощь в отношении пакета листовка. Когда вы рисуете интерактивную карту, вы можете сделать что-то подобное.НАСА плитки с лифтом в R

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

Некоторые из вариантов плитки в ссылке, включают плитки от НАСА. Я хотел использовать один из них. Поэтому я попробовал следующие коды. Никто из них, к сожалению, не работал.

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

Вопрос в том, является ли это потенциальной ошибкой специально для плиток НАСА. В качестве альтернативы, какая ревизия мне нужна в этих сценариях? Благодарим вас за помощь.

UPDATE

Я нашел website, который использует те же плитки НАСА. Я указал 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") 

enter image description here

UPDATE 2

Сегодня я дал еще один выстрел. В этот момент мне удалось получить следующее изображение. Я немного уменьшился, когда захватил его. В UPDATE я представил карту, которую вы не видите в США и Европе. На новом изображении вы видите, что западное побережье Штатов находится в черном. Учитывая все наблюдения, мне кажется, что нельзя постоянно получать изображения NASA из местоположения. В зависимости от того, когда вы спрашиваете плитки NASA, вы можете/не иметь изображение, которое хотите.

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

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

enter image description here

ответ

6

Ваш окончательный вывод правилен: в зависимости от того, что место вы запрашиваете изображения для и на момент запроса, спутник может или не приобрели изображения. Таким образом, вы можете получить фактическое изображение или просто пустую.(Это также указано в GIBS API documentation.)

Однако вы можете указать, в какой день запросить изображение для опции «время» для addProviderTiles(). Указав дату в ближайшем прошлом, вы можете получить непустые изображения для всех местоположений, если это то, что вы предпочитаете.

Это синтаксис:

> 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-08-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") 
+0

Спасибо за это предложение! Это очень полезно знать. :) – jazzurro

Смежные вопросы