ropensci / software-review

rOpenSci Software Peer Review.
291 stars 104 forks source link

submission: spatsoc #237

Closed robitalec closed 5 years ago

robitalec commented 6 years ago

Summary

The spatsoc package detects spatial and temporal groups in GPS relocations. For social network analysis, spatsoc can be used to build proximity-based social networks and perform network randomizations. It can also be used to detect potential interactions between individuals, shared space use, etc.

Package: spatsoc
Title: Group Animal Relocation Data by Spatial and Temporal Relationship
Version: 0.1.0
Authors@R: c(
    person("Alec L.", "Robitaille", role = c("aut", "cre"), email = "robit.alec@gmail.com"),
    person("Quinn", "Webber", role = c("aut")),
    person("Eric", "Vander Wal", role = c("aut"))
    )
Description: Detects spatial and temporal groups in GPS relocations. 
    It can be used to convert GPS relocations to
    gambit-of-the-group format to build proximity-based social networks.
    In addition, the randomizations function provides data-stream
    randomization methods suitable for GPS data.
Depends: R (>= 3.4)
License: GPL-3 | file LICENSE
Encoding: UTF-8
LazyData: true
Imports: data.table (>= 1.10.5),
    sp,
    rgeos,
    adehabitatHR,
    igraph,
    methods
Suggests: testthat,
    knitr,
    rmarkdown
SystemRequirements: GEOS (>= 3.2.0)
RoxygenNote: 6.0.1
VignetteBuilder: knitr
Roxygen: list(markdown = TRUE)
BugReports: https://www.gitlab.com/robit.a/spatsoc/issues
URL: https://spatsoc.gitlab.io

https://gitlab.com/robit.a/spatsoc/

