Metadata-Version: 2.4
Name: middle-passage
Version: 0.1.0
Summary: Protection-first forensic GIS scaffold for Middle Passage memorial research
Author: Middle Passage Forensic Recovery Project
License-Expression: CC-BY-4.0
Project-URL: Homepage, https://github.com/Yufok1/middle-passage
Project-URL: Repository, https://github.com/Yufok1/middle-passage
Project-URL: Issues, https://github.com/Yufok1/middle-passage/issues
Project-URL: Documentation, https://github.com/Yufok1/middle-passage/tree/main/docs
Keywords: middle-passage,gis,memorial,forensic,maritime-archaeology,humanitarian
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Provides-Extra: gis
Requires-Dist: shapely>=2.0; extra == "gis"
Requires-Dist: pyproj>=3.6; extra == "gis"
Requires-Dist: geojson>=3.0; extra == "gis"
Dynamic: license-file

# middle-passage

> "The ocean kept receipts. We are learning to read them."

Open-source forensic data toolkit for the Middle Passage Forensic Recovery Project.

This package is a protection-first research scaffold for integrating voyage records,
oceanographic assumptions, bathymetry, and memorial GIS outputs. It models
**survey-priority zones**, not certainties, and every output is designed to carry
uncertainty, source references, and non-disturbance language.

**License:** Creative Commons CC BY 4.0  
**Purpose:** Humanitarian. Scientific. Memorial.  
**Status:** Phase 0 scaffold with synthetic-safe defaults.

## Principles

- People, not cargo.
- Ancestors, not artifacts.
- Probability zones, not treasure maps.
- Public methods, careful precision.
- Protection before spectacle.

## Install

After the first PyPI release:

```bash
pip install middle-passage
```

Until then, install from GitHub:

```bash
pip install "middle-passage @ git+https://github.com/Yufok1/middle-passage.git@main"
```

For local development:

```bash
pip install -e .
```

## CLI

Generate a synthetic-safe sample GeoJSON:

```bash
middle-passage sample --output sample.geojson
```

Model survey-priority zones from a voyage CSV:

```bash
middle-passage model-deposits --voyages voyages.csv --output zones.geojson
```

If no voyage file is provided, the CLI uses a clearly marked synthetic sample
for development only.

## Data Sensitivity

The package supports data sensitivity labels:

- `public`: safe public metadata or generalized zones
- `generalized`: public map data with reduced precision
- `restricted`: high-precision working data for qualified review
- `do_not_publish`: sensitive records or coordinates that should not be released

Precise burial-site candidates should not be published casually. Release policy
must be governed by descendant/community review, legal review, and protection risk.

## Current Scope

This first package cut includes:

- flexible CSV voyage loading
- simple voyage filtering
- current-vector drift estimation
- conservative descent/scatter model
- survey-priority zone creation
- GeoJSON FeatureCollection export
- CLI and tests

It does not claim to identify remains. It creates reproducible, inspectable
research objects for future expert validation.

## Release

This package should be published from GitHub with PyPI Trusted Publishing.
See `docs/PYPI_RELEASE.md` for the release checklist.
