A convolution-based approach to detect urban extents.
Project description
Urban footprinter
A reusable convolution-based approach to detect urban extents from raster datasets.
LULC | Convolution result | Computed urban extent |
---|---|---|
The approach is built upon the methods used in the Atlas of Urban Expansion. The main idea is that a pixel is considered part of the urban extent depending on the proportion of built-up pixels that surround it. See the notebook overview or this blog post for a more detailed description of the procedure.
Installation and usage
To install use pip:
$ pip install urban-footprinter
Or clone the repo:
$ git clone https://github.com/martibosch/urban-footprinter.git
$ python setup.py install
Then use it as:
import urban_footprinter as ufp
# Or use `ufp.urban_footprint_mask_shp` to obtain the urban extent as a
# shapely geometry
urban_mask = ufp.urban_footprint_mask("path/to/raster.tif",
kernel_radius,
urban_threshold,
urban_classes=urban_classes)
where
help(ufp.urban_footprint_mask)
Help on function urban_footprint_mask in module urban_footprinter:
urban_footprint_mask(raster, kernel_radius, urban_threshold, urban_classes=None, largest_patch_only=True, buffer_dist=None, res=None)
Computes a boolean mask of the urban footprint of a given raster.
Parameters
----------
raster : ndarray or str, file object or pathlib.Path object
Land use/land cover (LULC) raster. If passing a ndarray (instead of the
path to a geotiff), the resolution (in meters) must be passed to the
`res` keyword argument.
kernel_radius : numeric
The radius (in meters) of the circular kernel used in the convolution.
urban_threshold : float from 0 to 1
Proportion of neighboring (within the kernel) urban pixels after which
a given pixel is considered urban.
urban_classes : int or list-like, optional
Code or codes of the LULC classes that must be considered urban. Not
needed if `raster` is already a boolean array of urban/non-urban LULC
classes.
largest_patch_only : boolean, default True
Whether the returned urban/non-urban mask should feature only the
largest urban patch.
buffer_dist : numeric, optional
Distance to be buffered around the urban/non-urban mask. If no value is
provided, no buffer is applied.
res : numeric, optional
Resolution of the `raster` (assumes square pixels). Ignored if `raster`
is a path to a geotiff.
Returns
-------
urban_mask : ndarray
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
urban-footprinter-0.1.0.tar.gz
(17.1 kB
view details)
File details
Details for the file urban-footprinter-0.1.0.tar.gz
.
File metadata
- Download URL: urban-footprinter-0.1.0.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191101 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e87a539da78096dd5aca9a52637ff1a6597bf9001d794190a3dca9dd177a2c93 |
|
MD5 | 81ad2eb04845544e067553fdd66a8bb6 |
|
BLAKE2b-256 | c66b15132d9457403ef1fd523a1b4bd9cbee5865c7084b09f69af6037e9721fa |