landlensdb

Streamlined geospatial image handling and database management with Python and PostGIS

https://github.com/landlensdb/landlensdb

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Streamlined geospatial image handling and database management with Python and PostGIS

Basic Info
  • Host: GitHub
  • Owner: landlensdb
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage: https://landlensdb.sefa.ai
  • Size: 229 MB
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 3
  • Open Issues: 7
  • Releases: 4
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

landlensdb: Geospatial Image Handling and Management

Binder PyPI Docker Pulls Contributors Downloads Tests DOI

Streamlined geospatial image handling and database management

Overview

landlensdb helps you manage geolocated images and integrate them with other spatial data sources. The library supports: - Image downloading and storage - EXIF/geotag extraction - Road-network alignment - PostgreSQL integration

This workflow is designed for geo-data scientists, map enthusiasts, and anyone needing to process large sets of georeferenced images.

Features

  • GeoImageFrame Management: Download, map, and convert geolocated images into a GeoDataFrame-like structure.
  • Mapillary API Integration: Fetch and analyze images with geospatial metadata.
  • EXIF Data Processing: Extract geolocation, timestamps, and orientation from image metadata.
  • Database Operations: Store image records in PostgreSQL; retrieve them by location or time.
  • Road Network Alignment: Snap image captures to road networks for precise route mapping.

Installation

Install the latest release from PyPI:

pip install landlensdb

Dependencies

[!IMPORTANT] You MUST have both GDAL and PostgreSQL with PostGIS installed to use landlensdb.
- See GDAL Docs for instructions on installing GDAL.
- See PostGIS for installing PostGIS on top of PostgreSQL.

Minimum Requirements:

  • GDAL ≥ 3.5 (ensure command-line tools work, e.g., gdalinfo --version)
  • PostgreSQL ≥ 14
  • PostGIS ≥ 3.5 (the extension must be installed in your PostgreSQL database)
  • Python ≥ 3.10

Quick Start

Below is a minimal example creating a GeoImageFrame:

```python from landlensdb.geoclasses import GeoImageFrame from shapely.geometry import Point

Create a simple GeoImageFrame from scratch

geoframe = GeoImageFrame( { "imageurl": ["https://example.com/image1.jpg"], "name": ["SampleImage"], "geometry": [Point(-120.5, 35.2)] } )

print(geo_frame.head()) ```

For additional usage examples, see our documentation.

Documentation

Full documentation (including tutorials and advanced usage) is available in this repository's docs/ folder. You can build the docs locally by installing the optional [docs] extras:

pip install -e '.[docs]' mkdocs serve

Then open http://127.0.0.1:8000/ in your browser.

Developer Guides

Local Development 1. Clone this repository. 2. Install in editable mode with dev extras: pip install --upgrade pip pip install -e .[dev] 3. Make changes as needed and contribute via Pull Requests.

Testing

We use pytest for testing. Tests requires the following test database. Create if does not exist:

bash createdb landlens_test && psql landlens_test -c "create extension postgis"

Then, we can run the tests:

bash pytest tests

You can also run specific test files or functions, for example:

pytest tests/test_geoimageframe.py

Code Formatting & Pre-commit

landlensdb uses Black for formatting. Once you’ve installed [dev] extras:

pre-commit install pre-commit run --all-files

This enforces linting and formatting on each commit.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to open issues, submit pull requests, and follow our code of conduct.

License

This project is licensed under the MIT License. See LICENSE.md for details.

Owner

  • Name: landlensdb
  • Login: landlensdb
  • Kind: organization

Citation (CITATION.cff)

abstract: "Streamlined geospatial image handling and database management. landlensdb helps you manage geolocated images and integrate them with other spatial data sources."
authors:
  - family-names: Tsutsumida
    given-names: Narumasa
    orcid: "https://orcid.org/0000-0002-6333-0301"
  - family-names: Percival
    given-names: Joseph
    orcid: "https://orcid.org/0000-0001-5941-4601"
cff-version: 1.2.0
date-released: "2025-05-28"
identifiers:
  - description: "version 0.1.4"
    type: doi
    value: 10.5281/zenodo.15206060
keywords:
  - "street level imagery"
  - "data management"
license: MIT
repository-code: "https://github.com/landlensdb/landlensdb"
title: "landlensdb: Geospatial Image Handling and Management"
version: 0.1.4

GitHub Events

Total
  • Create event: 15
  • Release event: 5
  • Issues event: 1
  • Watch event: 5
  • Delete event: 3
  • Issue comment event: 1
  • Member event: 1
  • Push event: 30
  • Public event: 1
  • Pull request review event: 2
  • Pull request event: 15
  • Fork event: 3
Last Year
  • Create event: 15
  • Release event: 5
  • Issues event: 1
  • Watch event: 5
  • Delete event: 3
  • Issue comment event: 1
  • Member event: 1
  • Push event: 30
  • Public event: 1
  • Pull request review event: 2
  • Pull request event: 15
  • Fork event: 3

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 57 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
pypi.org: landlensdb

Geospatial image handling and management

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 57 Last month
Rankings
Dependent packages count: 9.5%
Average: 31.4%
Dependent repos count: 53.3%
Maintainers (1)
Last synced: 10 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v5 composite
  • postgis/postgis 15-3.3 docker
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • docker/login-action v2 composite
Dockerfile docker
  • jupyter/base-notebook latest build
pyproject.toml pypi
  • Pillow >=11.0.0
  • Rtree >=1.4.0
  • SQLAlchemy >=2.0.25
  • folium >=0.19.1
  • geoalchemy2 >=0.17.1
  • geopandas >=1.0.1
  • mapbox_vector_tile >=2.1.0
  • numpy >=2.2.4
  • osmnx >=2.0.1
  • pandas >=2.2.0
  • psycopg2 >=2.9.9
  • pyogrio >=0.10.0
  • pytz >=2025.1
  • requests >=2.32.0
  • shapely >=2.0.0
  • timezonefinder >=6.5.8
  • tqdm >=4.67.1