dieghernan / tidyterra

tidyverse and ggplot2 methods for terra spatial objects

Home Page:https://dieghernan.github.io/tidyterra/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JOSS Review: Johnson

mikejohnson51 opened this issue · comments

@dieghernan what a cool package you've made. I use it regularly and am happy to be a part of this review process. I think the paper and page website stand on their own and are good as is. Below are few points that I think would help better convey the utility you are bringing to the R spatial ecosystem. All are optional in my mind to be considered for publication in JOSS.

Statement of need:

  • I would add a little more about rasterVis and stars plotting and how you provide similar key concepts in a widely used plotting package (ggplot) for the more modern spatial data structure (terra) and data manipulation methods (dplyr). You are in many ways providing the core of what sf gave vector data to the terra world! The text dances around this but I think what you have done allows you to be more direct.
  • The popularity and utility of rasterVis as an supplementary package to raster is somewhat analogous to this paradigm and speaks to the need for more advanced plotting methods, and the value of an addition in the ggplot2 ecosystem
  • Your current text makes it seem like the primary addition (over rasterVis and ggspatial) is SpatVect integration (see example of use point 3) but equally important (I think) is that (most) R users do not have to learn a new plotting syntax to engage with raster data. That is super powerful! When I picked up yours, it was instantly familiar, In not slight to those other packages, I regularly had to bring up the help pages to get what I wanted. I dont suspect I am alone in this and the familiarity is what makes tidyterra cool.

Performance note

  • Out of scope for this, but in the future having some auto resampling like stars would be slick for plotting. If the performace issues are only related to data manipulation then Id state this explicilty.

Example of use

  • Since this is an actively maintained package, I would give the remotes::install_github() option as well
  • Personally one of the things I love most about your package is the palettes you added. I would prefer to see those mentioned in the text. A broader point is that the supplementary website is wonderful, I would like to see the Articles highlighted in the paper text with hyperlinks if possible.
  • Adding an additional brief example using a SpatVect object and more traditional dplyr (mutate/select/filter) example would be really powerful to show how you’ve been able to add much of what makes sf so unique, to the terra paradigm. As it stands, the rename example is ok, but weak compared to the power your package offers.

Hi @mikejohnson51:

First of all, thanks for this great feedback. I did some modifications in line with your comments, however I assumed also your statement considering all of them optional since currently I am not able to dedicate much time due to personal reasons. See below a short summary of the changes (see also https://github.com/dieghernan/tidyterra/compare/77a268d..144c6ab)

  • I tried to emphasize other features of tidyterra vs rasterVis/ggspatial, as the capacity of create faceted maps (that I think is really useful in the context of SpatRasters), contours, auto-conversion of spatial layers to the same CRS and by last the support for SpatVector objects.
  • I made clear that the performance may be low on the manipulation as you already guessed. The solution you proposed for plotting (re-sampling) is efectively implemented since the initial version of the package in line with terra::plot().
  • Agree on your view of the example, I included an additional one with a mutate/select worflow, the overlay of a SpatVector
    and a contour plot of the result, trying to present a more complex map.
  • I added a final section highlighting the documentation and the vignettes, including a explicit reference to the article that showcases all the palettes.

Best, Diego

I really like the new example. Thanks for making the time! I think this looks great for JOSS.

Closed, thanks!