• Stars
    star
    142
  • Rank 250,046 (Top 6 %)
  • Language
    Jupyter Notebook
  • License
    BSD 3-Clause "New...
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Spatial interpolation, Dasymetric Mapping, & Change of Support

CI Tests codecovPyPI - Python Version PyPI Conda (channel only) GitHub commits since latest release (branch) DOI

PySAL tobler

tobler is a python package for areal interpolation, dasymetric mapping, change of support, and small area estimation. It provides a suite of tools with a simple interface for transferring data from one polygonal representation to another. Common examples include standardizing census data from different time periods to a single representation (i.e. to overcome boundary changes in successive years), or the conversion of data collected at different spatial scales into shared units of analysis (e.g. converting zip code and neighborhood data into a regular grid). tobler is part of the PySAL family of packages for spatial data science and provides highly performant implementations of basic and advanced interpolation methods, leveraging shapely to optimize for multicore architecture. The package name is an homage to the legendary quantitative geographer Waldo Tobler, a pioneer in geographic interpolation methods, spatial analysis, and computational social science.

DC tracts to hexgrid

Interpolation Methods

tobler provides functionality for three families of spatial interpolation methods. The utility of each technique depends on the context of the problem and varies according to e.g. data availability, the properties of the interpolated variable, and the resolution of source and target geometries. For a further explanation of different interpolation techniques, please explore some of the field's background literature

Area Weighted

Areal interpolation uses the area of overlapping geometries to apportion variables. This is the simplest method with no additional data requirements, aside from input and output geometries, however this method is also most susceptible to the modifiable areal unit problem.

Dasymetric

Dasymetric interpolation uses auxiliary data to improve estimation, for example by constraining the areal interpolation to areas that are known to be inhabited. Formally, tobler adopts a binary dasymetric approach, using auxiliary data to define which land is available or unavailable for interpolation. The package can incorporate additional sources such as

  • raster data such as satellite imagery that define land types
  • vector features such as roads or water bodies that define habitable or inhabitable land

either (or both) of which may be used to help ensure that variables from the source geometries are not allocated to inappropriate areas of the target geometries. Naturally, dasymetric approaches are sensitive to the quality of ancillary data and underlying assumptions used to guide the estimation.

Model-based

Model-based interpolation uses [spatial] statistical models to estimate a relationship between the target variable and a set of covariates such as physical features, administrative designations, or demographic and architectural characteristics. Model-based approaches offer the ability to incorporate the richest set of additional data, but they can also difficult to wield in practice because the true relationship between variables is never known. By definition, some formal assumptions of regression models are violated because the target variable is always predicted using data from a different spatial scale than it was estimated.

Extensions

tobler is under active development and will continue to incorporate emerging interpolation methods as they are introduced to the field. We welcome any and all contributions and if you would like to propose an additional method for adoption please raise an issue for discussion or open a new pull request!

Charleston zipcodes to tracts

raster example

Installation

$ conda env create -f environment.yml
$ conda activate tobler
$ pip install -e . --no-deps

Contribute

PySAL-tobler is under active development and contributors are welcome.

If you have any suggestion, feature request, or bug report, please open a new issue on GitHub. To submit patches, please follow the PySAL development guidelines and open a pull request. Once your changes get merged, you’ll automatically be added to the Contributors List.

License

The project is licensed under the BSD license.

Funding

Award #1733705 Neighborhoods in Space-Time Contexts

Award #1831615 Scalable Geospatial Analytics for Social Science Research

More Repositories

1

pysal

PySAL: Python Spatial Analysis Library Meta-Package
Jupyter Notebook
1,264
star
2

momepy

Urban Morphology Measuring Toolkit
Python
450
star
3

mgwr

Multiscale Geographically Weighted Regression (MGWR)
Jupyter Notebook
332
star
4

spaghetti

SPAtial GrapHs: nETworks, Topology, & Inference
Python
255
star
5

spopt

Spatial Optimization
Python
248
star
6

libpysal

Core components of Python Spatial Analysis Library
Python
239
star
7

esda

statistics and classes for exploratory spatial data analysis
Jupyter Notebook
201
star
8

mapclassify

Classification schemes for choropleth mapping.
Jupyter Notebook
128
star
9

segregation

Segregation Measurement, Inferential Statistics, and Decomposition Analysis
Jupyter Notebook
106
star
10

splot

Lightweight plotting for geospatial analysis in PySAL
Jupyter Notebook
97
star
11

scipy2019-intermediate-gds

This is the Intermediate Data Science Workshop for the 2019 Scientific Python conference in Austin, TX.
Jupyter Notebook
76
star
12

pointpats

Planar Point Pattern Analysis in PySAL
Jupyter Notebook
76
star
13

giddy

Exploratory spatiotemporal data analysis and Geospatial distribution dynamics analysis
Jupyter Notebook
72
star
14

geopyter

GeoPyTeR: Geographical Python Teaching Resource
Jupyter Notebook
68
star
15

spreg

Spatial econometric regression in Python
Python
54
star
16

notebooks

jupyter/ipython notebooks demonstrating PySAL functionality
Python
53
star
17

legendgram

Legendgrams are distributional visualizations for map classification schemes
Python
48
star
18

spint

SPatial INTeraction Models (spint)
Jupyter Notebook
46
star
19

spglm

SParse Generalized Linear Models (spglm)
Python
29
star
20

inequality

Measures of spatial (and non-spatial) inequality
Jupyter Notebook
21
star
21

access

Classical and novel measures of spatial accessibility to services
Jupyter Notebook
21
star
22

gwr

This is a repository for the geographically-weighted regression submodule of the Python Spatial Analysis Library
Jupyter Notebook
16
star
23

spvcm

multilevel spatially-correlated variance components models
Jupyter Notebook
14
star
24

region

A library for Spatially-Explicit Regionalization
Python
14
star
25

pysal.github.io

Landing Page for pysal.
HTML
8
star
26

pysalREST

This repository contains an automated Python library extraction tool originally developed to expose the PySAL library as a RESTful service.
Python
7
star
27

pPysal

Parallel PySAL
Python
4
star
28

governance

PySAL Governance
4
star
29

pysal-sprint-2020-10

Organization of PySAL Sprint for 2020-10-24/25
3
star
30

pysal_examples

Example data sets for PySAL
HTML
3
star
31

submodule_template

This provides a template for submodules to use in the PySAL project
Jupyter Notebook
2
star
32

logo

Jupyter Notebook
1
star
33

docker

Docker containers of PySAL Projects
Dockerfile
1
star