
Changelog
moveVis 1.0.1
Minor improvements.
New features:
- Added argument
fill_na_valuestoalign_moveto allow control for whetherNAvalues of columns at interpolated locations should be filled or not.NAvalues are filled with the value of the temporally closest location.
moveVis 1.0.0
Updating moveVis to support move2 for representing trajectory data and terra for representing raster data.
Changes:
- Argument
resofalign_movenow expects a units object for representing the target time resolution (see?moveVis::align_move). -
align_movenow relies ons2for spatio-temporal interpolation. -
frames_spatialnow expectsterraSpatRasterDatasetfor multi-temporal raster data via therargument. See?moveVis::frames_spatialfor details. - Arguments
crsandcrs_graticulewere added toframes_spatialto control the CRS used by frames (see?frames_spatialfor details). With this version onwards, the CRS of frames created usingframes_spatialis no longer determined by the CRS ofmbut instead by argumentcrs. All spatial components of frames will be transformed to this CRS if needed. The standard CRS ofmoveVisframes is Web Mercator (EPSG 3857), as this CRS is the standard CRS of open base map products from the web. This default setting ensures that map labels are not distorted. - Argument
extofframes_spatialnow expect ansfbboxobject with same CRS am. -
render_framenow usescoord_sfinstead ofcoord_cartesianto correctly render different Coordinate Reference Systems. -
join_framesnow usespatchworkinstead ofcowplotto combine plots in frames. Thus, argumentsguides,design,render_all_legendsand...were added to controlpatchwork::wrap_plots. -
moveVisdocumentation was updated to reflect the changes. -
moveVisexample code was updated, usingmove2instead ofmoveandterrainstead ofrasterand to reflect the changes. - The way dateline crossings are handled has been revised:
moveVisnow relies onsfto compute cross-dateline paths in Lat/Lon instead of doing this internally. Be advised that it is recommended to use a projection suiting your area instead of enabling dateline crossing in Lat/Lon (see?frames_spatialfor details). - Example movement data were updated to the
move2class - Example raster data were updated to the
terraSpatRasterDatasetclass and an additional example comprised of disrecte values was added (see?moveVis::example_datafor details) -
s2,move2,terra,units,patchwork,ggnewscale,basemapsandrlangwere added as imports -
move,rasterandcowplotwere removed as imports
Deprecations:
- Arguments
r_listandr_timesofframes_spatialare deprecated. Use argumentrinstead and supply aterraSpatRasterDatasetto bundle multiple multi-layered rasters of a time series. See?moveVis::frames_spatialfor details. -
df2moveandsubset_movewere deprecated in favor ofmove2’s interface for coercion and subsetting.
Distribution:
-
moveViswas added to r-universe for continuous testing and integration. Like on CRAN, platform-specific binaries are build there to ease installation. You can now install the most recentmoveVisversion from r-universe usinginstall.packages("moveVis", repos = '16eagle.r-universe.dev')
moveVis 0.10.6
New S3 class and methods to represent frames, lazy plotting, improvements.
New features:
- Frames are now represented by a new native
moveVisS3 class that is outputted by allframes_*()functions such asframes_spatial(). The class comes with native printing and indexing methods. Frames can be easily subsetted ([), plotted ([[) and checked for length (length()). The default print method displays a summary of the created frames. - With the native
moveVisclass, frames are now rendered lazy when plotted and not being hold in memory. As data duplication has been reduced to the minimum, this change should reduces memory use offrames_spatial(). All functions work with the new class. This change mostly effects how things work under the hood and does not alter the user interface. - added documentation search using
DocSearchto web page - Argument
digitofalign_move()is deprecated, since digits are now calculated automatically. - Multiple improvements to
align_move(), including printing of the detected resolution to which data are aligned. - Added
path_colourstoframes_graph()to be able to colour paths equal to paths inframes_spatial() - Added
basemapsas dependency for downloading and caching basemaps, removed native basemap retrieval and plotting functions - Added
trace_sizeas argument toframes_spatial()to manually control trace size instead of having to use the same size astail_size, e.g. in cases where a tail is not used (i.e. whentail_length=0)
Deprecations:
- Argument
mofadd_timestamps()has been deprecated since the newmoveVisclass contains all necessary data to obtain frame times. Thus, it is not needed anymore and therefore ignored if still being used.
Bug fixes:
- Bug that caused
align_move()to break with an unspecific error message when at least one trajectory ofmcovered a time range shorter than the requested temporal resolution. The function now warns the user when a temporal resolution is selected that cannot be applied to at least one trajectory and excludes the trajectory/trajectories in question from the returned object. - Bug that caused
frames_spatial()to interrupt with an error when trying to interpolater_listwithfade_raster=T - Fixed bug in adding margin to user
extinframes_spatial() - Fixed bug with paths crossing end of grid (aka dateline) when
cross_dateline=TRUEinframes_spatial() - Fixing bug causing no path to be displayed at all when
tail_length=0(now correctly showing points without tails)
moveVis 0.10.5
CRAN release: 2020-03-28
Revised distance calculations & handling of dateline crossings. Released on CRAN: 2020-03-28
New features:
- Argument
cross_datelineofframes_spatial()to indicate that unprojected tracks in lon/lat cross the dateline. Instead of clipping frames at longitudes -180 and 180,moveVisextends frames and connects tracks across the dateline. - Distance calculations are now based on
lwgeom - Refined base map plotting (see additional arguments
...offrames_spatial()for available options) - Added
NAhandling for base maps (e.g. rasterized labels) - Dropped dependencies
Bug fixes:
- Minor errors and warnings caused by reverse dependency changes of package
sf
moveVis 0.10.4-1
CRAN release: 2020-02-13
Bug patch. Released on CRAN: 2020-02-12
Bug fixes:
- Major bug introduced with version 0.10.4 that caused memory overload and very slow processing speeds when using
frames_spatial()
moveVis 0.10.4
CRAN release: 2020-02-07
Publication, added parallelization, new memory settings and bug fixes. Released on CRAN: 2020-02-07
Peer-reviewed publication:
- An open-access paper accompanying the
moveVisR package has been peer-reviewed by and published in ‘Methods in Ecology and Evolution’ (see https://doi.org/10.1111/2041-210X.13374). - Reference: Schwalb-Willmann, J.; Remelgado, R.; Safi, K.; Wegmann, M. (2020). moveVis: Animating movement trajectories in synchronicity with static or temporally dynamic environmental data in R. Methods in Ecology and Evolution. 2020; 11: 664–669. https://doi.org/10.1111/2041-210X.13374.
- Citation: Please use
citation("moveVis")to cite moveVis, e.g. when you use it in publications or presentations.
New features:
- Many computationally expensive
moveVistasks can now be parallelized, as multi-core support formoveVishas been implemented (seeuse_multicore()) - Added a new example data set
whitestork_data, representing coordinates and acquisition times of 15 White Storks migrating from Lake of Constance, Germany, to Africa.
New functions:
-
use_multicore()lets you turn on multi-core support ofmoveVisto increase computational time through parallelization. -
use_disk()enables the usage of disk space for creating frames. This can prevent memory overload when creating frames for very large animations.
Bug fixes:
- Bug that caused a gap between traces and paths.
moveVis 0.10.3
CRAN release: 2019-10-06
Bug fixes. Released on CRAN: 2019-10-06.
New features:
- Argument
extofframes_spatial()now clips all tracks toextifextis smaller than the extent ofm. - Argument
unitsofadd_scalebar()to switch betweenkmandmiles
Bug fixes:
- Bug that caused the scale bar distance calculated by
add_scalebar()to be0for smaller-scale extents. Distance rounding is now iterated by digit to solve this. - Bug in
frames_spatial()that resulted in wrong plot extents when an extent smaller than the extent of m was provided using argument ‘ext’. In such a case, movement tracks are now clipped to small extents and move outside of the visible frame instead of altering the frame extent. - Bug that causes traces to cover paths if
trace_show = TRUE. Traces are now always displayed behind paths.
moveVis 0.10.2
CRAN release: 2019-04-30
Adding some small but practical features. Released on CRAN: 2019-04-30.
New features:
- Argument
path_alphaofframes_spatial()for defining path transparency. - Argument
tail_colourofframes_spatial()makes it now possible to define the colour of the last tail element, to which the path colour is faded. Default is “white”. - Argument
trace_showofframes_spatial()for displaying the trace of the complete path (instead that it vanishes after the tail). - Argument
trace_colourofframes_spatial()for defining the colour of the trace. - Argument
na.colourofadd_colourscale()for defining the colouring of NA values. - Argument
na.showofadd_colourscale()to show or hide NA values in discrete background rasters. - Argument
end_pauseofanimate_frames()to hold the last frame, adding a pause of a user-defined duration to the end of an animation. - Argument
path_fadeofframes_spatial()to define whether paths should be faded towards the last frame or not. Useful in combination withtrace_show = Tand when usingend_pauseofanimate_frames(). -
moveVisnow stores the timestamps represented by each frame as an attributetimefor eachggplotframe. Frame times can now be accessed usingget_frametimes(). -
add_timestamps()can now extract timestamps directly from frames, which makes definingmoptional.
New functions:
-
get_frametimes()lets you extract the timestamps associated with each frame of a list of frames created usingframes_spatialorframes_graph.
Other improvements:
-
add_colourscale()now calculates scale and legend with frame-wide fixed limits, whencoloursis defined as a named vector, e.g.c("-1" = "red", "0" = "blue", "1" = "green"). -
moveVisnow displays the approximated duration of an animation on the console, when creating frames or rendering frames.
moveVis 0.10.1
CRAN release: 2019-04-11
Bug fixes. Released on CRAN: 2019-04-11.
Bug fixes:
- Bug that prevented the use of equal colours for multiple individuals
- Bug that prevented the use of multiple colours per individual, e.g. colouring by behavioral segments/change points
- Bug that caused an error when using
fade_raster = Tinframes_spatial()due to unequal vector lengths returned by the internal interpolation function (issue #45) - Bug that caused false time assignments or an error, if
fade_raster = Fand/orr_timescontained time elements outside the time range covered by the timestamps ofm.
moveVis 0.10.0
CRAN release: 2019-03-20
moveVis rewrite introducing a new logic and new functions. Released on CRAN: 2019-03-20
New features:
- movement data preparation, frames creation, layout/appearance editing and animation are now seperated, allowing you to customize each of these steps individually.
- any
ggplot2syntax can now be added to every single frame, allowing you to customize almost everything that can be customized usingggplot2 - to make customization easier, a variety of
add_functions wrapping pre-definedggplot2functions are included. For example,add_ggoffers dynamic overplotting, e.g. for polygons or points that change over time - track colours can now be provided as a
colourcolumn in your movement data, allowing segmentation coulouring or colouring based on a logic, you defined beforhand - map elements can be positioned freely or individual map-elements can be created as
ggplot2functions - Your animation does not have to be a fixed-size squared standard extent: With the
extargument offrames_spatial()you can define user-defined area of interest (AOI), which scales the frame extent to a specific area - A new base map feature based on Miles McBains slippymath package.
moveVissupports Mapbox (free, registration needed). OpenStreetMap and Carto (both free) as base map services. See the manual offrames_spatial()for details. -
frames_spatial()now takes the argumentequidistantto define whether the map should be stretched to an equidistant (squared) extent (x and y axis representing same distance) or not (projection-native ratio). -
frames_spatial()now usescoord_sfto display projections (see details section offrames_spatial()).
New functions:
align_move(),get_maptypes(),frames_spatial(),frames_graph(),add_gg(),add_labels(),add_scalebar(),add_northarrow(),add_progress(),add_timestamps(),add_text(),add_colourscale(),join_frames(),suggest_formats(),animate_frames(): see the README and the description of the individual functions for further details.subset_move(): subset movement data for a particular time spandf2move(): simple wrapper that converts data.frames into move or moveStack objectsview_spatial(): view movement data on an interactive map usingmapvieworleaflet
Deprecated functions:
-
animate_move(),animate_raster(),animate_stats(),get_formats(),get_libraries(): These functions have been replaced by a new logic and new functions.
moveVis 0.9.9
CRAN release: 2018-12-03
Reorganizing standard basemap usage by moveVis. Released on CRAN: 2018-11-23
New features:
- Static basemaps defined through
map_typeare now retrieved from either OpenStreetMaps for thematic imagery or Microsoft Bing Maps for satellite/hybrid imagery. The usage of OpenStreetMaps is free. For intensive use of the Bing Maps basemap options, please provide your own Bing Maps API key through theapi_keyargument, after registering at Microsoft here: https://msdn.microsoft.com/en-us/library/ff428642.aspx. Google Maps services will be implemented in a future update for restricted usage using an API key. - New baemaps options via
map_type: “satellite” (default), “hybrid”, “roadmap”, “roadmap_dark”, “roadmap_bw”, “roadmap_watercolor”. - New argument
map_zoomforanimate_move: Increase or decrease the degree of detail of a static basemap. - New argument
map_cropforanimate_move: Define, if a static basemap should be cropped to the extent ofmor if a wider extent of optimal resolution should be used.
Bug fixes:
- Major bug causing moveVis to break with each available static basemap option due to changes of the Google Maps API policies.
moveVis 0.9.8
CRAN release: 2018-09-14
Updating unit tests for CRAN checks. Released on CRAN: 2018-09-14
Bug fixes:
- Bug causing unit tests to fail on machines with different external tools available
- added SystemRequirements field in DESCRIPTION
moveVis 0.9.7
CRAN release: 2018-09-10
Windows library detection bugs fixed. Released on CRAN: 2018-09-07
New features:
-
time_pos_xandtime_pos_xallow to specify the location of the timestamp display -
time_sizeallows to specify the font size of the timestamp display - added unit tests
Bug fixes:
- Bug causing moveVis to not properly detect installed extern libraries that can be called from the command line
- Bug causing moveVis to not use conv_dir if it contains a Windows path to a tool of an extern library
moveVis 0.9.6
CRAN release: 2017-11-03
video support, automatic time harmonization, bug fixes. Released on CRAN: 2017-11-01
New functions:
-
get_libraries()– handles all extern libraries that are needed for video formats. Just run it to get information on what you need to install. Replaces get_imconvert(), which can still be called for code compatibility reasons -
get_formats()– outputs all file formats that can be used with moveVis depending on which libraries are installed on the system.
New features:
- moveVis supports now multiple video formats in addition to GIF, if it is linked to a video library (either FFmpeg of libav)
- animate_move() now detects temporal resolution and uniformity of timestamps automatically to determine, if interpolation needs to be applied to calculate uniform frame times per frame tick
- animate_move() now calculates and displays the final animation duration derived from the total number of output frames and the fps prior to generating each frame, so that the user can already approximate which size the output animation will have.
- added “frames_tres” to animate_move() to change temporal resolution through linear interpolation
- added “frames_pixres” to animate_move() to adjust frame ppi
- added “paths_na.hold” to animate_move() for defining how to deal with data gaps (hold or not hold last path location)
- added “time_bar_col” to animate_move() for changing colouring of the time bar at the top border of the map
- added “out_format” to animate_move() for defining output file format
- added “indi_names” to animate_move() for defining individual names vector manually
- added “scalebar_dist” to animate_move() for defining the scalebar length manually
- added “overwrite” to animate_move() to regulate output file writing behaviour
Improvements:
- it is now possible to use the ‘layer’ argument to specify one (static) raster object without specifying ‘layer_dt’, which is only needed, if several raster objects are handed over as a list.
- in some situations, the movement data extent was bigger than the cropped layer extent: this works now
- in some situations, stat animation lines were cut off, this should be resolved now
- recoding of multiple processing steps to increase processing speed and stability
- increased error handler by several errors likely to occure
- several bug fixes
Contributors:
- AniMove 2017 participants
moveVis 0.9.5
CRAN release: 2017-08-21
adding frames_layout, static_data etc., improvements to workflow. Released on CRAN: 2017-08-20
New features:
- RGB stats support added for animate_stats() and animate_move()
- added animate_move() argument “time_scale” to enable a time scale
- added animate_move() argument “frame_layout” for user friendly, complex layouting of the output GIF by specifiying the plot locations
- added animate_move() argument “layer_stretch”
- added animate_move() expert arguments “conv_cmd” and “conv_frames”
Improvements:
- several major bug fixes
- major animate_raster() bug fixes, reenabling use of RGB rasterStack inputs
- stats legend is now locatable using frame_layout
- fixed a bug of get_imconvert() that caused it to have issues with finding convert.exe on Windows machines, if ImageMagick is preinstalled
Contributors:
- Bart Kranstauber
moveVis 0.9.4
CRAN release: 2017-06-29
adding animate_stats() and stats arguments for animate_move(). Released on CRAN: 2017-06-28
New features:
-
animate_stats()– Enables creation of statistic plot animations visualizing possible relationships between movement paths and basemap. Define individual plot designs based on ggplot2 syntax. - stats arguments for animate_move(): Enables statistic plot animations side-by-side with the spatial plot animation of animate_move. Use the animate_stats() arguments with animate_move().
- extent_factor argument for animate_move(): Increase the distance between the spatial extents of the movement paths and the basemap.
Improvements:
- Several minor bug fixes
moveVis 0.9.3
fixing major bug. Released on CRAN: 2017-06-28
Improvements:
- Fixed a major bug causing an unavoidable error when creating animations with animate_move() using user defined basemaps (Error message: ‘Error in eval(expr, envir, enclos) : Object ’frame_l’ not found’)
moveVis 0.9.2
adding frame_width and frame_height arguments. Released on CRAN: 2017-06-28
New features:
- Added two new arguments to animate_move() function for changing output frame resolution
Bug report contributors: * vestlink (at) github
moveVis 0.9.1
CRAN release: 2017-05-23
fixing important bug; adding animate_raster(). Released on CRAN: 2017-05-23
New features:
- Added moveStack support: animate_move() now takes also moveStack objects in addition to list objects
-
animate_raster()– for animating just basemaps/for doing the same as with animate_move(), but without movement data
Improvements:
- Bug fix: Function now takes movebank.org data –> there had been a static code line preventing the read-out of movement coordinates, which is now solved.
- Several major and minor bug fixes
Bug report contributors:
- bart1 (at) github
- Patrick Scherler
moveVis 0.9.0
initial release. Released on CRAN: 2017-04-28
Initial features:
animate_move()get_imconvert()
Initial example data sets:
- data(move_data)
This document should provide a broad overview on changes that are applied to the moveVis R package. There is no warranty for completeness, since minor changes might not be included. All improvement and feature descriptions are bundled per release version. The document is currently maintained by Jakob Schwalb-Willmann.