Marxan Connect (henceforth the “app”) is a Graphical User Interface (GUI) to help conservationists include “connectivity” in their protected area network planning.

The term “connectivity” has a variety of definitions (i.e. larval connectivity, genetic connectivity, landscape connectivity, etc) and protected area networks can be optimized for various connectivity objectives. The app is intended to guide conservationists through the process of identifying important aspects of connectivity for their conservation scenarios as well as highlighting the necessary data.

The app also includes a fully functional Python package that is operated via command line. The Python package, marxanconpy, can be used to reproduce an analysis using the project file (.MarCon) generated by the GUI.

To use this software, please visit the Tutorial and the Glossary. Otherwise, if you would just like to get started, please install the app and proceed through all the tabs from left to right starting with “Spatial Input”. After calculating the “Connectivity Metrics”, you can choose to conduct a Marxan or (experimentally) Marxan with Zones analysis in the app, export the connectivity metrics for use in a standalone custom Marxan analysis, or you can visualize the Connectivity Metrics using the “Plotting Options” tab

If you would like to report any bugs or request a missing feature, please post an issue on the GitHub repository. Please provide as much information as possible, such as: detailed description, app version, operating system, even a link to your data if relevant (also, see Contributing).

In terms of using the software for conservation planning, ‘best practices’ (*i.e. detailed documentation, case studies) are currently under development.

Authors

  • Remi Daigle - App design, programming, development, maintenance - remi-daigle
  • Anna Metaxas - Initial conception, Acquisition of funding, App improvements and development
  • Arieanna Balbar - App improvements, testing, and development - abalbar
  • Jennifer McGowan - App improvements, design for discrete conservation features
  • Eric Anton Treml - App improvements, input to connectivity definitions and metrics
  • Caitie Kuempel - App improvements - cdkuempel
  • Hugh Possingham - App improvements
  • Maria Beger - Initial conception, Acquisition of funding, App improvements and development

See also the list of contributors who participated in this project on Github and the Acknowledgments section.

Installing Marxan Connect

Marxan Connect was built for Windows or macOS. The app is currently not compatible with Linux although the python processing script (marxanconpy) and GUI scripts (gui and MarxanConnectGUI) were designed with interoperability in mind.

Windows (7/8/10)

Windows Installer

(WARNING! Marxan Connect is in ‘beta’ release)

Please download the latest MarxanConnect-vX-Y-Z-windows-setup.exe installer file, run it, and follow the instructions. You may get a ‘Windows protected your PC’ security warning since we are not a large software company. Assuming you trust the contents of the app, click on More info, then Run anyway to install. Alternatively (for advanced users only), follow the Building from source instructions to use the latest bleeding edge version of the app.

Windows Zipped Bundle

If you cannot use the installer because you do not have administrative privileges, we’ve provided a zipped bundle of the app to allow users to bypass that problem. To use, download the latest MarxanConnect.zip, unzip it to your preferred destination (e.g. ~/Desktop), and double-click MarxanConnectGUI.exe. In this case you will have to generate any start menu shortcuts, or file associations (i.e. .MarCon) manually.

macOS (>Yosemite 10.10.5)

Please download the latest MarxanConnect-vX-Y-Z.dmg file, double-click the downloaded file and a Finder window wil appear, and click-and-drag into the Applications folder. You may get a ‘This is an application downloaded from the Internet’ security warning since we are not a large software company. Assuming you trust the contents of the app, in the Finder, locate Marxan Connect. Press the Control key and click the app icon, then choose Open from the shortcut menu. Click Open. Marxan Connect is saved as an exception to your security settings, and you can open it in the future by double-clicking it just as you can any registered app. This was built and tested in macOS Mojave (10.14), but testing indicates it is compatible with older operating systems (>Yosemite 10.10.5). Alternatively (for advanced users only), follow the Building from source instructions to use the latest bleeding edge version of the app.

Linux

There is no prebuilt version of Marxan Connect for Linux, see this issue for more information. If you know how to resolve this issue, please submit a pull request or comment on the issue page. Alternatively (for advanced users only), follow the Building from source instructions to use the latest bleeding edge version of the app.

Installing the command line interface

For users who prefer the command line, please visit the marxanconpy website

Building from source

Not for the typical user. Building from source is only necessary if you plan to contribute to the project (see Contributing section below) or if you want to use the bleeding edge version of the app.

  • Download this repository
  • If necessary, edit the hard coded file paths in setup.py and WindowsSetupBuilder.iss
  • If necessary, edit the version number (see the Versioning section)
  • On Windows, open a terminal or cmd window (or git bash) in the project directory and type:
make

The default make will try to compile the windows version, so on macOS a full build would be make web mac or make web mac daily=1 for a release candidate. Alternatively, you can compile the website with make web, the Marxan Connect Windows executable with make exe, the windows installer make win, the Windows zip with make zip, and the macOS image with make mac. During development, if you don’t want to build an ‘official version’, then use the daily=1 argument for the makefile (e.g. make exe daily=1) to create an automaticaly named release candidate.

Prerequisites (for building from source)

It also assumes you have all the pre-requisite python modules installed to build the app itself, i.e.:

#!/bin/bash

conda create --name marcon wxpython matplotlib geopandas descartes shapely pandas numpy cartopy

source activate marcon # for windows
conda activate marcon # for mac/linux

pip install python-igraph # on windows you may need to install via wheel https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-igraph
pip install PyInstaller marxanconpy bs4
pip install dmgbuild pexpect # for mac only

As well as pre-requesite R packages to build the website, i.e.:

if(!require("rmarkdown")) install.packages("rmarkdown")
## Loading required package: rmarkdown
if(!require("sf")) install.packages("sf")
## Loading required package: sf
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
if(!require("leaflet")) install.packages("leaflet")
## Loading required package: leaflet
if(!require("tmap")) install.packages("tmap")
## Loading required package: tmap
if(!require("tidyverse")) install.packages("tidyverse")
## Loading required package: tidyverse
## -- Attaching packages ------------------------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.1     v purrr   0.3.2
## v tibble  2.1.3     v dplyr   0.8.3
## v tidyr   1.0.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## -- Conflicts ---------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
if(!require("DT")) install.packages("DT")
## Loading required package: DT
if(!require("igraph")) install.packages("igraph")
## Loading required package: igraph
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:purrr':
## 
##     compose, simplify
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following object is masked from 'package:tibble':
## 
##     as_data_frame
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
if(!require("ggraph")) install.packages("ggraph")
## Loading required package: ggraph
if(!require("gganimate")) devtools::install_github('thomasp85/gganimate')
## Loading required package: gganimate
if(!require("tidygraph")) install.packages("tidygraph")
## Loading required package: tidygraph
## 
## Attaching package: 'tidygraph'
## The following object is masked from 'package:igraph':
## 
##     groups
## The following object is masked from 'package:stats':
## 
##     filter
if(!require("RColorBrewer")) install.packages("RColorBrewer")
## Loading required package: RColorBrewer

Built With

The gui.py file was built using the fantastic wxFormBuilder.

The windows installer was built using Inno Setup.

THe documentation and website was built with R and the rmarkdown package

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests or issues to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

References

Ball, I.R., H.P. Possingham, and M. Watts. 2009. Marxan and relatives: Software for spatial conservation prioritisation. Chapter 14: Pages 185-195 in Spatial conservation prioritisation: Quantitative methods and computational tools. Eds Moilanen, A., K.A. Wilson, and H.P. Possingham. Oxford University Press, Oxford, UK.