watersehd.mp4
Herramienta para el cálculo de una cuenca hidrográfica a partir de un DTM (GeoTIFF) y las coordenadas del punto de salida. Backend en Django + DRF y frontend en React.
- Django + DRF con endpoints para:
- Previsualizar DTM: convierte GeoTIFF a PNG georreferenciado con bounds en EPSG:4326.
- Delinear cuenca: calcula la cuenca que drena hacia un punto (pour point) usando
pysheds.
- Dependencias clave:
rasterio,shapely,pyproj,pysheds,numpy,pillow. - Configuración mínima para despliegue local.
Estructura principal:
geodetic_calculator/manage.pygeodetic_calculator/geodetic_calculator/settings.pygeodetic_calculator/geodetic_calculator/urls.pygeodetic_calculator/hidrologia_app/views.pygeodetic_calculator/hidrologia_app/utils.pygeodetic_calculator/requirements.txtgeodetic_calculator/Dockerfilegeodetic_calculator/docker-compose.ymlgeodetic_calculator/.env
Endpoints (backend):
POST /hydrology/geotiff-to-png-reproy/- FormData:
dtm_file - Respuesta:
{ png_data_url, bounds }
- FormData:
POST /hydrology/watershed/- FormData:
dtm_file,pour_point({"type":"Point","coordinates":[lon,lat]}),snap_radius_cells(opcional) - Respuesta:
FeatureCollectionconarea_m2,area_ha,perimeter_mymetacon el punto ajustado
- FormData:
GET /health/
- React (CRA) con una sola pantalla para:
- Cargar DTM (GeoTIFF) y previsualizarlo en el mapa.
- Seleccionar el punto de salida (clic en mapa o ingreso manual).
- Ejecutar cálculo de cuenca y descargar GeoJSON.
- Dependencias clave:
react,axios,leaflet.
Estructura principal:
geocodev-frontend/src/App.jsgeocodev-frontend/src/WatershedTool.jsxgeocodev-frontend/src/utils/api.jsxgeocodev-frontend/Dockerfilegeocodev-frontend/.envgeocodev-frontend/.env.production
- Docker + Docker Compose
- (Opcional para desarrollo sin Docker) Python 3.11 y Node 20
git clone https://github.com/Rening23/Geocodev-Watershed.git
cd geocodev-CuencasDesde la carpeta raíz del repo:
docker compose -f geodetic_calculator/docker-compose.yml up --buildServicios:
- Backend:
http://localhost:8000 - Frontend:
http://localhost:3000
cd geodetic_calculator
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver 0.0.0.0:8000cd geocodev-frontend
yarn install
yarn startBackend (geodetic_calculator/.env):
DJANGO_SECRET_KEY=change-me
DEBUG=True
ALLOWED_HOSTS=*
Frontend (geocodev-frontend/.env):
REACT_APP_API_URL=http://localhost:8000
- El backend está configurado para SQLite por defecto.
- Para producción, configura
DJANGO_SECRET_KEY,DEBUG=FalseyALLOWED_HOSTSapropiados.