Con il vostro aiuto in un altro thread sono riuscito a tracciare alcune mappe globali. Innanzitutto converto i dati meteorologici GRIB2 in Netcdf e quindi tracciamo le mappe globali.R ritaglio dati raster e impostazione limiti asse
Ora voglio tracciare solo una subregione della mappa. Ho provato il comando di ritaglio e ho estratto con successo la sottoregione del file globale nc. Ma quando sto disegnando non riesco a trovare il modo di controllare i limiti degli assi. Rappresenta una mappa più grande della regione dati, in modo che gli spazi bianchi appaiano su entrambi i lati.
Questo è lo script che sto usando per tracciare mappe
library("ncdf")
library("raster")
library("maptools")
DIA=format(Sys.time(), "%Y%m%d00") # Data d'avui
url=sprintf("ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.%s/gfs.t00z.pgrb2f00", DIA) # Ruta del ftp
loc=file.path(sprintf("%s",url))
download.file(loc,"gfs.grb",mode="wb")
system("/usr/bin/grib2/wgrib2/wgrib2 -s gfs.grb | grep :TMP: | /usr/bin/grib2/wgrib2/wgrib2 -i gfs.grb -netcdf temp.nc",intern=T)
t2m <- raster("temp.nc", varname = "TMP_2maboveground")
rt2m <- rotate(t2m)
t2mc=rt2m-273.15
DAY=format(Sys.time(), "%Y%m%d") # Data d'avui
e=extent(-40,40,20,90)
tt=crop(t2mc,e)
png(filename="gfs.png",width=700,height=600,bg="white")
rgb.palette <- colorRampPalette(c("snow1","snow2","snow3","seagreen","orange","firebrick"), space = "rgb")#colors
plot(tt,col=rgb.palette(200),main=as.expression(paste("Temperatura a 2m ",DAY," + 00 UTC",sep="")),axes=T)
dev.off()
che danno questa uscita.
deve essere un semplice, ma io sono un utente R semplice. Grazie in anticipo.
MODIFICA: Nuova uscita quando si aggiunge xlim = c (-40,40), ylim = c (20,90) come suggerito. Sembra che non risolva il problema. Ma giocare con le dimensioni x, y del file png di output sembra promettente in quanto posso regolare la dimensione per adattarla alla mappa. Per essere sicuro che deve essere un'altra soluzione, quella giusta che non riesco a trovare.
sufficiente aggiungere una 'xlim' e un' ylim' ai vostri comandi 'plot', per esempio 'trama (...., xlim = c (-10,30), ylim = c (30, 80))' E bella trama, a proposito, +1 –
Forse date un'occhiata al pacchetto googleVis. Non sono sicuro che sarà d'aiuto, ma è abbastanza pulito. Contiene le funzioni IntensityMap, GeoMap e Map che potrebbero aiutare. –
Ciao @ SimonO101 Questo è stato il mio primo tentativo prima di guardare il raccolto, non sono sicuro di aver provato entrambi. Non al lavoro ora, ci proverò. Grazie mille. – pacomet