Python tool to extract large-amounts of OpenStreetMap data
Project description
earth-osm. Python tool to extract large-amounts of OpenStreetMap data
earth-osm is a python package that provides an end-to-end solution to extract & standardize power infrastructure data from OpenStreetmap (OSM).
Features
- Extracts power infrastructure data from OSM
- Cleans and Standardizes the data (coming soon)
- No API rate limits (data served from GeoFabrik)
- Provides a Python API
- Supports multiprocessing
- Outputs .csv and .geojson files
- Aggregate data per feature or per region
- Easy to use CLI interface
Getting Started
Install earth-osm with pip:
pip install earth-osm
Or with conda:
conda install --channel=conda-forge earth-osm
Extract osm data
# Example CLI command
earth_osm extract power --regions benin monaco --features substation line
This will extract
primary feature = power for the regions = benin and monaco and the secondary features = substation and line.
By default the resulting .csv and .geojson are stored in ./earth_data/out
Load the substation data for benin using pandas
# For Pandas
df_substations = pd.read_csv('./earth_data/out/BJ_raw_substations.csv')
# For GeoPandas
gdf_substations = gpd.read_file('./earth_data/out/BJ_raw_substations.geojson')
Other Arguments
usage: earth_osm extract primary --regions region1, region2 --features feature1, feature2 --data_dir DATA_DIR [--update] [--mp]
primary (e.g power, water, road, etc) NOTE: currently only power is supported
--regions region1 region2 ... (use either iso3166-1:alpha2 or iso3166-2 codes or full names as given by running 'earth_osm view regions')
--features feature1 feature2 ... (optional, use sub-features of primary feature, e.g. substation, line, etc)
--update (optional, update existing data, default False)
--mp (optional, use multiprocessing, default True)
--data_dir (optional, path to data directory, default './earth_data')
--out_format (optional, export format options csv or geojson, default csv)
--out_aggregate (options, combine outputs per feature, default False)
Advanced Usage
import earth_osm as eo
eo.save_osm_data(
primary_name = 'power',
region_list = ['benin', 'monaco'],
feature_list = ['substation', 'line'],
update = False,
mp = True,
data_dir = './earth_data',
out_format = ['csv', 'geojson'],
out_aggregate = False,
)
Development
(Optional) Intstall a specific version of earth_osm
pip install git+https://github.com/pypsa-meets-earth/earth-osm.git@<required-commit-hash>
(Optional) Create a virtual environment for python>=3.10
python3 -m venv .venv
source .venv/bin/activate
Read the CONTRIBUTING.md file.
pip install git+https://github.com/pypsa-meets-earth/earth-osm.git
pip install -r requirements-test.txt
Project details
Release history Release notifications | RSS feed
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 earth_osm-2.1.tar.gz
.
File metadata
- Download URL: earth_osm-2.1.tar.gz
- Upload date:
- Size: 131.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4920dea9e9b5bfc23e38f554036837ef6b8e74ebd605afbc1210e3894463ee3 |
|
MD5 | fa6f52f37f49f2392d93a5f72f02f49f |
|
BLAKE2b-256 | c6d9f9f0641988802a75c3742b793b86387b2b86c1a6ec5cfa83d07ca87b4898 |
File details
Details for the file earth_osm-2.1-py3-none-any.whl
.
File metadata
- Download URL: earth_osm-2.1-py3-none-any.whl
- Upload date:
- Size: 133.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0549b3f76f2ec7cae979a4720bde5d6b35872706bf5c944e694b7eae90d147d1 |
|
MD5 | d731abf5e898514b28024c72c1127dc6 |
|
BLAKE2b-256 | dc7d1a8b62db486a447dfe9eefa5da85d6fc2b6938f2360a5f5a786af4a3f6bd |