(also mirrored to https://github.com/robitalec/spatsoc)

data munging and geospatial - because it manipulates a specific type of spatial data (GPS relocations) to assist social network analysis

The spatsoc package targets researchers using social network analysis with animal relocation datasets. The applications include disease transmission modeling, interactions between individuals, community structure.

There are no other R packages for creating social networks from GPS relocations. Other R packages exist for social network analysis, notably igraph and asnipe, but there is no overlap in functionality. spatsoc can be viewed as a precursor step before passing the outputs to the aforementioned packages.

Requirements

Confirm each of the following by checking the box. This package:

Publication options

Detail

There are no NOTEs, WARNINGs, or ERRORs.

lmullen commented 6 years ago

Editor checks:


Editor comments

@robitalec et al. Thanks for your submission. I will be editing this submission.

Local R CMD check looks fine.

There are 3 warnings and 1 note reported by R CMD check on your CI service (e.g., the most recent job). Please fix the WARNINGs, and the NOTE if possible, before the review begins.

There are several misspellings reported by spelling::spell_check(). Those should be corrected as well.

Good work on the test coverage.

Selection from goodpractice::gp()

It is good practice to

  ✖ not import packages as a whole, as this can cause name clashes between
    the imported packages. Instead, import only the specific functions you need.

This appears to be coming from a full import of the data.table package. Can you import only specific functions from that package?

I have begun soliciting reviewers and will let you all know when the review begins.

robitalec commented 6 years ago

Thanks @lmullen.

I've fixed the misspellings. There are some leftovers detected by spelling::spell_check_package but they are function arguments (e.g.: datetime, DT), last names, and "et al.".

We're importing the full data.table package because we use fread and data.table syntax in the tests and throughout the package's functions. It also does not have any of its own dependencies.

I've added @importFrom for all other functions (from other packages) used in the package.

I fixed the NOTEs and WARNINGs in the ci. I also added an r-devel image so we are testing on both the latest release and development version of R. Here is the latest pipeline.

lmullen commented 6 years ago

@robitalec Could you please add an "under review" badge to your repository? Here is the code:

[![](https://badges.ropensci.org/237_status.svg)](https://github.com/ropensci/onboarding/issues/237)
lmullen commented 6 years ago

Reviewer: @pmnatural Reviewer: @FilipeamTeixeira Due date: 2018-08-16

Thanks to our two reviewers for agreeing to undertake this peer review. As a reminder, you can find the reviewers' guide here, and you can ping me with questions.

robitalec commented 6 years ago

Badge added.

Thank you @pmnatural and @FilipeamTeixeira!

FilipeamTeixeira commented 6 years ago

@robitalec Here's my review. If there's something you feel like correcting please let me know. There's still quite some stuff to go through but for now I think that it's better to start from what I mention below and to go from there.

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Functionality

Final approval (post-review)

Estimated hours spent reviewing:


Review Comments

test_check() gives 16 warnings with the following arguments:

test-pts.R:214: warning: withinGroup is not returned to the user
found duplicate id in a timegroup and/or splitBy - does your group_times threshold match the fix rate?

test-pts.R:229: warning: no rows are added to the result DT
found duplicate id in a timegroup and/or splitBy - does your group_times threshold match the fix rate?

test-pts.R:245: warning: only one column added to the result DT
found duplicate id in a timegroup and/or splitBy - does your group_times threshold match the fix rate?

test-pts.R:260: warning: group column is added to result
found duplicate id in a timegroup and/or splitBy - does your group_times threshold match the fix rate?
────────────────────────────────────────────────────────────────────────────────────────
✔ | 22   1   | test randomizations [2.6 s]
────────────────────────────────────────────────────────────────────────────────────────
test-random.R:11: warning: (unknown)
found duplicate id in a timegroup and/or splitBy - does your group_times threshold match the fix rate?
────────────────────────────────────────────────────────────────────────────────────────
✔ | 27   11   | test group_times [3.7 s]
────────────────────────────────────────────────────────────────────────────────────────
test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length

test-time.R:71: warning: threshold with minutes fails with > 60
number of items to replace is not a multiple of replacement length
────────────────────────────────────────────────────────────────────────────────────────

══ Results ═════════════════════════════════════════════════════════════════════════════
Duration: 64.2 s

OK:       163
Failed:   0
Warnings: 16`
Skipped:  0

Documentation

It would be interesting to have a help(spatsoc) available. This can be easily achieved and it saves the users from headaches or from having to go to the gitlab/github account to find some basic information about your package.

Same goes for the possibility of running a vignette("spatsoc").

Importing data

In the vignettes you start by importing the spatsoc example dataset. However, you're missing the library(data.table) as it is required by the function following your code. This might seem obvious for people familiar with the data.table package, but not everybody might be aware of it.

I would also recommend to create a function which imports data automatically. It's just two lines of code, but it might make the difference for unexperienced users. If I'm not aware that I have to use the data.table format, or even to convert the dates to a POSIXct format, it will take a while until I would understand what the error is. So you either have that at the beginning of your documentation (now it's at the end), or you create a specific function which does that for the user, and instruct the users that they should use that function.

Functions

group_times

Running the function with minutes goes well, but with hours and days gives me a warning. As for hours, I get warnings: Warning message: In group_times(DT, datetime = "datetime", threshold = "2 hours") : block, timegroup columns found in input DT and will be overwritten by this function

As for days I get the following warnings: Warning messages: 1: In group_times(DT, datetime = "datetime", threshold = "5 days") : block, timegroup columns found in input DT and will be overwritten by this function 2: In group_times(DT, datetime = "datetime", threshold = "5 days") : the minimum and maximum days in DT are not evenly divisible by the provided block length

All functions

Summary

You're going on the right path, but there're some changes to be made. If there's something you don't agree with or something I've missed please let me know. As soon as you fix those issues or in case I'm wrong, explain what I'm missing, I'll proceed with the rest of the review.

Thank you

robitalec commented 6 years ago

Thank you @FilipeamTeixeira.

In response to just the tests for now: I'm having a bit of trouble reproducing those test results. We are passing all tests locally on Linux, Mac and Windows, on our GitLab CI and through CRAN. What OS are you using? Did you get these same results with devtools::test()?

Just hoping to reproduce them locally so I can fix them!

I will update you as I work through the rest of your comments.

robitalec commented 6 years ago

I just released our FAQ vignette (available here and here). It was in the works, but your points made a great incentive to fill it in and make it public. Still lots of points to fill in and things to translate to the function documentation but figured I would mention it as I think it clears up some of your points @FilipeamTeixeira.

In addition, I changed some of the warnings to messages. I think I was using warnings everywhere, where in some cases, messages are preferred.

I added a help(spatsoc).

I will keep you posted as I continue to improve spatsoc thanks to the feedback.

FilipeamTeixeira commented 6 years ago

Dear @robitalec, first of all thank you for your work on this. Regarding the tests indeed they were ran with devtools::test() which uses the package testthat. I'm using macOS Sierra 10.12.6 but the test results don't seem to be OS dependant. I'm using as well the latest testthat and devtools version, just in case.

Regarding the vignettes and the FAQs, thank you for adding it. Unfortunately I still can't get the vignettes by typing vignettes("spatsoc"). Actually the vignettes aren't even listed on the browseVignettes() function.

As for the warnings vs messages, or even the content of the help files, I recommend you to go through what I wrote before and if there's something that wasn't clear enough please let me know as I can explain better why I found the messages and the instructions not clear enough. However, to summarise it, my comments were mainly related to the lack of information on the output we get when using your package. I believe that a strong package shouldn't be exclusively for experts, but for anyone who might have to use it. Ask someone who never used the package to do something with it, and ask them about their interpretation on the results.

Nevertheless, I'll wait as well for the other reviewers to state their comments as well.

I'll keep on going through your package and I'll let you know something as soon as possible.

lmullen commented 6 years ago

Glad to see this back and forth with the aim of improving the package. I'll provide some editorial commentary when all the reviews are in (still plenty of time for that).

robitalec commented 6 years ago

@FilipeamTeixeira I've updated the README/website with a better install line:

devtools::install_git('https://gitlab.com/robit.a/spatsoc.git', build_vignettes = TRUE)

I didn't realize, but devtools doesn't build vignettes automatically. See this note to devtools users. Let me know if that helps with browseVignettes("spatsoc").

Thanks for getting back to me concerning OS/test environment. I wonder if it isn't a timezone or locale issue... because they all appear to be related to group_times. Still trying to reproduce those results on my end. Keep you posted.

Lots of documentation improvements today, more to come!

robitalec commented 6 years ago

EDIT: my apologies @lmullen, the tag makes sense - I interpreted 5/awaiting-reviewer(s)-response as reviewers' reviews instead of author responses to reviewers..


@lmullen should the tag currently be 5/awaiting-reviewer(s)-response and not 3/reviewer(s)-assigned?

FilipeamTeixeira commented 6 years ago

@robitalec Any news on the updated package? I would like to go through it once again, but before it would be nice to see those changes mentioned above made.

robitalec commented 6 years ago

@FilipeamTeixeira I think I was confused about the status of the reviews and deadline date stated by @lmullen. Apologies all for the delay.. Moving forward:

Were you able to see the vignettes with the updated install line?

Some of the changes were previously mentioned, as I completed them, but here is a full list of all changes since your initial review:

One thing I recognize is missing right now is how spatsoc integrates with other social network analysis tools/R packages. A vignette is in the works...

As for the problems you initially reported with the tests, I still haven't been able to reproduce them locally (with Mac/Windows/Linux/CI/CRAN tests, I get 0 errors/warnings/notes)... I'm not sure how to address these problems.

Excited to hear more feedback from reviewers @pmnatural and @FilipeamTeixeira. Thank you!

FilipeamTeixeira commented 6 years ago

My apologies for being almost a month late with my review, but there were some professional reasons contributing for this delay. I'll have a final review by Sunday the 9th.

lmullen commented 6 years ago

@robitalec Yes, as you figured out the current tag is correct.

@FilipeamTeixeira Thanks for the update, and for going back and forth with @robitalec about these changes.

I've also been in correspondence with @pmnatural about her review. So everything is proceeding just fine.

FilipeamTeixeira commented 6 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Functionality

Final approval (post-review)

Estimated hours spent reviewing: 5h


General comments

I do believe that @robitalec has put a lot of work into this package, and I do appreciate the communications we had. There were clear improvements and a will to make this package better than before. The only thing I'm slightly concerned about is regarding how clear this package's aims and objectives are. Scientifically I understand them, but if you're someone who simply ends up having to use this for a not so direct reason, and if that person is not acquainted with this subject, they will surely struggle with it. I'm a strong supporter of doing science not just for experts but for everybody, meaning that everything has to be simplified.

For me you have a not fully convinced green light to go. I don't say "not fully convinced" as a derogatory term, but as I do believe that there's a lot in this package that could be improved. Mainly the code readability which I have to say that with all the if statements and unnecessary syntax, made it difficult to read, and regarding the vignettes and output instructions. In any case the package works, serves its purpose, and from here there's only space to grow and to improve.

lmullen commented 6 years ago

@FilipeamTeixeira Thank you for the thorough review. @robitalec Please let us know if you have any questions or need any clarification about these suggested changes. You can respond formally to both reviews when they are in.

One suggestion. I disagree with @FilipeamTeixeira about this point:

Another suggestion would be to remove the sp::, adehabitatHR::, etc, from your code. You already import it before so there's no need to do it twice.

It is better practice to keep the namespaces on the function calls and remove the imports of the functions.

FilipeamTeixeira commented 6 years ago

@lmullen indeed. I think it's a matter of choice. Wickham follows your syntax while Maechler does the opposite. In any case, they don't need both approaches, and that was my point.

pmnatural commented 6 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

For packages co-submitting to JOSS

The package contains a paper.md matching JOSS's requirements with:

  • [ ] A short summary describing the high-level functionality of the software
  • [ ] Authors: A list of authors with their affiliations
  • [ ] A statement of need clearly stating problems the software is designed to solve and its target audience.
  • [ ] References: with DOIs for all those that have one (e.g. papers, datasets, software).

Functionality

Final approval (post-review)

Estimated hours spent reviewing:

10 (it´s my first review))


Review Comments

lmullen commented 6 years ago

@pmnatural Thanks for you review. Much appreciated.

@robitalec Could you please take two weeks (until 9/25) to make any necessary changes, document them with links to GitHub issues or the like, and respond to the reviewers' comment? After that I will ask the reviewers to respond to your changes.

robitalec commented 6 years ago

@pmnatural and @FilipeamTeixeira Thank you for the reviews.

@lmullen understood. I will post here as soon as it is completed.

I may have some questions regarding some points in the reviews, keep you all posted.

Thank you!

robitalec commented 6 years ago

Apologies for the late response.

I will separate the responses by reviewers in the two following comments.

robitalec commented 6 years ago

Thank you @FilipeamTeixeira for your review.

To address some of the broader comments about the package's aims, simplification and clarity, I have added a "Using spatsoc in social network analysis" vignette and a function for generating a group by individual matrix (get_gbi, see: !2) directly from the outputs of spatsoc functions.

The vignette shows temporal and spatial grouping, generation of observed and random networks and calculation of network metrics. This document covers a workflow of using spatsoc for social network analysis with GPS data that should greatly improve the user's experience and spatsoc's ease of use.

You can see it online at http://spatsoc.gitlab.io/articles/using-in-sna.html or with a devtools install of the latest version.


To address the specific comments:

The vignettes still don't work for me, unless I build them with the code you've mentioned before. They should always work in case you want to include them.

Both of the following approaches to installing the package and viewing vignettes work for me. I included remove.packages to ensure we are starting fresh. Please let us know if you are still unable to browse the vignettes with these chunks.

## With CRAN
remove.packages('spatsoc')
install.packages('spatsoc')
browseVignettes('spatsoc')

## With devtools
remove.packages('spatsoc')
devtools::install_git('https://gitlab.com/robit.a/spatsoc.git',
                      build_vignettes = TRUE)
browseVignettes('spatsoc')

An import function would make it much better than asking people to import their data using the set of parameters you mention. Most packages have it and it's not difficult at all. It would allow you as well to control classes and to have a more matured package.

We explicitly did not offer an import function for a few reasons:

Here are examples of other packages that use GPS data and require date formatted columns:

Not necessarily a problem but I would have replaced the series of if statements by the case_when function from the dplyr package. It improves readability and so on.

I appreciate that many if statements is not as readable as dplyr::case_when but we are hoping to keep the list of dependencies short and would prefer to not depend on dplyr for a single function.

Another suggestion would be to remove the sp::, adehabitatHR::, etc, from your code. You already import it before so there's no need to do it twice.

I agree with Lincoln in preferring the style of sp:: and adehabitatHR::. I think this originally came in when I used the goodpractice::gp() function highlighting function calls like dist that weren't imported. I removed those additions and the package now uses only the sp:: style.

fdf6bc0c5

I also don't understand why the [] on your return() functions. I might be terribly mistaken but there's no clear advantage on doing that.

Since we are returning the DT with, for example: 'timegroup', 'group' columns added, in those functions, we use the [] to print the first 5 and last 5 rows of the output data.table to the user's console.

Warnings appear, but be really really careful when suppressing them. I have some issues with doing so, and instead I would recommend to suppress one specific message you get, which you know that it has no added value, instead of suppressing all warnings.

I have fixed the suppressed message to filter only for the message we are intending to suppress from build_lines. This way, any other warnings will come through.

a9cb6de

I'm also not always sure what is returned after each function. It would be interesting to explain that as well.

I have improved the documentation and ensured that each function's man page describes exactly what is returned by the function in the first line of 'Value' followed by a more detailed description. Please let us know if it unclear in anyway or lacking in detail.

robitalec commented 6 years ago

Thank you @pmnatural for your review.

First off, a question: what is missing for the Community guidelines?


Detailed responses:

Vignette and help for the different functions are available now and have greatly improved. Every variable in the output is explained in the help.

Thank you @pmnatural. This review process has helped us highlight weak points in the documentation and functions and I'm glad to be moving forward with a better version of the package.

An Import function would be really useful which puts data into a DT class and time in the correct format and gives a warning when data is unprojected (eg. lat-long coordinates) and forces to input a projection, e.g. as in build_lines.

I won't repeat all points from my response to @FilipeamTeixeira about the potential import function, please see above.

build_lines does not explicitly require projected coordinates because it simply creates a SpatialLines object from a data.table of coordinates by individual.

In the case of group_lines, rgeos::gBuffer returns a warning that the GEOS expects planar coordinates.

In the case of group_polys and build_polys, I can't find any explicit statement in adehabitatHR documentation or vignettes about the requirement for planar coordinates though they do mention unin and unout as being units of "m", "km" or "m2", "km2", "ha". No warnings are returned when unprojected coordinates are provided to the adehabitatHR::mcp or adehabitatHR::kernelUD, so I clarified the expectations in the faq and function documentation.

11a5703 934446 0488aae

A type of summary message (or function) for the imported data could be included, particularly considering

Separate from an import function, this type of summary information should be straightforward to glean from the input data using the follow lines of code.

total number of individual and groups, ...

# Number of unique individuals
DT[, uniqueN(ID)]

# Number of unique individuals by group
DT[, uniqueN(ID), by = group]

the total of time involved, as it is needed to choose the time grouping periods properly

Here is an example of evaluating the temporal range of the data but we'd like to emphasize that the selection of a temporal threshold should have more to do about the biology of the study species, system and hypotheses of the user.

DT[, range(datetime)]

the maximum extent of the data or the bounding box of the points, relocations or GPS fixes, as it will help to chose reasonable distance thresholds when doing any of the spatial groupings, particularly when data does not come from an sp object.

Similar to temporal threshold, the distance threshold should be linked to the specific system and species.

# All individuals
DT[, .(minX = min(X),
       maxX = max(X),
       minY = min(Y),
       maxY = max(Y),)]

# By individual
DT[, .(minX = min(X),
       maxX = max(X),
       minY = min(Y),
       maxY = max(Y),),
   by = ID]
lmullen commented 6 years ago

Thank you for these responses,@robitalec.

@pmnatural and @FilipeamTeixeira Could you please respond to these comments and let us know of any needed fixes by October 5 (about one week)?

pmnatural commented 6 years ago

Hi @robitalec Regarding the community guidelines, I simply forgot to check it down. In relation to a data summary useful for defining parameters to use with spatsoc, I still think having a function to do this would greatly improve the usage. Even knowing what time or distance make sense for a species or particular problem, you still need to get the bounds of your dataset before running a spatsoc analysis if you don´t want error messages to appear because you chose a wrong time period or distance. With the code presented in the examples, you could just have all in a function that outs puts a list with all the results. If this seems too complicated, disregard my suggestion, but include the code somewhere as help.

robitalec commented 6 years ago

Ok, good to know concerning community guidelines.

I have added the summary information code chunks to the FAQ. I think this section will grow as we come up with more information that might be useful to help users understand their input data for functions provided by spatsoc. This also makes it simpler to add more chunks in the future. 6e982e

I think this is a good example of how to select spatial distance thresholds for functions in spatsoc:

We defined social associations based on spatial proximity of active lizards. We considered a direct social contact occurred if lizards were within 2 m of each other. [...] We determined a threshold distance between GPS location records to deduce direct social contact. Because each GPS device had a median precision of 6 m (see above) we considered two lizards could be within 2 m of each other if the recorded locations were up to 14 m apart. [...]

from: Leu et al., 2010

lmullen commented 5 years ago

Hi @pmnatural and @FilipeamTeixeira. Have @robitalec's changes satisfied your critiques above? Are there any remaining issues to be fixed before you are willing to accept this package?

lmullen commented 5 years ago

Hi @pmnatural and @FilipeamTeixeira: Can you please confirm that that the changes made have satisfied your critique and confirm whether you now recommend the package for acceptance?

FilipeamTeixeira commented 5 years ago

@lmullen I went through the changes and through some of the comments and my position stands as before. I recommend the package for acceptance. Thank you for your patience and for waiting for my feedback.

robitalec commented 5 years ago

Thank you @FilipeamTeixeira for the feedback throughout this onboarding process.

pmnatural commented 5 years ago

I recommend the package for acceptance. The clarification of options and examples on using spatsoc for social network analysis has been greatly improved. Thanks you for your patience in waitung for this acceptance.

lmullen commented 5 years ago

Approved! Thanks @robitalec for submitting and @pmnatural and @FilipeamTeixeira for your reviews! 🚀

To-dos:

[![ropensci_footer](https://ropensci.org/public_images/ropensci_footer.png)](https://ropensci.org

Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them "rev"-type contributors in the Authors@R field (with their consent). More info on this here.

Welcome aboard! We'd also love a blog post about your package, either a short-form intro to it (https://ropensci.org/tech-notes/) or long-form post with more narrative about its development. (https://ropensci.org/blog/). If you are interested, @stefaniebutland will be in touch about content and timing.

We've started putting together a gitbook with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding. Please tell us what could be improved, the corresponding repo is here.

robitalec commented 5 years ago

Thank you @pmnatural for your feedback.

lmullen commented 5 years ago

@robitalec I’ve added you to the rOpenSci organization and the spatsoc team.

robitalec commented 5 years ago

Thank you @lmullen, I really appreciate your efforts as an editor during this process.

We'd definitely be interested in a blog post.

I noticed I can't access the settings tab... do I have full access to the repository?

lmullen commented 5 years ago

@robitalec Great. Thanks for doing that. I've just made you an admin on the spatsoc repository so you should have access to the settings now. That can't happen until after the repository is transferred.

robitalec commented 5 years ago

Perfect! Thank you @lmullen.

stefaniebutland commented 5 years ago

We'd definitely be interested in a blog post.

This is great to hear @robitalec. This link gives you many examples of blog posts by authors of onboarded packages so you can get an idea of the style and length you prefer: https://ropensci.org/tags/review/. Tech Notes are here: https://ropensci.org/technotes/.

Here are some technical and editorial guidelines for contributing a blog post: https://github.com/ropensci/roweb2#contributing-a-blog-post. We ask that you submit your draft post via pull request a week before the planned publication date so we can give you some feedback. I have 2018-11-13 and 2018-11-27 available for publication. Would one of those work for you?

Happy to answer any questions.

robitalec commented 5 years ago

Thank you for the information @stefaniebutland. 2018-11-27 would work for us.

I will let you know if we have any questions.

stefaniebutland commented 5 years ago

@robitalec Will you be able to submit a draft via pull request for review soon? Planned publication is 2018-11-27. Don't hesitate to let me know if you need to change that date.

robitalec commented 5 years ago

Thanks @stefaniebutland, I think we'll need to delay the draft. I was hoping to have it today, but it isn't ready yet... Sorry for the late notice.

stefaniebutland commented 5 years ago

Not a problem! Do you think a week from today is good timing for draft submission? 2018-11-27 for publication >= a week after that? Or would you prefer a bit later?

robitalec commented 5 years ago

Yes that would be perfect. Thank you!

stefaniebutland commented 5 years ago

Blog post: Detecting spatiotemporal groups in relocation data with spatsoc

stefaniebutland commented 5 years ago

@robitalec Neat outcome of your package & post. I just spoke with a colleague, Stephanie O'Donnell, who is the Community Manager for https://www.wildlabs.net/ (https://twitter.com/wildlabsnet) and noticed their webinar next week has Sarah Davidson, Data Curator at Movebank as a speaker: https://www.wildlabs.net/resources/community-announcements/wildlabs-virtual-meetup-event-big-data-conservation-dec-12th

I told Steph about your package and blog post and she would like to re-post it with permission of you and co-authors (she will link back to rOpenSci version as well). She is a trusted peer and I'm quite impressed with the way she handles WILDLABS community. Maybe this would get even more eyes on your work. Let me know what you think.

Apparently their webinars have quite active 45min discussions after speakers so worth attending if it looks to be of interest to you.

robitalec commented 5 years ago

@stefaniebutland That would be really cool and we are glad to have the package spread through another community. None of us had heard of WildLabs and this webinar seems really interesting. We'll be checking it out for sure. Thank you! (Let us know when there's a link!)