Geo2Zip is a Python package that provides a fast and efficient way to find the closest US ZIP code for a given latitude and longitude. It uses a KDTree for quick nearest-neighbor lookup, making it suitable for geospatial queries.
Project description
Geo2Zip
Geo2Zip is a Python package that provides a fast and efficient way to find the closest ZIP/Postal code for a given latitude and longitude. It uses a KDTree for quick nearest-neighbor lookup, making it suitable for geospatial queries.
The package includes Canada and US ZIP/postal codes and their geolocation as out-of-the-boxdatasets.
Current version: 0.1.6
Features
- Quickly find the closest ZIP code for a given latitude and longitude.
- Efficient spatial indexing using KDTree.
- Easy-to-use command-line interface.
Installation
Prerequisites
- Python 3.7 or higher
- pip
Install the package
-
Clone the repository:
git clone https://github.com/jlopex/geo2zip.git cd geo2zip
-
Install the package and its dependencies:
pip install -e .
-
Install development dependencies (for testing):
pip install -e .[dev]
Usage
Command Line Interface
You can use the geo2zip
command to find the closest ZIP code for a given latitude and longitude.
geo2zip <latitude> <longitude>
Example:
geo2zip 37.7749 -122.4194
This command will output the closest ZIP code to the provided coordinates.
As a Python Library
You can also use the Geo2Zip class directly with your own dataset in your Python code doing:
from geo2zip import Geo2Zip
# Initialize with the path to your data file
geo2zip = Geo2Zip('path/to/geo_zip/data/your.csv')
# Find the closest ZIP code
latitude = 37.7749
longitude = -122.4194
closest_zip = geo2zip.find_closest_zip(latitude, longitude)
print(f"The closest ZIP code to ({latitude}, {longitude}) is {closest_zip}")
Data
The dataset used for US ZIP codes and their coordinates is extracted from the 2023 US Gazetteer Files. The CSV file is included in the package at geo2zip/data/us.csv.
The dataset used for Canada postal codes and their coordinates is taken from here. The CSV file is included in the package at geo2zip/data/ca.csv.
Testing
Simple and stupid Tests are written using pytest. To run the tests, execute the following command:
pytest tests/
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
Built Distribution
File details
Details for the file geo2zip-0.1.6.tar.gz
.
File metadata
- Download URL: geo2zip-0.1.6.tar.gz
- Upload date:
- Size: 8.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75f42d5bf718fd4e550621e9691378dbc75d161b4ab71269af88cc81cbe100b2 |
|
MD5 | 17bb59d16e437a69f15e0ec54e36d142 |
|
BLAKE2b-256 | 683fccd1e2a3d6e9ae65113c954c387e5214996898226a27165b5ac63844da4a |
File details
Details for the file geo2zip-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: geo2zip-0.1.6-py3-none-any.whl
- Upload date:
- Size: 8.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c6559645b3b591ba9a96b98d1c9ef313f9f192438c948cce421f2c0b8c4b0b |
|
MD5 | 9f579ebc540eeb899c5202d474c411dd |
|
BLAKE2b-256 | 271cbcadc3edf468f44a755304c708566c91871c18352a40de6a89e486a4543c |