355 lines
11 KiB
Python
355 lines
11 KiB
Python
|
|
"""
|
||
|
|
Static mock data for Crop Zoning API.
|
||
|
|
Matches CROP_ZONING_APIS.md. No database, no dynamic values.
|
||
|
|
"""
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# GET /api/crop-zoning/area/
|
||
|
|
# منطقهٔ ثابت — کاربر امکان رسم ندارد
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
AREA_RESPONSE_DATA = {
|
||
|
|
"area": {
|
||
|
|
"type": "Feature",
|
||
|
|
"properties": {},
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.68],
|
||
|
|
[51.405, 35.672],
|
||
|
|
[51.41, 35.695],
|
||
|
|
[51.385, 35.71],
|
||
|
|
[51.365, 35.688],
|
||
|
|
[51.38, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# GET /api/crop-zoning/products/
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
PRODUCTS_RESPONSE_DATA = {
|
||
|
|
"products": [
|
||
|
|
{"id": "wheat", "label": "گندم", "color": "#6bcb77"},
|
||
|
|
{"id": "canola", "label": "کلزا", "color": "#ffd93d"},
|
||
|
|
{"id": "saffron", "label": "زعفران", "color": "#9b59b6"},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# POST /api/crop-zoning/zones/initial/
|
||
|
|
# دیتای اولیه برای نقشه و هاور/tooltip — بدون reason و criteria
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
ZONES_INITIAL_RESPONSE_DATA = {
|
||
|
|
"total_area_hectares": 23.45,
|
||
|
|
"total_area_sqm": 234500,
|
||
|
|
"zone_count": 3,
|
||
|
|
"zones": [
|
||
|
|
{
|
||
|
|
"zoneId": "zone-0",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.68],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.38, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"crop": "wheat",
|
||
|
|
"matchPercent": 85,
|
||
|
|
"waterNeed": "۴۵۰۰-۵۵۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۱۵-۲۵ میلیون/هکتار",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-1",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.383, 35.68],
|
||
|
|
[51.383, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"crop": "canola",
|
||
|
|
"matchPercent": 78,
|
||
|
|
"waterNeed": "۵۰۰۰-۶۰۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۲۰-۳۵ میلیون/هکتار",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-2",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.683],
|
||
|
|
[51.38, 35.683],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"crop": "saffron",
|
||
|
|
"matchPercent": 92,
|
||
|
|
"waterNeed": "۳۰۰۰-۴۰۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۵۰-۱۵۰ میلیون/هکتار",
|
||
|
|
},
|
||
|
|
],
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# POST /api/crop-zoning/zones/water-need/
|
||
|
|
# نیاز آبی هر منطقه برای لایهٔ نیاز آبی
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
ZONES_WATER_NEED_RESPONSE_DATA = {
|
||
|
|
"zones": [
|
||
|
|
{
|
||
|
|
"zoneId": "zone-0",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.68],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.38, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "medium",
|
||
|
|
"value": "۴۵۰۰-۵۵۰۰ m³/ha",
|
||
|
|
"color": "#0ea5e9",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-1",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.383, 35.68],
|
||
|
|
[51.383, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "high",
|
||
|
|
"value": "۵۰۰۰-۶۰۰۰ m³/ha",
|
||
|
|
"color": "#0369a1",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-2",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.683],
|
||
|
|
[51.38, 35.683],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "low",
|
||
|
|
"value": "۳۰۰۰-۴۰۰۰ m³/ha",
|
||
|
|
"color": "#7dd3fc",
|
||
|
|
},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# POST /api/crop-zoning/zones/soil-quality/
|
||
|
|
# کیفیت خاک هر منطقه برای لایهٔ کیفیت خاک
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
ZONES_SOIL_QUALITY_RESPONSE_DATA = {
|
||
|
|
"zones": [
|
||
|
|
{
|
||
|
|
"zoneId": "zone-0",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.68],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.38, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "high",
|
||
|
|
"score": 88,
|
||
|
|
"color": "#22c55e",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-1",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.383, 35.68],
|
||
|
|
[51.383, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "medium",
|
||
|
|
"score": 62,
|
||
|
|
"color": "#eab308",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-2",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.683],
|
||
|
|
[51.38, 35.683],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "high",
|
||
|
|
"score": 95,
|
||
|
|
"color": "#22c55e",
|
||
|
|
},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# POST /api/crop-zoning/zones/cultivation-risk/
|
||
|
|
# ریسک کشت هر منطقه برای لایهٔ ریسک کشت
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
ZONES_CULTIVATION_RISK_RESPONSE_DATA = {
|
||
|
|
"zones": [
|
||
|
|
{
|
||
|
|
"zoneId": "zone-0",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.68],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.38, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "low",
|
||
|
|
"color": "#22c55e",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-1",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.3815, 35.68],
|
||
|
|
[51.383, 35.68],
|
||
|
|
[51.383, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.68],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "medium",
|
||
|
|
"color": "#f59e0b",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"zoneId": "zone-2",
|
||
|
|
"geometry": {
|
||
|
|
"type": "Polygon",
|
||
|
|
"coordinates": [
|
||
|
|
[
|
||
|
|
[51.38, 35.6815],
|
||
|
|
[51.3815, 35.6815],
|
||
|
|
[51.3815, 35.683],
|
||
|
|
[51.38, 35.683],
|
||
|
|
[51.38, 35.6815],
|
||
|
|
]
|
||
|
|
],
|
||
|
|
},
|
||
|
|
"level": "low",
|
||
|
|
"color": "#22c55e",
|
||
|
|
},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# GET /api/crop-zoning/zones/:zoneId/details/
|
||
|
|
# دیتای تکمیلی برای پنل جزئیات — شامل reason و criteria
|
||
|
|
# منطبق با createZonedGrid و MOCK_AREA_GEOJSON
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
ZONE_DETAILS_BY_ID = {
|
||
|
|
"zone-0": {
|
||
|
|
"zoneId": "zone-0",
|
||
|
|
"crop": "wheat",
|
||
|
|
"matchPercent": 85,
|
||
|
|
"waterNeed": "۴۵۰۰-۵۵۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۱۵-۲۵ میلیون/هکتار",
|
||
|
|
"reason": "دمای مناسب، خاک حاصلخیز، دسترسی به آب کافی",
|
||
|
|
"criteria": [
|
||
|
|
{"name": "دما", "value": 82},
|
||
|
|
{"name": "بارش", "value": 75},
|
||
|
|
{"name": "خاک", "value": 88},
|
||
|
|
{"name": "آب", "value": 70},
|
||
|
|
],
|
||
|
|
"area_hectares": 2.25,
|
||
|
|
},
|
||
|
|
"zone-1": {
|
||
|
|
"zoneId": "zone-1",
|
||
|
|
"crop": "canola",
|
||
|
|
"matchPercent": 78,
|
||
|
|
"waterNeed": "۵۰۰۰-۶۰۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۲۰-۳۵ میلیون/هکتار",
|
||
|
|
"reason": "شرایط اقلیمی مساعد، نیاز آبی قابل تأمین",
|
||
|
|
"criteria": [
|
||
|
|
{"name": "دما", "value": 75},
|
||
|
|
{"name": "بارش", "value": 72},
|
||
|
|
{"name": "خاک", "value": 80},
|
||
|
|
{"name": "آب", "value": 78},
|
||
|
|
],
|
||
|
|
"area_hectares": 2.25,
|
||
|
|
},
|
||
|
|
"zone-2": {
|
||
|
|
"zoneId": "zone-2",
|
||
|
|
"crop": "saffron",
|
||
|
|
"matchPercent": 92,
|
||
|
|
"waterNeed": "۳۰۰۰-۴۰۰۰ m³/ha",
|
||
|
|
"estimatedProfit": "۵۰-۱۵۰ میلیون/هکتار",
|
||
|
|
"reason": "ارتفاع و آب و هوای خشک مناسب، پتانسیل سود بالا",
|
||
|
|
"criteria": [
|
||
|
|
{"name": "دما", "value": 90},
|
||
|
|
{"name": "بارش", "value": 65},
|
||
|
|
{"name": "خاک", "value": 95},
|
||
|
|
{"name": "آب", "value": 85},
|
||
|
|
],
|
||
|
|
"area_hectares": 2.25,
|
||
|
|
},
|
||
|
|
}
|