/d3-geo-compactness

A JavaScript library for computing the compactness of GeoJSON features.

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

d3-geo-compactness

A JavaScript library for computing the compactness of GeoJSON features. Measuring a map’s compactness can be a useful component in gerrymandering diagnostics, yet compactness alone is neither a necessary nor sufficient condition of a fair district map.

Installing

If you use NPM, npm install d3-geo-compactness. Otherwise, download the latest release. AMD, CommonJS, and vanilla environments are supported. In vanilla, a d3 global is exported:

<script src="https://unpkg.com/d3-geo-compactness@0.1.3/dist/d3-geo-compactness.min.js"></script>
<script>

const compactness = d3.geoPolsbyPopper(GeoJSONObject);

</script>

API Reference

# d3.geoHullRatio(object) · Source

Returns the ratio of the area of the specified GeoJSON object to the area of its convex hull.

# d3.geoPolsbyPopper(object) · Source

Returns the Polsby-Popper score of the specified GeoJSON object. The Polsby-Popper test compares a district’s area to the area of a circle whose circumference is equal to the length of the district’s perimeter. A district’s Polsby-Popper score is the square of its Schwartzberg score.

# d3.geoReock(object) · Source

Returns the Reock score of the specified GeoJSON object. The Reock test compares a district’s area to the area of the smallest circle that encloses all of the district’s vertices.

# d3.geoSchwartzberg(object) · Source

Returns the Schwartzberg score of the specified GeoJSON object. The Schwartzberg test compares the length of the district’s perimeter to the circumference of a circle whose area is equal to the district’s area. A district’s Schwartzberg score is the square root of its Polsby-Popper score.

Utilities

# d3.geoEnclose(object) · Source

Returns a GeoJSON Polygon representing the minimum enclosing circle of the specified GeoJSON object, used for computing the Reock score of a district.

# d3.geoHull(object) · Source

Returns a GeoJSON Polygon representing the spherical convex hull of the specified GeoJSON object, used for computing the convex hull ratio of a district.