Skip to main content

Modern GIS toolkit for Python - Simplifying geospatial workflows with built-in data sources, intelligent caching, and fluent APIs

Project description

PyMapGIS

PyPI version Python 3.10+ License: MIT CI

Modern GIS toolkit for Python - Simplifying geospatial workflows with built-in data sources, intelligent caching, and fluent APIs.

🚀 Quick Start

pip install pymapgis
import pymapgis as pmg

# Load Census data with automatic geometry
acs = pmg.read("census://acs/acs5?year=2022&geography=county&variables=B25070_010E,B25070_001E")

# Calculate housing cost burden (30%+ of income on housing)
acs["cost_burden_rate"] = acs["B25070_010E"] / acs["B25070_001E"]

# Create interactive map
acs.plot.choropleth(
    column="cost_burden_rate",
    title="Housing Cost Burden by County (2022)",
    cmap="Reds"
).show()

✨ Key Features

  • 🔗 Built-in Data Sources: Census ACS, TIGER/Line, and more
  • ⚡ Smart Caching: Automatic HTTP caching with TTL support
  • 🗺️ Interactive Maps: Beautiful visualizations with Leaflet
  • 🧹 Clean APIs: Fluent, pandas-like interface
  • 🔧 Extensible: Plugin architecture for custom data sources

📊 Supported Data Sources

Source URL Pattern Description
Census ACS census://acs/acs5?year=2022&geography=county American Community Survey data
TIGER/Line tiger://county?year=2022&state=06 Census geographic boundaries
Local Files file://path/to/data.geojson Local geospatial files

🎯 Examples

Labor Force Participation Analysis

# Traditional approach: 20+ lines of boilerplate
# PyMapGIS approach: 3 lines

acs = pmg.read("census://acs/acs5?year=2022&geography=county&variables=B23025_004E,B23025_003E")
acs["lfp_rate"] = acs["B23025_004E"] / acs["B23025_003E"]
acs.plot.choropleth(column="lfp_rate", title="Labor Force Participation").show()

Housing Cost Burden Explorer

# Load housing cost data with automatic county boundaries
housing = pmg.read("census://acs/acs5?year=2022&geography=county&variables=B25070_010E,B25070_001E")

# Calculate and visualize cost burden
housing["burden_30plus"] = housing["B25070_010E"] / housing["B25070_001E"]
housing.plot.choropleth(
    column="burden_30plus",
    title="% Households Spending 30%+ on Housing",
    cmap="OrRd",
    legend=True
).show()

🛠️ Installation

From PyPI (Recommended)

pip install pymapgis

From Source

git clone https://github.com/pymapgis/core.git
cd core
poetry install

📚 Documentation

🤝 Contributing

We welcome contributions! PyMapGIS is an open-source project under the MIT license.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments


Made with ❤️ by the PyMapGIS community

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

pymapgis-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymapgis-0.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file pymapgis-0.1.0.tar.gz.

File metadata

  • Download URL: pymapgis-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pymapgis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 083aaad11bb926334546ec1960c10c252fffeaa70be9b0ab539f6c7ff4022888
MD5 e688f8519c45c72d8e8b6086d68c05d8
BLAKE2b-256 8c0417f062b9e9c809313fe300bdb59dbf0b241373d70c813e1d2f92700dec25

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymapgis-0.1.0.tar.gz:

Publisher: publish.yml on pymapgis/core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymapgis-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pymapgis-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pymapgis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3198a2f201d884b79527fbc78aadf9faf5ae053778b32e4f603e5cdf141290b3
MD5 b4a79867ae3ac04b204dba1f0e52ba31
BLAKE2b-256 7bb0e1096330be683cf22b6ef04604446ac9696d2892a3307e58463623ff1890

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymapgis-0.1.0-py3-none-any.whl:

Publisher: publish.yml on pymapgis/core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page