Files
satellite-provider/_docs/02_document/glossary.md
T
Oleksandr Bezdieniezhnykh 687d6bdd5b [AZ-484] Multi-source tile storage: source + captured_at
Add per-source tile rows to support multi-provider imagery (Google
Maps + future UAV). Migration 013 (transactional) introduces
source/captured_at columns, backfills existing rows to
(source='google_maps', captured_at=created_at), and replaces the
4-column unique index with a 5-column index that includes source.

TileRepository:
- ColumnList includes source + captured_at
- GetByTileCoordinatesAsync returns most-recent row across sources
  (ORDER BY captured_at DESC, updated_at DESC, id DESC)
- GetTilesByRegionAsync uses DISTINCT ON to pick the most-recent
  tile per cell, restoring caller-facing row order
- Insert/Update upsert on the new 5-column conflict key

TileSource enum lives in Common.Enums. Snake_case wire format
(google_maps, uav) is enforced by a focused TileSourceTypeHandler
because the generic ToLowerInvariant pattern would emit
"googlemaps", violating contract v1.0.0.

TileService stamps Source=GoogleMaps + CapturedAt=UtcNow on every
new tile. Tile-storage contract is now frozen at v1.0.0.

AC coverage 7/7. New unit + integration tests cover all ACs;
existing 200 unit + 5 smoke tests preserved.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 06:21:59 +03:00

4.2 KiB
Raw Blame History

Glossary

Domain Terms

Term Definition Source
Tile A single satellite imagery square (typically 256×256 px) at a specific zoom level and coordinate modules/services_tile_service.md
Region A square geographic area defined by center point and size in meters; the unit of work for batch tile downloads modules/services_region_service.md
Route An ordered sequence of geographic waypoints with interpolated intermediate points modules/services_route_service.md
Route Point A single lat/lon coordinate on a route; either "original" (user-provided waypoint) or "intermediate" (system-generated) modules/dataaccess_models.md
Geofence A rectangular geographic boundary (NW + SE corners) used to filter which route points receive map tile coverage components/05_route_management/description.md
Zoom Level Google Maps tile resolution level (120); higher = more detail, smaller ground coverage per tile modules/common_configs.md
Stitch Compositing multiple tiles into a single larger image with optional markers/borders modules/services_region_service.md
Layer 1 Historic name for satellite imagery from external providers (provider-agnostic; first implementation: Google Maps). Generalised in AZ-484 to one of N values of Tile Source; the term is retained for continuity with earlier docs and tickets. user clarification, AZ-484
Layer 2 Historic name for UAV-captured nadir camera imagery (orthogonal tiles uploaded post-flight). Generalised in AZ-484 to the uav Tile Source value; the term is retained for continuity with earlier docs and tickets. user clarification, AZ-484
Tile Source The producer of a tile row, persisted in tiles.source as a contract-defined string (google_maps, uav, …). Each cell may have at most one row per source; reads return the most-recent across sources. Adding a new source requires a new TileSource enum member and a tile-storage contract version bump. _docs/02_document/contracts/data-access/tile-storage.md (v1.0.0)
Captured At Producer-defined UTC timestamp ("the moment this tile imagery represents") persisted in tiles.captured_at. For Google Maps it is DateTime.UtcNow at download time (provider does not expose original imagery date); for UAV it is the capture timestamp supplied by the upload client. Drives the most-recent-across-sources read selection rule. _docs/02_document/contracts/data-access/tile-storage.md (v1.0.0)
Nadir Camera Downward-facing camera on a UAV capturing ground imagery during flight user clarification
GPS-Denied Service The consuming system: a UAV navigation service operating without GPS, using satellite/UAV imagery for positioning user clarification
Slippy Map Coordinates Tile X/Y indices in the Web Mercator projection grid (standard for web map tile servers) data_model.md
Version Integer year (e.g., 2025) used to invalidate tile cache when Google Maps imagery is updated data_model.md

Technical Terms

Term Definition Source
Region Request Queue In-process bounded Channel<Guid> that decouples HTTP request submission from background processing modules/services_region_request_queue.md
Session Token Provider-specific authentication token (e.g., Google Maps) embedded in tile download URLs; each provider may use different auth mechanisms modules/services_google_maps_downloader.md
ISatelliteDownloader Interface abstracting satellite imagery providers; first implementation: Google Maps (GoogleMapsDownloaderV2) modules/common_interfaces.md
DbUp .NET library for forward-only SQL schema migrations via numbered embedded scripts modules/dataaccess_database_migrator.md
Tile Deduplication Mechanism using DB unique index + ConcurrentDictionary to prevent re-downloading identical tiles modules/services_google_maps_downloader.md

Abbreviations

Abbrev Meaning
MGRS Military Grid Reference System (endpoint planned, currently stub)
UAV Unmanned Aerial Vehicle
NFR Non-Functional Requirement
DI Dependency Injection
DTO Data Transfer Object
CSV Comma-Separated Values (tile manifest output format)