FAQ

Why is ConScape implemented in Julia?

This question usually continues with “instead of R”. There are two reasons, first, Julia is a high-performance language that combines the performance of C with the readability of a language like R. For instance, all libraries in R that do performance critical computations, such as the “spatial absorbing Markov chain” library, are wrappers around C code. This introduces what has been called the provlem of “two languages”, i.e. that one has to master two languages (in this case R and C) to use the library in a flexible way or contribute to its further development. As a side note, while the preformance benchmark, C is not a very easy language to read or write. Here comes in Julia, it has a performance very close to C, but the readability of R. It is therefore relatively easy for someone with some programming background (as any intermediate to advanced R user) to use the library in a flexible way and hopefully also contribute to its further development. A second reason was that Julia was also adopted by Circuitscape for its latest implementation, which will facilitate collaboration and community contributions from a broader group of landscape connectivity modelers.

As we do appreciate the challenge associated with working in a new programming language, we did develop a large set of notebooks to serve as templates to modify for your own purposes. Indeed, our own experience with using Julia and ConScape did rely adjusting existing code at first. Hence, we encourage you to give it a try, it is by no means as daunting as it may seem (to get started).

Which value to choose for theta (\(\theta\))?

In other words: “which level of randomness for the paths between source and target?”

A difficult question… First, testing different values of \(\theta\) will allow you to assess the sensitivity of your results to this crucial parameter. Furthermore, several efforts exist to estimate \(\theta\) from movement data, for instance: Kivimäki et al. 2020, and Panzacchi et al. 2015.

Where can I find the test data for the notebooks?

Here in the github repository of the ConScape library

I am getting empty plots

non_matches = findall(xor.(isnan.(mov_prob), isnan.(hab_qual)))
mov_prob[non_matches] .= NaN
hab_qual[non_matches] .= NaN;

Can I use a patch-matrix landscape representation in ConScape

Yes, but we still have to make a notebook to demonstrate this application.