https://github.com/moeyensj/difi
Did I Find It?
https://github.com/moeyensj/difi
asteroids docker linkage minor-planets python small-body solar-system
Last synced: 19 days ago
JSON representation
Did I Find It?
- Host: GitHub
- URL: https://github.com/moeyensj/difi
- Owner: moeyensj
- License: bsd-3-clause
- Created: 2018-10-14T15:34:24.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T21:53:13.000Z (12 months ago)
- Last Synced: 2025-08-19T00:04:12.623Z (about 2 months ago)
- Topics: asteroids, docker, linkage, minor-planets, python, small-body, solar-system
- Language: Python
- Homepage:
- Size: 7.2 MB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# difi
Did I Find It?[](https://img.shields.io/badge/Python-3.8%2B-blue)
[](https://opensource.org/licenses/BSD-3-Clause)
[](https://zenodo.org/badge/latestdoi/152989392)
[](https://github.com/moeyensj/difi/actions/workflows/docker-build-lint-test.yml)
[](https://github.com/moeyensj/difi/actions/workflows/conda-build-lint-test.yml)
[](https://github.com/moeyensj/difi/actions/workflows/pip-build-lint-test-coverage.yml)
[](https://github.com/pre-commit/pre-commit)
[](https://coveralls.io/github/moeyensj/difi?branch=main)
[](https://hub.docker.com/r/moeyensj/difi)
[](https://anaconda.org/moeyensj/difi)
[](https://anaconda.org/moeyensj/difi)
[](https://anaconda.org/moeyensj/difi)## About
`difi` is a simple package that takes pre-formatted linkage information from software such as [MOPS](https://github.com/lsst/mops_daymops), [pytrax](https://github.com/pytrax/pytrax), or [THOR](https://github.com/moeyensj/thor) and analyzes which objects have been found given a set of known labels (or truths). A key performance criteria is that `difi` needs to be fast by avoiding Python for loops and instead uses clever `pandas.DataFrame` manipulation.## Installation
### Released Versions
#### Anaconda
`difi` can be downloaded directly from anaconda:
```conda install -c moeyensj difi```Or, if preferred, installed into its own environment via:
```conda create -n difi_py310 -c moeyensj difi python=3.10```#### Pip
`difi` is also available from the Python package index:
```pip install difi```#### Docker
A Docker container with the latest version of the code can be pulled using:
```docker pull moeyensj/difi:latest```To run the container:
```docker run -it moeyensj/difi:latest```The difi code is installed the /projects directory, and is by default also installed in the container's Python installation.
### Latest From Source
#### Anaconda
Clone this repository using either `ssh` or `https`. Once cloned and downloaded, `cd` into the repository.To install difi in its own `conda` environment please do the following:
```conda create -n difi_py310 -c defaults -c conda-forge --file requirements.txt python=3.10```Or, to install difi in a pre-existing `conda` environment called `difi_py310`:
```conda activate difi_py310```
```conda install -c defaults -c conda-forge --file requirements.txt```#### Pip
Or, to install `difi` software using `pip`:
```pip install .```Or, if you would like to make an editable install then:
```pip install -e .[tests]```You should now be able to start Python and import difi.
#### Docker Compose
After cloning this repository, you can build a docker image that will allow you to develop the source code:
```docker compose build difi```
To run the docker container interatively with a terminal:
```docker compose run -it difi```
### Developing
If you would like to contribute to `difi`, please make sure to initialize `pre-commit`. Pre-commit will automatically lint and format
the source code after any changes have been staged for a commit. To load the appropriate hooks please run:```pre-commit install```
## Example and Tutorial
The example below can be found in greater detail in this [Jupyter Notebook](https://github.com/moeyensj/difi/tree/main/examples/tutorial.ipynb).