Skip to main content
Glama
land_cover.py2.15 kB
""" Land Cover Classification using Deep Learning. """ import asyncio from pathlib import Path from typing import Tuple, Optional, Literal import numpy as np import structlog from geosight.config import settings logger = structlog.get_logger(__name__) LAND_COVER_CLASSES = { 0: {"name": "Forest", "color": "#228B22"}, 1: {"name": "Shrubland", "color": "#90EE90"}, 2: {"name": "Grassland", "color": "#ADFF2F"}, 3: {"name": "Cropland", "color": "#FFD700"}, 4: {"name": "Built-up", "color": "#DC143C"}, 5: {"name": "Barren", "color": "#DEB887"}, 6: {"name": "Water", "color": "#4169E1"}, 7: {"name": "Wetland", "color": "#20B2AA"}, } class LandCoverClassifier: """Deep learning model for land cover classification.""" def __init__( self, model_name: Literal["eurosat", "deepglobe", "custom"] = "eurosat", device: Optional[str] = None, ): self.model_name = model_name self.device = device or settings.model.inference_device self._model = None self._initialized = False async def classify( self, imagery: np.ndarray, ) -> Tuple[np.ndarray, np.ndarray]: """ Classify land cover in satellite imagery. Returns: Tuple of (classification_map, confidence_map) """ # For demo, generate synthetic classification return self._generate_demo_classification(imagery.shape[:2]) def _generate_demo_classification( self, shape: Tuple[int, int], ) -> Tuple[np.ndarray, np.ndarray]: """Generate demo classification.""" height, width = shape np.random.seed(42) x = np.linspace(0, 4, width) y = np.linspace(0, 4, height) xx, yy = np.meshgrid(x, y) noise = np.sin(xx) * np.cos(yy) + 0.5 * np.sin(2*xx + yy) noise = (noise - noise.min()) / (noise.max() - noise.min()) class_map = (noise * 7).astype(np.int32) confidence_map = 0.7 + 0.3 * np.random.random(shape).astype(np.float32) return class_map, confidence_map

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/armaasinghn/geosight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server