A backend Python API for computing 3D coverage data for RF receiver antennas based on real terrain data. The API calculates minimum AGL (Above Ground Level) heights at which aircraft can be detected by sensors, taking into account terrain elevation and signal propagation.
Base URL: https://sensor-radar.onrender.com
- ✅ Terrain-based Coverage Calculation - Uses real terrain data for accurate coverage
- ✅ AGL Height Computation - Calculates minimum aircraft heights for detection
- ✅ Fresnel Zone Analysis - Advanced signal propagation modeling
- ✅ Progress Tracking - Real-time job progress monitoring
- ✅ Performance Monitoring - System statistics and cache management
- ✅ RESTful API - Simple HTTP endpoints for easy integration
- Backend: FastAPI (Python)
- Terrain Processing: Rasterio, GDAL
- Signal Processing: SciPy, NumPy
- Deployment: Render
- Documentation: OpenAPI/Swagger
For complete API documentation and integration examples, see:
- API Documentation - Comprehensive integration guide with code examples
Run the test scripts to verify API functionality:
# Test terrain loading
python test_terrain_loading.py
# Test API functionality
python test/api_test.py# Install dependencies
pip install -r requirements.txt
# Start the server
python main.py
# Or use the start script
python start_server.pyPOST /- Submit coverage computation jobGET /progress/{job_id}- Get job progress and resultsGET /performance/stats- System performance statisticsGET /performance/clear-cache- Clear system cachesGET /debug/terrain- Terrain data statusGET /docs- Interactive API documentation
- Simple Authentication - No API keys required, open access to all endpoints
- No External Dependencies - No database or external service integrations
- RESTful Design - Clean HTTP endpoints with JSON request/response
- Real-time Progress - Live job progress monitoring
- Performance Monitoring - Built-in statistics and cache management
- Processing Speed: ~0.016 seconds per cell
- Terrain Data: 150MB London area GeoTIFF
- Coverage Range: Up to 50km
- Height Range: 0-1000m AGL
- Typical Response: 1-5 seconds for 100 cells
# Submit a coverage job
curl -X POST https://sensor-radar.onrender.com/ \
-H "Content-Type: application/json" \
-d '{
"sensor_id": "test-sensor",
"latitude": 51.5074,
"longitude": -0.1278,
"height": 5.0,
"config": {
"maxRange": 5.0,
"minHeight": 0,
"maxHeight": 200,
"heightRes": 10,
"txFrequency": 2400,
"txPower": 30,
"rxSensitivity": -90,
"gridResolution": 0.5,
"fresnelSamplingDensity": 500,
"maxCells": 100
}
}'This project is licensed under the MIT License - see the LICENSE file for details.