culicidaelab-server

0

Описание

Языки

  • Python66,3%
  • HTML13,4%
  • Shell12,3%
  • PowerShell4,5%
  • JavaScript2%
  • CSS0,8%
  • Остальные0,7%
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
6 месяцев назад
7 месяцев назад
7 месяцев назад
6 месяцев назад
6 месяцев назад
README.md

Mosquito Tracking & Analysis Platform

Ruff Ask DeepWiki


CulicidaeLab Server is a comprehensive web platform for mosquito research, surveillance, and data analysis. It combines a Python-based backend API (FastAPI) with a dynamic frontend (Solara) to provide tools for species prediction, data visualization, and information retrieval related to mosquitoes and vector-borne diseases.

CulicidaeLab Ecosystem Architecture

An open-source system for mosquito research and analysis includes components:

These components form a cohesive ecosystem where datasets used for training models that power applications, the Python library provides core functionality to the web server, and the server exposes services consumed by the mobile application. All components are openly licensed, promoting transparency and collaboration.

This integrated approach enables comprehensive mosquito research, from data collection to analysis and visualization, supporting both scientific research and public health initiatives.

✨ Key Features of
culicidaelab-server

  • AI-Powered Species Prediction: Upload mosquito images for species identification.
  • Interactive Map Visualization: Explore mosquito distribution and observations on a map.
  • Species Database: Access detailed information about various mosquito species.
  • Disease Information Hub: Learn about mosquito-borne diseases, their vectors, symptoms, and prevention.

Practical Applications of the
culicidaelab-server

  • Control and Monitoring Centers:

    • Data Aggregation: Collecting and visualizing all data from the mobile app and other sources on an interactive map.
    • Analytical Dashboard: Providing epidemiologists and public health authorities with a tool to analyze population dynamics, identify hotspots, and assess risks.
  • Planning and Decision-Making:

    • Resource Optimization: City and regional authorities can use the hotspot map to plan and conduct targeted treatments of areas, saving resources and reducing environmental impact.
    • Effectiveness Assessment: Analyzing data before and after mosquito control interventions to evaluate their effectiveness.
  • Public Information Portal:

    • An open map that informs citizens about the epidemiological situation in their region.

🔧Requirements

Hardware Requirements

Processor (CPU): Any modern x86-64 CPU.

Memory (RAM): Minimum 2 GB. 8 GB or more is recommended for processing large datasets or using more complex models.

Graphics Card (GPU): An NVIDIA GPU with CUDA support is highly recommended for a significant performance increase in deep learning model operations, especially for detection and segmentation but not essential for classification (see

library performance logs, performance reports of
culicidaelab-server
ang notebook). For the SAM model, a GPU is virtually essential for acceptable performance. Minimum video memory is 2 GB; 4 GB or more is recommended.

Hard Drive: At least 10 GB of free space to install the library, dependencies, download pre-trained models, and store processed data.

Software Requirements

Operating Systems (tested):

  • Windows 10/11
  • Linux 22.04+

Software:

  • for Linux needed libgl1 package to be installed
  • Git
  • Python 3.11
  • uv 0.8.13

Python packages:

Backend:

  • FastAPI: High-performance web framework for building APIs.
  • Uvicorn: ASGI server.
  • LanceDB: Vector database for efficient similarity search and data storage.

Frontend:

  • Solara: Pure Python web framework for building reactive web applications.
  • ipyleaflet - map components for Solara.

Data Formats:

🚀 Getting Started

Installation & Setup

  1. Clone the repository:
  1. Install dependencies with pip:

Note: If you are using uv, you can install dependencies with uv:

  1. Generate Sample Data:

This script creates the JSON/GeoJSON files that the backend's

initialize_db
script might use, and that the frontend might load directly or via the API.

This will create files like

sample_species.json
,
sample_observations.geojson
, etc., in the
sample_data/
directory.

  1. Initialize the Backend Database:

This script sets up LanceDB tables and populates them using the generated sample JSON files. (Ensure the paths in

backend/scripts/initialize_db.py
point to the correct location of
sample_species.json
and
sample_diseases.json
, likely
../sample_data/
if run from
backend/scripts/
or adjusted accordingly).

Check if generation successful by checking the LanceDB database.

Running the Application

  1. Run the Backend API Server: Navigate to the project root (or ensure paths in
    uvicorn
    command are correct).

The API will be accessible at

http://localhost:8000
. * Swagger UI:
http://localhost:8000/docs
* ReDoc:
http://localhost:8000/redoc

  1. Run the Frontend Application:

    In a new terminal, navigate to the project root.

The frontend application will be accessible at

http://localhost:8765
(or the port Solara defaults to/you specify).

Deployment

Application can be deployed on any server with minimal configuration (see docs/en/deployment/production.md).

📝 Documentation

The full project documentation can be found here

🌐 Live Demo

Visit http://culicidaelab.ru to see the application in action.

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please see our Contributing Guide for details on our code of conduct, development setup, and the pull request process.

📜 License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.

🙏 Acknowledgments

CulicidaeLab development is supported by a grant from the Foundation for Assistance to Small Innovative Enterprises (FASIE).