Skip to main content

Toolkits for Geospatial Machine Learning

Project description

Geo ML Toolkits

Toolkits for GeoML workflows

Currently it supports for downloading and processing geospatial data from Open Aerial Map (OAM) and OpenStreetMap (OSM). This toolkit allows you to define an area of interest, download aerial imagery and OSM data, and generate training data for machine learning models.

Installation

To install the GeoML Toolkits, you can use pip:

pip install geomltoolkits

Usage

Python Example

Below is an example of how to use the GeoML Toolkits to download and process geospatial data.

import os
from geomltoolkits.downloader import tms as TMSDownloader
from geomltoolkits.downloader import osm as OSMDownloader

# Define area of interest
ZOOM = 18
WORK_DIR = "banepa"
TMS = "https://tiles.openaerialmap.org/62d85d11d8499800053796c1/0/62d85d11d8499800053796c2/{z}/{x}/{y}"
BBOX = [85.514668, 27.628367, 85.528875, 27.638514]

# Create working directory
os.makedirs(WORK_DIR, exist_ok=True)

# Download tiles
await TMSDownloader.download_tiles(
    tms=TMS,
    zoom=ZOOM,
    out=WORK_DIR,
    bbox=BBOX,
    georeference=True,
    dump=True,
    prefix="OAM"
)

# Download OSM data for tile boundary
tiles_geojson = os.path.join(WORK_DIR, "tiles.geojson")
await OSMDownloader.download_osm_data(
    geojson=tiles_geojson,
    out=os.path.join(WORK_DIR, "labels"),
    dump=True,
    split=True
)

Learn more here

Command Line Usage

if you install the python package it will by default install following commands

  • tmd: tms downloader
  • osd : openstreetmap downloader
  • reg : footprints regularizer

You can see the helper function and shoot your command

You can also use the provided Bash script to run the GeoML Toolkits from the command line. Take a look here

Splitting OSM Data

If the split argument is set to True, the downloaded OSM data will be split based on the tiles defined in tiles.geojson. Each resulting GeoJSON file will be named according to the tile's x, y, and z values.

Installation and Setup

Prerequisites

  • Python 3.10 or higher
  • poetry

Install Poetry

If you don't have poetry installed, you can install it using the following command:

pip install poetry

Install

poetry install

Install lib locally

pip install -e . 

Detailed Usage Instructions

Downloading Tiles

To download tiles from a Tile Map Service (TMS), you can use the download_tiles function from the tms module. Here is an example:

import os
from geomltoolkits.downloader import tms as TMSDownloader

# Define area of interest
ZOOM = 18
WORK_DIR = "banepa"
TMS = "https://tiles.openaerialmap.org/62d85d11d8499800053796c1/0/62d85d11d8499800053796c2/{z}/{x}/{y}"
BBOX = [85.514668, 27.628367, 85.528875, 27.638514]

# Create working directory
os.makedirs(WORK_DIR, exist_ok=True)

# Download tiles
await TMSDownloader.download_tiles(
    tms=TMS,
    zoom=ZOOM,
    out=WORK_DIR,
    bbox=BBOX,
    georeference=True,
    dump=True,
    prefix="OAM"
)

Downloading OSM Data

To download OpenStreetMap (OSM) data for a given area of interest, you can use the download_osm_data function from the osm module. Here is an example:

import os
from geomltoolkits.downloader import osm as OSMDownloader

# Define area of interest
WORK_DIR = "banepa"
tiles_geojson = os.path.join(WORK_DIR, "tiles.geojson")

# Download OSM data for tile boundary
await OSMDownloader.download_osm_data(
    geojson=tiles_geojson,
    out=os.path.join(WORK_DIR, "labels"),
    dump=True,
    split=True
)

Regularizing Footprints

To regularize building footprints, you can use the VectorizeMasks class from the regularizer module. Here is an example:

import os
from geomltoolkits.regularizer import VectorizeMasks

# Define input and output files
input_tiff = "path/to/input.tiff"
output_geojson = "path/to/output.geojson"

# Create a VectorizeMasks instance
converter = VectorizeMasks(
    simplify_tolerance=0.2,
    min_area=1.0,
    orthogonalize=True,
    algorithm="potrace",
    tmp_dir=os.getcwd()
)

# Run the conversion
converter.convert(input_tiff, output_geojson)

Command Line Usage

The GeoML Toolkits also provide command line interfaces for downloading tiles, downloading OSM data, and regularizing footprints. Here are the commands:

  • tmd: TMS downloader
  • osd: OpenStreetMap downloader
  • reg: Footprints regularizer

You can use the --help option with each command to see the available options and usage instructions. For example:

tmd --help
osd --help
reg --help

Example Usage

For a complete example of how to use the GeoML Toolkits, you can refer to the example_usage.ipynb notebook. It provides detailed explanations and usage examples for all functionalities.

Installation Steps

To install the GeoML Toolkits, you can use pip:

pip install geomltoolkits

If you want to install the library locally for development, you can use the following commands:

pip install poetry
poetry install
pip install -e .

Running the Bash Script

You can also use the provided Bash script to run the GeoML Toolkits from the command line. Here is an example:

./run.sh

The script will download tiles, download OSM data, and regularize footprints based on the specified parameters.

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

geomltoolkits-0.1.2.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

geomltoolkits-0.1.2-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file geomltoolkits-0.1.2.tar.gz.

File metadata

  • Download URL: geomltoolkits-0.1.2.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.11 Linux/6.8.0-1021-azure

File hashes

Hashes for geomltoolkits-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4f4a66523e4c5acb23d0d7145dcca6b5170b84196f77664f0e9a1f8b4532d9a8
MD5 f9cb244dc9a4f1539d3c04c7e532f1ae
BLAKE2b-256 c78383f984caa32c53f5eb8422f8f036180686cf246ebf8262071b48116e9d37

See more details on using hashes here.

File details

Details for the file geomltoolkits-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: geomltoolkits-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.11 Linux/6.8.0-1021-azure

File hashes

Hashes for geomltoolkits-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 261c23397a64bdfff4b28add8f5bdf535b17bf3452c261e0f5a6bc04abe6edfc
MD5 9c779e48387a00d40377d6bcdc0f44a9
BLAKE2b-256 07b6ee8384e024e4b4c66b24283e7775ea7578b8bfa74afbb4437700ba6f64e3

See more details on using hashes here.

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