[R-sig-Geo] Implementing a rolling window for stars object

Micha Silver t@v|b@r @end|ng |rom gm@||@com
Wed Oct 23 21:12:14 CEST 2019


Thanks to both of you for identifying the problem so quickly, and 
offering a workaround!


On 23/10/2019 21:25, Vijay Lulla wrote:
> Andy, you're spot on!  This is because stars:::`[.stars` is only 
> looking for variables and not expressions (line 44 in the function!).  
> Your example gets around it by creating an object in the environment 
> (parent.frame) which is then consulted in the `eval`.  Sorry for tmi!
> HTH,
> Vijay.
>
> On Wed, Oct 23, 2019 at 2:22 PM Andy Teucher <andy.teucher using gmail.com 
> <mailto:andy.teucher using gmail.com>> wrote:
>
>     I’m fairly certain this is a bug in stars; I opened an issue here:
>     https://github.com/r-spatial/stars/issues/223
>     <https://github.com/r-spatial/stars/issues/223>
>
>     Cheers,
>     Andy Teucher
>
>     > On Oct 23, 2019, at 10:42 AM, Andy Teucher
>     <andy.teucher using gmail.com <mailto:andy.teucher using gmail.com>> wrote:
>     >
>     > Interesting - there’s some rlang/tidy evaluation trickery going
>     on there that I couldn’t quite figure out (I think it might be
>     searching for yr in the wrong environment), but defining your
>     range as a single variable, and putting that in the square
>     brackets seems to work for me:
>     >
>     > rng <- yr:last_yr
>     > stars_window = ci_stars[,,,rng]
>     >
>     >
>     >> On Oct 23, 2019, at 10:20 AM, Micha Silver <tsvibar using gmail.com
>     <mailto:tsvibar using gmail.com>> wrote:
>     >>
>     >>
>     >> On 23/10/2019 19:30, Andy Teucher wrote:
>     >>> Hi Micha,
>     >>>
>     >>> I can see two problems immediately with your code:
>     >>> 1. you are using a double-colon (yr::last_yr) - the double
>     colon is used for looking for an object in a package, so it is
>     looking for object ‘yrs’ in package ‘yr’, which obviously doesn’t
>     make sense. Use a single colon to create a range (like you did
>     with 2:6)
>     >>> 2.  the object ‘last_yr’ is never defined, so even if you used
>     a single colon to define the range yr:last_yr, it would fail as it
>     would not be able to find object ‘last_yr’
>     >>>
>     >>
>     >> Thanks,
>     >>
>     >> I fixed those typos (corrected script attached) and I still get
>     this error:
>     >>
>     >>
>     >> micha using tp480:R$ Rscript stars_window.R
>     >> Loading required package: abind
>     >> Loading required package: sf
>     >> Linking to GEOS 3.7.1, GDAL 2.4.0, PROJ 5.2.0
>     >> Error in eval(rlang::expr(x[[i]][!!!args])) : object 'yr' not found
>     >> Calls: RunMK -> [ -> [.stars -> structure -> eval -> eval
>     >> Execution halted
>     >>
>     >>
>     >>
>     >>> Cheers,
>     >>> Andy Teucher
>     >>>
>     >>>> On Oct 23, 2019, at 8:28 AM, Micha Silver <tsvibar using gmail.com
>     <mailto:tsvibar using gmail.com> <mailto:tsvibar using gmail.com
>     <mailto:tsvibar using gmail.com>>> wrote:
>     >>>>
>     >>>> I am trying to run a function (mk.test to find MannKendall
>     trends) using st_apply over a "rolling" window for a time series
>     of rasters in a stars object.
>     >>>> When I use subscript notation to slice out the window
>     dimension with a looping variable I get an error:
>     >>>>
>     >>>> Error in loadNamespace(name) : there is no package called ‘yr’
>     >>>> Calls: [ ... tryCatch -> tryCatchList -> tryCatchOne ->
>     <Anonymous>
>     >>>> Execution halted
>     >>>>
>     >>>> However If I replace the subscript with integers it works
>     fine. (see attached)
>     >>>> What is the correct way to work this out?
>     >>>>
>     >>>> Attached is a reprex with a small subset of my data. (The
>     script starts with a long structure, code is at the end)
>     >>>>
>     >>>> Thanks
>     >>>> --
>     >>>> Micha Silver
>     >>>> Ben Gurion Univ.
>     >>>> Sde Boker, Remote Sensing Lab
>     >>>> cell: +972-523-665918
>     >>>> <stars_window.R>_______________________________________________
>     >>>> R-sig-Geo mailing list
>     >>>> R-sig-Geo using r-project.org <mailto:R-sig-Geo using r-project.org>
>     <mailto:R-sig-Geo using r-project.org <mailto:R-sig-Geo using r-project.org>>
>     >>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>     >>>
>     >> --
>     >> Micha Silver
>     >> Ben Gurion Univ.
>     >> Sde Boker, Remote Sensing Lab
>     >> cell: +972-523-665918
>     >>
>     >> <stars_window.R>
>     >
>
>
>             [[alternative HTML version deleted]]
>
>     _______________________________________________
>     R-sig-Geo mailing list
>     R-sig-Geo using r-project.org <mailto:R-sig-Geo using r-project.org>
>     https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
>
> -- 
> Vijay Lulla
>
> Assistant Professor,
> Dept. of Geography, IUPUI
> 425 University Blvd, CA-207C.
> Indianapolis, IN-46202
> vlulla using iupui.edu <mailto:vlulla using iupui.edu>
> ORCID: https://orcid.org/0000-0002-0823-2522
> Webpage: http://vijaylulla.com

-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918



More information about the R-sig-Geo mailing list