2015-08-23 15 views
10

Vorrei chiedere aiuto per quanto riguarda il pacchetto di volantini. Quando disegni una mappa interattiva, puoi fare qualcosa di simile.Piastrelle NASA con volantino in R

library(leaflet) 
library(magrittr) 

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

m 

Se si desidera aggiungere una tessera di terze parti, è possibile farlo anche. Il seguente link offre opzioni per i riquadri di terze parti (http://leaflet-extras.github.io/leaflet-providers/preview/index.html) L'immagine seguente viene creata con OpenWeatherMap.Precipitation.

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

enter image description here

Alcune delle opzioni di piastrelle nel link includono piastrelle dalla NASA. Volevo usare uno di loro. Così ho provato i seguenti codici. Nessuno di loro ha purtroppo funzionato.

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

L'unica opzione che funziona è la seguente.

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

enter image description here

Il mio prossimo tentativo è stato quello di utilizzare template URL personalizzato con addTiles(). L'URL è dal link sopra. Ma anche questo non ha avuto successo; non è apparso alcun messaggio di errore, ma nessuna modifica nella tessera.

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

Il mio ultimo tentativo è stato il seguente. Questo mostrava la mappa di default, ma non compariva neanche una tessera aggiuntiva.

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

La mia domanda è se si tratta di un potenziale bug specifico per le tessere NASA. In alternativa, di quale revisione ho bisogno in questi script? Grazie in anticipo per il tuo aiuto.

UPDATE

Ho trovato un website che utilizza stesse piastrelle della NASA. Ho specificato NASAGIBS.ModisTerraTRUEColorCR e ho ottenuto la seguente immagine. L'immagine mostra come una posta viaggiava dagli Stati Uniti alla Svezia. Come vedi, non c'è immagine né per gli Stati Uniti né per l'Europa. Penso che questo potrebbe essere il motivo per cui ho visto una piastrella nera. Mi piacerebbe sapere se qualcuno conosce alcuni dettagli delle tessere NASA. Ho scelto l'area in cui posso vedere l'immagine della NASA. Ma non ho avuto fortuna.

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

Oggi, ho dato un altro colpo. In questo momento sono riuscito a ottenere la seguente immagine. Ho zumato un po 'quando l'ho catturato. In UPDATE, ho fornito una mappa che non è possibile visualizzare negli Stati Uniti e in Europa. Nella nuova immagine, vedi la costa occidentale degli Stati è in nero. Considerate tutte le osservazioni, mi sembra che non si possano ottenere immagini NASA di un luogo tutto il tempo. A seconda di quando chiedi le tessere NASA, puoi/non avere un'immagine che vuoi.

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

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

enter image description here

risposta

6

tua conclusione finale è corretta: a seconda di quale posizione si richiede di immagini e del momento della richiesta, il satellite può o non può aver ancora acquisito l'immagine. Quindi potresti ottenere un'immagine reale o solo un'immagine vuota.(Questo è anche indicato nel GIBS API documentation.)

Tuttavia, è possibile specificare il giorno in cui richiedere l'immagine tramite l'opzione "ora" per addProviderTiles(). Specificando una data nel passato prossimo, puoi ottenere immagini non vuote per tutte le località, se questo è ciò che preferisci.

Questa è la sintassi:

> 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 

Al momento della scrittura (2015/08/31) ottengo questo risultato:

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

è nuvoloso in Inghilterra, che avrebbe indovinato?

La maggior parte dei dati sembra essere già lì, ma non ci sono ancora immagini per l'Alaska. Se d'altra parte, a specificare la data di ieri

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

otteniamo l'immagine completa:

Specified a date in the past. Imagery everywhere alreadycacquired.

Infine, il motivo per cui

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

non ha funzionato è stato probabilmente a causa di un errore di battitura. Dovrebbe essere

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

Grazie per questa opzione di tempo! Questo è qualcosa di molto utile da sapere. :) – jazzurro

Problemi correlati