I second Hugo's suggestion. IMO, since your points are not a regular grid you will be unable to use `rasterXYZ`. The only thing I would add to Hugo's answers is that you can set the number of rows/cols that you wish in your final raster by setting various args in the raster function. example(rasterize) has some good examples. HTH, Vijay.
On Thu, Aug 1, 2019 at 4:44 AM Hugo Costa <hugoagco...@gmail.com> wrote: > Dear Milu, > > the best I can suggest is something like this. > > library(raster) > df<-read.csv("path/to/data/downloaded/from/GoogleDrive") > try <- subset(df, year==2010) > > sp<-SpatialPointsDataFrame(try[,1:2],data=try, proj4string = > CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")) > > r<-rasterize(sp, y=raster(), field=try$TWL_5, fun=mean, background=NA) > plot(r) > > Hope this helps somehow > Good luck > Hugo > > Miluji Sb <miluj...@gmail.com> escreveu no dia quinta, 1/08/2019 à(s) > 09:13: > >> Dear Vijay, >> >> Thank you again for your reply. I tried attaching my data for two years >> and >> two variables but the message was rejected. I have saved the data on a >> Google Drive folder here >> < >> https://drive.google.com/drive/folders/15LvLysXqIIua8ukkp8UNEnlJMSK6mA1K?usp=sharing >> >. >> Hope this will work. Thanks again! >> >> Sincerely, >> >> Milu >> >> On Thu, Aug 1, 2019 at 9:52 AM Miluji Sb <miluj...@gmail.com> wrote: >> >> > Dear Vijay, >> > >> > Thank you again for your reply. I have attached my data for two years >> and >> > two variables. Hope they will go through, otherwise the files are also >> > available here >> > < >> https://drive.google.com/drive/folders/15LvLysXqIIua8ukkp8UNEnlJMSK6mA1K?usp=sharing >> >. >> > Thanks again! >> > >> > Sincerely, >> > >> > Milu >> > >> > On Wed, Jul 31, 2019 at 10:46 PM Vijay Lulla <vijaylu...@gmail.com> >> wrote: >> > >> >> Hmm...I had seen your data and thought that it was just some sample >> that >> >> you'd shared. If this is your whole data then I don't know how to >> create a >> >> raster from just one row that is returned from subsetting the >> dataframe. >> >> >> >> Sorry for the noise. >> >> >> >> On Wed, Jul 31, 2019 at 4:16 PM Miluji Sb <miluj...@gmail.com> wrote: >> >> >> >>> Hello, >> >>> >> >>> Thank you for your kind reply. Here is a snapshot of the original >> data. >> >>> I had pasted it at the bottom of my first email but forgot to mention >> it. >> >>> Thanks again! >> >>> >> >>> df <- structure(list(lon = c(180, 179.762810919291, 179.523658017568, >> >>> 179.311342656601, 179.067616041778, 178.851382109362, >> 178.648816406322, >> >>> 178.501097394651, 178.662722495847, 178.860599151485), lat = >> >>> c(-16.1529296875, >> >>> -16.21659020822, -16.266117894201, -16.393550535614, >> -16.4457378034442, >> >>> -16.561653799838, -16.6533087696649, -16.7741069281329, >> >>> -16.914110607613, >> >>> -16.9049389730284), nsdec = structure(c(1L, 3L, 4L, 5L, 6L, 7L, >> >>> 8L, 9L, 10L, 2L), .Label = c("1 of 10", "10 of 10", "2 of 10", >> >>> "3 of 10", "4 of 10", "5 of 10", "6 of 10", "7 of 10", "8 of 10", >> >>> "9 of 10"), class = "factor"), TWL_5 = c(2.13810426616849, >> >>> 2.16767864033646, >> >>> 2.16881240361846, 2.20727073247015, 2.27771608519709, 2.3649601141941, >> >>> 2.44210984856767, 2.52466349543977, 2.63982954290745, 2.71828906773926 >> >>> ), TWL_50 = c(2.38302354555823, 2.43142793944275, 2.45733044901087, >> >>> 2.53057109758284, 2.61391337469939, 2.71040967066483, >> 2.82546443373866, >> >>> 2.9709907727849, 3.1785797371187, 3.33227647990861), TWL_95 = >> >>> c(2.63753852023063, >> >>> 2.7080249053612, 2.75483681166049, 2.86893038433795, 2.97758282474101, >> >>> 3.14541928966618, 3.3986143008625, 3.68043269045659, 4.09571655859075, >> >>> 4.57299670034984), year = c(2010, 2020, 2030, 2040, 2050, 2060, >> >>> 2070, 2080, 2090, 2100)), row.names = c(NA, 10L), class = >> "data.frame") >> >>> >> >>> Sincerely, >> >>> >> >>> Milu >> >>> >> >>> On Wed, Jul 31, 2019 at 9:20 PM Vijay Lulla <vijaylu...@gmail.com> >> >>> wrote: >> >>> >> >>>> ?`rasterFromXYZ` states that "x and y represent spatial coordinates >> and >> >>>> must be on a regular grid." And, it appears to me that you might be >> losing >> >>>> values by rounding lon/lat values. The help file further suggests >> that >> >>>> `rasterize` might be the function you're looking for. List members >> will >> >>>> (certainly I will) find it more helpful to propose other solutions >> if you >> >>>> post a small reproducible example of your original georeferenced >> dataset so >> >>>> that we get an idea of what data you're using. >> >>>> >> >>>> Sorry, I cannot be of more help. >> >>>> >> >>>> On Wed, Jul 31, 2019 at 10:45 AM Miluji Sb <miluj...@gmail.com> >> wrote: >> >>>> >> >>>>> Dear all, >> >>>>> >> >>>>> I have georeferenced dataset with multiple variables and years. The >> >>>>> data is >> >>>>> at ~100 km (1° × 1°) spatial resolution. I would like to convert >> this >> >>>>> into >> >>>>> a raster. >> >>>>> >> >>>>> I have filtered the data for one year and one variable and did the >> >>>>> following; >> >>>>> >> >>>>> try <- subset(df, year==2010) >> >>>>> try <- try[,c(1,2,4)] >> >>>>> try$lon <- round(try$lon) >> >>>>> try$lat <- round(try$lat) >> >>>>> r_imp <- rasterFromXYZ(try) >> >>>>> >> >>>>> Two issues; is it possible to convert the original dataset with the >> >>>>> multiple variables and years to a raster? If not, how can I avoid >> >>>>> rounding >> >>>>> the coordinates? Currently, I get this error "Error in >> >>>>> rasterFromXYZ(try) : >> >>>>> x cell sizes are not regular" without rounding. >> >>>>> >> >>>>> Any help will be greatly appreciated. Thank you! >> >>>>> >> >>>>> Sincerely, >> >>>>> >> >>>>> Shouro >> >>>>> >> >>>>> ## Data >> >>>>> df <- structure(list(lon = c(180, 179.762810919291, >> 179.523658017568, >> >>>>> 179.311342656601, 179.067616041778, 178.851382109362, >> 178.648816406322, >> >>>>> 178.501097394651, 178.662722495847, 178.860599151485), lat = >> >>>>> c(-16.1529296875, >> >>>>> -16.21659020822, -16.266117894201, -16.393550535614, >> -16.4457378034442, >> >>>>> -16.561653799838, -16.6533087696649, -16.7741069281329, >> >>>>> -16.914110607613, >> >>>>> -16.9049389730284), nsdec = structure(c(1L, 3L, 4L, 5L, 6L, 7L, >> >>>>> 8L, 9L, 10L, 2L), .Label = c("1 of 10", "10 of 10", "2 of 10", >> >>>>> "3 of 10", "4 of 10", "5 of 10", "6 of 10", "7 of 10", "8 of 10", >> >>>>> "9 of 10"), class = "factor"), TWL_5 = c(2.13810426616849, >> >>>>> 2.16767864033646, >> >>>>> 2.16881240361846, 2.20727073247015, 2.27771608519709, >> 2.3649601141941, >> >>>>> 2.44210984856767, 2.52466349543977, 2.63982954290745, >> 2.71828906773926 >> >>>>> ), TWL_50 = c(2.38302354555823, 2.43142793944275, 2.45733044901087, >> >>>>> 2.53057109758284, 2.61391337469939, 2.71040967066483, >> 2.82546443373866, >> >>>>> 2.9709907727849, 3.1785797371187, 3.33227647990861), TWL_95 = >> >>>>> c(2.63753852023063, >> >>>>> 2.7080249053612, 2.75483681166049, 2.86893038433795, >> 2.97758282474101, >> >>>>> 3.14541928966618, 3.3986143008625, 3.68043269045659, >> 4.09571655859075, >> >>>>> 4.57299670034984), year = c(2010, 2020, 2030, 2040, 2050, 2060, >> >>>>> 2070, 2080, 2090, 2100)), row.names = c(NA, 10L), class = >> "data.frame") >> >>>>> >> >>>>> [[alternative HTML version deleted]] >> >>>>> >> >>>>> _______________________________________________ >> >>>>> R-sig-Geo mailing list >> >>>>> R-sig-Geo@r-project.org >> >>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >> >>>>> >> >>>> >> >>>> >> >>>> >> >> >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-sig-Geo mailing list >> R-sig-Geo@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >> > [[alternative HTML version deleted]] _______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo