Spaces:
Build error
Build error
File size: 1,382 Bytes
ac5007c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from fastapi import APIRouter, HTTPException
import httpx
router = APIRouter()
# Route for extracting terrain data
@router.post("/api/terrain-data")
async def extract_terrain_data(latitude: float, longitude: float):
"""Extract terrain data such as slope or aspect from a given location"""
try:
# Example API call to a terrain data service (replace with actual service)
url = f"https://api.example.com/terrain?latitude={latitude}&longitude={longitude}"
async with httpx.AsyncClient() as client:
response = await client.get(url)
response.raise_for_status()
data = response.json()
# Extract relevant terrain data (e.g., slope, aspect)
slope = data.get("slope")
aspect = data.get("aspect")
if slope is None or aspect is None:
raise Exception("No terrain data found in API response")
return {
"latitude": latitude,
"longitude": longitude,
"slope": slope,
"aspect": aspect
}
except httpx.HTTPStatusError as e:
raise HTTPException(status_code=500, detail=f"Terrain API error: {str(e)}")
except Exception as e:
raise HTTPException(status_code=500, detail=str(e)) |