Metadata-Version: 2.1
Name: mundipy
Version: 0.2.2
Summary: mundipy is a Python framework for spatial data analysis
Home-page: https://buntinglabs.com/
License: MIT
Author: Brendan Ashworth
Author-email: brendan@buntinglabs.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Dist: Fiona (>=1.8.21,<2.0.0)
Requires-Dist: SQLAlchemy (>=1.4.40,<2.0.0)
Requires-Dist: Shapely (>=1.8.4,<2.0.0)
Requires-Dist: geopandas (>=0.11.1,<0.12.0)
Requires-Dist: matplotlib (>=3.6.0,<4.0.0)
Requires-Dist: numpy (>=1.23.3,<2.0.0)
Requires-Dist: overpy (>=0.6,<0.7)
Requires-Dist: pandas (>=1.5.0,<2.0.0)
Requires-Dist: pygeos (>=0.13,<0.14)
Requires-Dist: pyproj (>=3.4.0,<4.0.0)
Requires-Dist: s2sphere (>=0.2.5,<0.3.0)
Requires-Dist: tqdm (>=4.64.1,<5.0.0)
Project-URL: Documentation, https://docs.mundi.ai/
Project-URL: Repository, https://github.com/BuntingLabs/mundipy
Description-Content-Type: text/markdown

# [![mundi.py](docs/logo/light.svg)](https://docs.mundi.ai)

[![PyPI version](https://badge.fury.io/py/mundipy.svg)](https://pypi.org/project/mundipy/) ![GitHub issues](https://img.shields.io/github/issues/BuntingLabs/mundipy) ![PyPI - License](https://img.shields.io/pypi/l/mundipy)

mundipy is a Python framework for spatial data manipulation. Built on top of
[geopandas](https://geopandas.org/en/stable/), [GDAL](https://gdal.org/),
and [shapely](https://shapely.readthedocs.io/en/stable/manual.html), mundi.py
provides a useful abstraction to eliminate the hassles of spatial data.

## Projected Coordinate Systems

Automatically suggests a projected coordinate system to use, given a shapely
geometry in WGS84.

This prioritizes coordinate systems that:
1. totally contain the given geometry
2. have minimal area (probably less distortion)
3. are not deprecated

```py
>>> from mundipy.pcs import choose_pcs
>>> from shapely.geometry import Point

>>> choose_pcs(Point(-118.24, 34.052), units='feet')
{
    'name': 'NAD27 / California zone VII',
    'epsg': 26799,
    'crs': 'EPSG:26799',
    'units': 'feet'
}
```

## Project Roadmap

- No projections needed: automatically chooses and selects a relevant CRS when doing operations
- Automatic spatial indexing
- Jupyter notebook native (\_repr\_html\_) that doesn't explode with massive data
- Nearest neighbor/distance queries
- Spatial joins
- Dissolving into h3/s2

## License

Mundi.py is MIT licensed.

