https://github.com/antonygiomarxdev/crater_detection
https://github.com/antonygiomarxdev/crater_detection
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/antonygiomarxdev/crater_detection
- Owner: antonygiomarxdev
- Created: 2024-11-02T19:39:56.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-11T15:54:51.000Z (over 1 year ago)
- Last Synced: 2025-12-26T12:37:52.336Z (6 months ago)
- Language: Python
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Proyecto de Detección de Cráteres
Este proyecto utiliza **inteligencia artificial** y análisis de imágenes geoespaciales para detectar posibles áreas de impacto de meteoritos. Aprovecha bibliotecas como **TensorFlow** y **rasterio** para el análisis de datos de elevación y la identificación de cráteres en imágenes satelitales.
## Tabla de Contenidos
- [Requisitos](#requisitos)
- [Instalación](#instalación)
- [Estructura del Proyecto](#estructura-del-proyecto)
- [Uso](#uso)
- [Endpoints de la API](#endpoints-de-la-api)
- [Notas sobre Problemas de Compatibilidad](#notas-sobre-problemas-de-compatibilidad)
- [Contribución](#contribución)
---
## Requisitos
- Python 3.9
- [GDAL](https://gdal.org/download.html) (para rasterio en Windows)
- pip o Conda (para gestionar dependencias)
- Docker (opcional, para evitar conflictos de dependencias)
## Instalación
### Opción 1: Instalación con Conda (Recomendado para Windows)
1. Crea y activa un entorno con Conda:
```bash
conda create -n crater_env python=3.9
conda activate crater_env
```
2. Instala las dependencias del proyecto:
```bash
conda install -c conda-forge gdal rasterio
pip install tensorflow==2.10.0 numpy==1.24.3 matplotlib==3.4.3 opencv-python==4.5.4.60 scikit-image==0.18.3 fastapi==0.68.0 uvicorn==0.15.0
```
### Opción 2: Instalación con Docker
1. Asegúrate de tener Docker instalado.
2. Construye la imagen Docker desde el `Dockerfile`:
```bash
docker build -t crater_detection_app .
```
3. Ejecuta el contenedor:
```bash
docker run --rm -p 8000:8000 crater_detection_app
```
### Opción 3: Instalación Manual en Windows (Usando un archivo `.whl` de Rasterio)
1. Descarga el archivo `.whl` de **rasterio** desde [Christoph Gohlke’s Unofficial Windows Binaries](https://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio) para tu versión de Python.
2. Instálalo:
```bash
pip install path\to\rasterio‑1.2.10‑cp39‑cp39‑win_amd64.whl
```
3. Instala las demás dependencias:
```bash
pip install tensorflow==2.10.0 numpy==1.24.3 matplotlib==3.4.3 opencv-python==4.5.4.60 scikit-image==0.18.3 fastapi==0.68.0 uvicorn==0.15.0
```
## Estructura del Proyecto
```plaintext
crater_detection/
├── data/ # Carpeta para datos de elevación
├── models/ # Modelos entrenados
├── src/
│ ├── application/ # Casos de uso
│ ├── domain/ # Entidades de dominio
│ ├── infrastructure/ # Carga de datos y dependencias externas
│ └── presentation/
│ ├── api/ # Endpoints de la API
│ └── main.py # Archivo principal para iniciar la API
└── README.md # Documentación del proyecto
```
## Uso
### Ejecución de la API
1. Asegúrate de tener las dependencias instaladas.
2. Inicia la API usando Docker o directamente con `uvicorn`:
```bash
uvicorn src.presentation.api.main:app --host 0.0.0.0 --port 8000
```
3. La API estará disponible en `http://localhost:8000`.
### Ejemplo de Llamada
Para verificar el estado de la API:
```bash
curl http://localhost:8000/status
```
Para analizar un archivo de imagen de elevación:
```bash
curl -X 'POST' 'http://localhost:8000/analyze' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@path/to/your/image.tif'
```
## Endpoints de la API
- **`GET /status`**: Verifica que la API esté en funcionamiento.
- **`POST /analyze`**: Recibe un archivo de imagen de elevación y devuelve el análisis de cráteres.
## Notas sobre Problemas de Compatibilidad
- En Windows, **rasterio** depende de **GDAL**. Si encuentras problemas al instalar rasterio, considera usar Conda o Docker.
- Asegúrate de usar versiones específicas de **numpy** y **tensorflow** que sean compatibles para evitar conflictos de dependencias.
## Contribución
Si deseas contribuir a este proyecto, por favor abre un **pull request** o reporta problemas en el repositorio. Agradecemos cualquier ayuda para mejorar la detección de cráteres y optimizar el análisis de datos de elevación.