Skip to content
Use MCMC to analyze districting plans and gerrymanders
Branch: master
Clone or download
zschutzman Merge pull request #323 from zschutzman/splitting
add functionality to compute locality splitting scores
Latest commit a39f3b7 Aug 30, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add workflows config version Feb 20, 2019
docs Update Jul 25, 2019
gerrychain Merge pull request #323 from zschutzman/splitting Aug 30, 2019
tests Merge pull request #323 from zschutzman/splitting Aug 30, 2019
.gitignore Islands docs (#321) Jul 25, 2019 Create Mar 22, 2019 Rename everything to GerryChain Oct 9, 2018
LICENSE Use BSD 3-clause license Jan 21, 2019 Add again Apr 17, 2019
README.rst Fix typo Apr 17, 2019
readthedocs.yml Tell readthedocs to run install Oct 16, 2018
setup.cfg Consolidate configuration files Apr 10, 2019 Add scipy requirement May 9, 2019 add pytest-cov stuff and versioneer Jun 9, 2018



Build Status Code Coverage Documentation Status PyPI Package conda-forge Package

GerryChain is a Python library for building ensembles of districting plans using Markov chain Monte Carlo. It is developed and maintained by the Metric Geometry and Gerrymandering Group and our network of volunteers. It is distributed under the 3-Clause BSD License.

The basic workflow is to start with the geometry of an initial plan and generate a large collection of sample plans for comparison. Usually, we will constrain these sampled plans in such a way that they perform at least as well as the initial plan according to traditional districting principles, such as population balance or compactness. Comparing the initial plan to the ensemble provides quantitative tools for measuring whether or not it is an outlier among the sampled plans.

Getting started

See our Getting started guide for the basics of using GerryChain.

We also highly recommend the resources prepared by Daryl R. DeFord of MGGG for the 2019 MIT IAP course Computational Approaches for Political Redistricting.

Useful links


Using conda (recommended)

To install GerryChain from conda-forge using conda, run

conda install -c conda-forge gerrychain

For this command to work as intended, you will first need to activate the conda environment that you want to install GerryChain in. If the environment you want to activate is called vrdi (for example), then you can do this by running

conda activate vrdi

If this command causes problems, make sure conda is up-to-date by running

conda update conda
conda init

For more information on using conda to install packages and manage dependencies, see Getting started with conda.

Using pip

To install GerryChain from PyPI, run pip install gerrychain from the command line.

This approach often fails due to compatibility issues between our different Python GIS dependencies, like geopandas, pyproj, fiona, and shapely. For this reason, we recommend installing from conda-forge for most users.

You can’t perform that action at this time.