Skip to main content

No project description provided

Project description

Niamoto Logo

Niamoto

A powerful CLI tool for ecological data management and visualization

Transform your ecological data into interactive websites with taxonomic analysis, statistical insights, and beautiful visualizations.

PyPI - Version Python Versions License Codecov (with branch) Read the Docs (version)

๐Ÿ”— View Live Demo | ๐Ÿ“– Browse Documentation

๐Ÿš€ Quick Start

# Install Niamoto
pip install niamoto

# Initialize your project
niamoto init

# Import your data
niamoto import

# Generate statistics
niamoto transform

# Create your website
niamoto export

โœจ That's it! Your ecological data website is ready at exports/web/.

๐Ÿ–ผ๏ธ Screenshots

Taxonomic Index Page

Taxonomic Index Browse and search through your taxonomic data with interactive filters

Taxon Detail Page

Taxon Detail Detailed view with statistics, distributions, and interactive visualizations

โœจ Features

  • ๐ŸŒฟ Ecological Data Management - Import and manage taxonomic, occurrence, and plot data
  • ๐Ÿ“Š Statistical Analysis - Built-in plugins for distributions, rankings, and summaries
  • ๐Ÿ—บ๏ธ Geospatial Analysis - Interactive maps and spatial statistics
  • ๐Ÿ“ˆ Data Visualization - Charts, maps, and dashboards with Plotly
  • ๐Ÿ—๏ธ Plugin System - Extensible architecture for custom transformations and generations
  • ๐ŸŒ Static Site Generation - Generate fast, SEO-friendly websites
  • โšก CLI Interface - Simple commands for the entire workflow
  • ๐Ÿ”ง Configuration-Driven - YAML-based configuration for reproducibility

๐ŸŽฏ Use Cases

Niamoto is perfect for:

  • Research Institutions - Manage biodiversity databases and generate research websites
  • Conservation Organizations - Track species distributions and create public dashboards
  • Botanical Gardens - Document collections and share taxonomic information
  • Environmental Consultants - Analyze ecological data and create client reports
  • Government Agencies - Monitor biodiversity and publish open data portals

๐Ÿ“– Table of Contents

๐Ÿ“ฆ Installation

For Users

pip install niamoto

For Developers

# Clone and setup development environment
git clone https://github.com/niamoto/niamoto.git
cd niamoto
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"

๐Ÿ“‹ Detailed Installation Guide

๐Ÿƒโ€โ™‚๏ธ Usage

Initial Setup

# Initialize your project
niamoto init

# This creates the default configuration files:
# - config/config.yml     (global settings)
# - config/import.yml     (data sources)
# - config/transform.yml  (data processing)
# - config/export.yml     (website generation)

Data Import

# Import all data sources from import.yml
niamoto import

# Or import specific data types
niamoto import taxonomy <file>
niamoto import occurrences <file>
niamoto import plots <file>

Generate Statistics and Website

# Process data transformations
niamoto transform

# Generate static website
niamoto export

# Your website is ready at exports/web/

๐Ÿ“– Complete CLI Reference | Data Import Guide

๐Ÿ“‚ Project Structure

config/          - YAML configuration files for data pipeline:
  config.yml     - Global configuration options
  import.yml     - Data import configuration
  transform.yml  - Data transformation configuration
  export.yml     - Widget and chart configurations

db/              - Database files and schemas
exports/         - Generated widget data and statistics
imports/         - Raw data files (CSV, shapefiles, rasters)
logs/            - Application logs and debug information
plugins/         - Custom plugin directory for extending functionality
templates/       - Custom Jinja2 templates for website generation

๐Ÿ”ง Configuration

Niamoto uses YAML configuration files to define your data pipeline:

  • config/import.yml - Data sources (CSV, GIS files)
  • config/transform.yml - Data processing and statistics
  • config/export.yml - Website generation and visualizations

๐Ÿ“– Complete Configuration Guide | Data Import Guide

๐Ÿงฉ Plugin System

Niamoto includes built-in plugins for data transformation and visualization, with support for custom plugins.

๐Ÿ“– Plugin Development Guide | Plugin API Reference

๐Ÿ‘ฉโ€๐Ÿ’ป Development

For development setup, testing, and contribution guidelines:

๐Ÿ“– Development Setup Guide | Contributing Guidelines

๐Ÿ“š Documentation

The complete documentation is available in the docs/ directory and online:

To build the documentation locally:

cd docs
sphinx-apidoc -o . ../src/niamoto
make html

๐Ÿค Contributing

We welcome contributions to Niamoto! Here's how you can help:

  1. Check for open issues or open a new issue to start a discussion
  2. Fork the repository and create your feature branch
  3. Write tests for new features and ensure existing tests pass
  4. Follow our coding standards (Black formatting, type hints, docstrings)
  5. Submit a pull request

๐Ÿ“– Contributing Guide

๐Ÿ“„ License

niamoto is distributed under the terms of the GPL-3.0-or-later license.

โ“ FAQ

What data formats does Niamoto support?

Niamoto supports CSV files for taxonomic and occurrence data, and common GIS formats (Shapefile, GeoPackage, GeoTIFF) for spatial data.

Can I customize the generated website?

Yes! Niamoto uses Jinja2 templates and supports custom CSS. You can completely customize the look and feel of your website.

How do I add custom data transformations?

You can create custom plugins by extending the base plugin classes. See our Plugin Development Guide.

Is Niamoto suitable for large datasets?

Yes! Niamoto uses SQLite with spatial extensions and is optimized for performance. It can handle datasets with millions of records efficiently.

๐Ÿค Community & Support

๐Ÿ“… Changelog

See CHANGELOG.md for a list of changes in each release.

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

niamoto-0.12.3.tar.gz (25.8 MB view details)

Uploaded Source

Built Distribution

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

niamoto-0.12.3-py3-none-any.whl (25.5 MB view details)

Uploaded Python 3

File details

Details for the file niamoto-0.12.3.tar.gz.

File metadata

  • Download URL: niamoto-0.12.3.tar.gz
  • Upload date:
  • Size: 25.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for niamoto-0.12.3.tar.gz
Algorithm Hash digest
SHA256 f408576d7d14c2146eff3dafbee7605f90424b09b7f883522d7ac56c47131738
MD5 8982c733e67aaeb21f9569283a09bbd7
BLAKE2b-256 7da15c8ac19afd091e49d94c56d5df932fbb9a44a90b5ed025940cdd8d4595b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for niamoto-0.12.3.tar.gz:

Publisher: publish-pypi.yml on niamoto/niamoto

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

File details

Details for the file niamoto-0.12.3-py3-none-any.whl.

File metadata

  • Download URL: niamoto-0.12.3-py3-none-any.whl
  • Upload date:
  • Size: 25.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for niamoto-0.12.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f331beb7bcf9c6ea610a844087de40d5a87e3a7ab4b76ca42a8912f6a9bfe795
MD5 b2ffa361241b3a2219d30da228b13285
BLAKE2b-256 b950ca61da0e802bd7419d75d4e0791c63d05b1700a4cfaf0c7ac0e525fec58e

See more details on using hashes here.

Provenance

The following attestation bundles were made for niamoto-0.12.3-py3-none-any.whl:

Publisher: publish-pypi.yml on niamoto/niamoto

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