• Stars
    star
    475
  • Rank 92,465 (Top 2 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

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

Repository Details

Urban Morphology Measuring Toolkit

momepy

Documentation Status Actions Status codecov CodeFactor DOI

Introduction

Momepy is a library for quantitative analysis of urban form - urban morphometrics. It is part of PySAL (Python Spatial Analysis Library) and is built on top of GeoPandas, other PySAL modules, and networkX.

momepy stands for Morphological Measuring in Python

Some of the functionality that momepy offers:

  • Measuring dimensions of morphological elements, their parts, and aggregated structures.
  • Quantifying shapes of geometries representing a wide range of morphological features.
  • Capturing spatial distribution of elements of one kind as well as relationships between different kinds.
  • Computing density and other types of intensity characters.
  • Calculating diversity of various aspects of urban form.
  • Capturing connectivity of urban street networks.
  • Generating relational elements of urban form (e.g. morphological tessellation).

Momepy aims to provide a wide range of tools for a systematic and exhaustive analysis of urban form. It can work with a wide range of elements, while focused on building footprints and street networks.

Comments, suggestions, feedback, and contributions, as well as bug reports, are very welcome.

The package is currently maintained by @martinfleis and @jGaboardi.

Getting Started

A quick and easy getting started guide is part of the User Guide.

Documentation

Documentation of momepy is available at docs.momepy.org.

Examples

coverage = momepy.AreaRatio(tessellation, buildings, left_areas=tessellation.area,
                            right_areas='area', unique_id='uID')
tessellation['CAR'] = coverage.series

Coverage Area Ratio

area_simpson = momepy.Simpson(tessellation, values='area',
                              spatial_weights=sw3,
                              unique_id='uID')
tessellation['area_simpson'] = area_simpson.series

Local Simpson's diversity of area

G = momepy.straightness_centrality(G)

Straightness centrality

How to cite

To cite momepy please use following software paper published in the JOSS.

Fleischmann, M. (2019) ‘momepy: Urban Morphology Measuring Toolkit’, Journal of Open Source Software, 4(43), p. 1807. doi: 10.21105/joss.01807.

BibTeX:

@article{fleischmann_2019,
    author={Fleischmann, Martin},
    title={momepy: Urban Morphology Measuring Toolkit},
    journal={Journal of Open Source Software},
    year={2019},
    volume={4},
    number={43},
    pages={1807},
    DOI={10.21105/joss.01807}
}

Install

You can install momepy using Conda from conda-forge (recommended):

conda install -c conda-forge momepy

or from PyPI using pip:

pip install momepy

See the installation instructions for detailed instructions. Momepy depends on the python geospatial stack, which might cause some dependency issues.

Contributing to momepy

Contributions of any kind to momepy are more than welcome. That does not mean new code only, but also:

  • improvements to the documentation and user guide,
  • additional tests (ideally filling the gaps in the existing suite),
  • bug reports, or
  • ideas for what could be added or done better.

All contributions should go through our GitHub repository. Bug reports, ideas, or even questions should be raised by opening an issue on the GitHub tracker. Suggestions for changes in code or documentation should be submitted as a pull request. However, if you are not sure what to do, feel free to open an issue. All discussion will then take place on GitHub to keep the development of momepy transparent.

If you decide to contribute to the codebase, ensure that you are using an up-to-date main branch. The latest development version will always be there, including the documentation (powered by sphinx).

Details are available in the documentation.

Get in touch

If you have a question regarding momepy, feel free to open an issue or a new discussion on GitHub.

Acknowledgements

The initial release of momepy was a result of a research of Urban Design Studies Unit (UDSU) supported by the Axel and Margaret Ax:son Johnson Foundation as a part of “The Urban Form Resilience Project” in partnership with University of Strathclyde in Glasgow, UK. Further development was supported by Geographic Data Science Lab of the University of Liverpool wihtin Urban Grammar AI research project.


Copyright (c) 2018-, Martin Fleischmann and PySAL Developers

More Repositories

1

pysal

PySAL: Python Spatial Analysis Library Meta-Package
Python
1,306
star
2

mgwr

Multiscale Geographically Weighted Regression (MGWR)
Jupyter Notebook
362
star
3

spopt

Spatial Optimization
Python
305
star
4

spaghetti

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

libpysal

Core components of Python Spatial Analysis Library
Python
256
star
6

esda

statistics and classes for exploratory spatial data analysis
Jupyter Notebook
216
star
7

tobler

Spatial interpolation, Dasymetric Mapping, & Change of Support
Jupyter Notebook
145
star
8

mapclassify

Classification schemes for choropleth mapping.
Jupyter Notebook
139
star
9

segregation

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

splot

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

pointpats

Planar Point Pattern Analysis in PySAL
Jupyter Notebook
83
star
12

scipy2019-intermediate-gds

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

giddy

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

geopyter

GeoPyTeR: Geographical Python Teaching Resource
Jupyter Notebook
68
star
15

spreg

Spatial econometric regression in Python
Python
66
star
16

notebooks

jupyter/ipython notebooks demonstrating PySAL functionality
Python
54
star
17

spint

SPatial INTeraction Models (spint)
Jupyter Notebook
51
star
18

legendgram

Legendgrams are distributional visualizations for map classification schemes
Python
50
star
19

spglm

SParse Generalized Linear Models (spglm)
Python
32
star
20

inequality

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

access

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

spvcm

multilevel spatially-correlated variance components models
Jupyter Notebook
16
star
23

gwr

This is a repository for the geographically-weighted regression submodule of the Python Spatial Analysis Library
Jupyter Notebook
16
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
4
star
30

pysal_examples

Example data sets for PySAL
HTML
4
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
34

help

The place to ask questions about and get help with the PySAL project.
1
star
35

code_of_conduct

This repo serves as an announcement platform for the PySAL Code of Conduct Committee
1
star