Başka bir konudaki yardımınızla bazı global haritaları çizmeyi başardım. Önce meteorolojik GRIB2 verilerini Netcdf'ye dönüştürüp global haritaları çiziyorum.R kırpma tarama verileri ve ayarlanan eksen sınırları
Şimdi haritanın yalnızca bir alt bölgesini çizmek istiyorum. Ürün komutunu denedim ve global nc dosyasının alt bölgesini başarıyla çıkardım. Fakat çizerken eksen sınırlarını nasıl kontrol edeceğimi bulamıyorum. Veri bölgesinden daha büyük bir harita çiziyor, böylelikle her iki tarafta da büyük beyaz boşluklar ortaya çıkıyor.
Bu
Ben haritalar bu çıktıyı vermeklibrary("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()
çizmek için kullanıyorum komut dosyasıdır.
Basit bir biri olmalı ama basit R kullanıcısıyım. Şimdiden teşekkürler.
DÜZENLEME: Yeni çıktı olarak xlim = c (-40,40) eklendiğinde, ylim = c (20,90) önerildiği gibi. Bu sorunu çözmez gibi görünüyor. Ancak haritaya sığacak şekilde boyut ayarlayabildiğim için, çıktı png dosyasının x, y boyutu ile oynamak ümit vericidir. Eminim ki bulamadığım başka bir çözüm de olabilir.
Sadece mesela senin 'plot' komutları, bir' xlim' ve 'ylim' ekleyin: Eğer
latticeExtra::layer
yaklaşımı tercih ederse, bu kod ile benzer bir sonuç elde edebilirsiniz arsa (...., xlim = c (-10,30), ylim = c (30, 80)) Ve bu arada güzel bir arsa, +1 –Belki googleVis paketine bir göz atın. Yardım edeceğinden emin değil ama oldukça düzgün. Belki de yardımcı olabilecek IntensityMap, GeoMap ve Map işlevlerini içerir. –
Merhaba @ SimonO101 Bu, her ikisini de denediğinden emin değil, mahsulü incelemeden önce ilk denememdi. Şimdi işte değil, bir deneyecek. Çok teşekkür ederim. – pacomet