2015-08-23 7 views
10

Chciałbym poprosić o pomoc w sprawie pakietu ulotek. Podczas rysowania interaktywnej mapy możesz zrobić coś takiego.Płytki NASA z ulotką w R

library(leaflet) 
library(magrittr) 

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

m 

Jeśli chcesz dodać kafelek innej firmy, możesz to zrobić. Poniższe łącze oferuje opcje płytek zewnętrznych (http://leaflet-extras.github.io/leaflet-providers/preview/index.html) Poniższy obraz został utworzony za pomocą OpenWeatherMap.Precipitation.

### They work 
m %>% addProviderTiles("MtbMap") 
m %>% addProviderTiles("HikeBike.HikeBike") 
m %>% addProviderTiles("OpenWeatherMap.Precipitation") 

enter image description here

Niektóre opcje płytki w linku obejmują płytki przez NASA. Chciałem użyć jednego z nich. Próbowałem więc następujących kodów. Żadne z nich niestety nie działało.

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

Jedyna dostępna opcja jest następująca.

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

enter image description here

Moja następna próba była w użyciu szablonu niestandardowego URL z addTiles(). Adres URL pochodzi z powyższego linku. Ale to też nie było udane; nie pojawił się komunikat o błędzie, ale brak zmian w kafelku.

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

Moja ostatnia próba była następująca. To pokazało domyślną mapę, ale dodatkowy kafel również się nie pojawił.

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

Moje pytanie brzmi, czy jest to potencjalny błąd związany z płytkami NASA. Alternatywnie, jakiej wersji potrzebuję w tych skryptach? Z góry dziękuję za pomoc.

UPDATE

znalazłem website która wykorzystuje te same płytki NASA. Podałem NASAGIBS.ModisTerraTRUEColorCR i otrzymałem następujący obraz. Obraz pokazuje, jak poczta podróżowała z USA do Szwecji. Jak widać, nie ma obrazu zarówno dla USA, jak i Europy. Myślę, że to może być powód, dla którego zobaczyłem czarną płytkę. Chciałbym wiedzieć, czy ktokolwiek zna jakieś szczegóły płytek NASA. Wybrałem obszar, w którym widzę obraz NASA. Ale nie miałem szczęścia.

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

Dziś dałem jeszcze jedną szansę. W tym momencie udało mi się uzyskać następujący obraz. Po złapaniu go trochę pomniejszyłem. W UPDATE podałem mapę, na której nie można zobaczyć Stanów Zjednoczonych i Europy. Na nowym zdjęciu widać Zachodnie Wybrzeże Stanów jest czarne. Biorąc pod uwagę wszystkie obserwacje, wydaje mi się, że nie można uzyskać obrazów NASA lokalizacji przez cały czas. W zależności od tego, kiedy poprosisz o kafelki NASA, możesz/nie masz obrazu, który chcesz.

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

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

enter image description here

Odpowiedz

6

Końcowy wniosek jest poprawny: w zależności od lokalizacji poprosić obrazów na rzecz iw chwili złożenia wniosku, satelita może, ale jeszcze nie nabyły obraz. Możesz więc uzyskać rzeczywisty obraz lub tylko pusty.(Jest to również określone w GIBS API documentation.)

Można jednak określić, o jaki dzień zażądać obrazu za pomocą opcji "time" dla metody addProviderTiles(). Podając datę w niedalekiej przeszłości, możesz uzyskać niepuste obrazy dla wszystkich lokalizacji, jeśli jest to preferowane.

To składnia:

> 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 

W momencie pisania (31.08.2015) uzyskać ten wynik:

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

jest pochmurno w Anglii, który miałby zgadłeś?

Większość danych już tam jest, ale Alaska jeszcze nie ma zdjęć. Jeśli z drugiej strony, określić data wczorajsza

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

otrzymujemy pełny obraz:

Specified a date in the past. Imagery everywhere alreadycacquired.

Wreszcie, powód dlaczego

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

nie praca była prawdopodobnie z powodu literówki. To powinno być

m %>% addProviderTiles("NASAGIBS.ModisTerraTrueColorCR") 
+0

Dzięki za tę opcję czasu! Jest to bardzo pomocne. :) – jazzurro

Powiązane problemy