Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance(+) readme and add .gitignore #15

Merged
merged 2 commits into from
Oct 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
*.pickle
/test_env
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
.mypy_cache/
dask-worker-space/

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis
.pytest_cache

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/

# PyBuilder
target/
.idea/

# iPython Notebook
.ipynb_checkpoints

# Mac OS X
.DS_Store
docs/html/

# Generated Documentation
generate/
docs/notebooks/

#Local Visual Studio Code configurations
.vscode/

# used to cache dev install cache
.run/

docker/wheels/
58 changes: 50 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,58 @@
odc.algo
========
## Open Data Cube Algorithms

Algorithm utils of various kind.
[Xarray] and [Dask] friendly EO Processing Algorithms and Utilities.

Installation
------------
> **Note:** This package only contains algorithms. If you want to use them for processing
> EO data, you'll find using [odc-stats] much simpler.


- Cloud Masking
- Geometric Median
- Percentiles
- Dask Aware Raster Reprojection
- Efficiently generating and saving Cloud Optimized GeoTIFFs to S3
- Reshaping Dask Arrays for Efficient Computation
- Converting between Floats with NaNs and Ints with nodata values


[Dask]: https://www.dask.org/
[Xarray]: https://docs.xarray.dev/en/stable/
[odc-stats]: https://github.com/opendatacube/odc-stats

## Installation

```
pip install odc-algo
```

Usage
-----
## Usage

## Building

1. Install the Python build tool. `python -m pip install build`
2. Build this package. `python -m build`


## Development

1. Follow build instructions
2. Install as dev `pip install -e .[dev]`

Alternatively, install with the whl file.


# Tasks

- [ ] Decide whether to use [pixi], or uv. I think pixi, it handles Rust stuff.
- [ ] Document the Geomedian API we're trying to expose. See [odc-stats]
- [ ] Document the Percentile API we're exposing.
- [ ] Regresssion Tests instead of installing old dependencies like hdstats.
- [ ] Update GitHub Actions to build and test Rust backend
- [ ] Update GitHub Actions to build and test against multiple Python versions
- [ ] Consider what type of binary wheels to build. [abi3/multi-python version compatible is tempting]
- [ ] Update Rust dependencies.
- [ ] De-duplicate with [odc-geo]. It includes COG and Warp functionality that's better maintained, but may not be identical...
- [ ] Consider vendoring the skimage morphology functions we're using, instead of depending on the whole thing.

TODO
[odc-geo]: https://github.com/opendatacube/odc-geo
[pixi]: https://pixi.sh/latest/