Kun eri maiden upseerit työskentelevät yhdessä yhteisessä operaatiokeskuksessa, heidän on pystyttävä lukemaan toistensa näyttöjä. Tämä ei ole triviaali vaatimus. Sotilaalliset karttanäytöt koodaavat valtavia määriä tietoa symbologiakäytäntöjen, kerrostenhallintavalintojen ja näyttötilojen kautta — käytäntöjen, jotka vaihtelevat merkittävästi kansallisten järjestelmien välillä, jos standardointia ei ole. Saksalaista C2-näyttöä katsovan ranskalaisen upseerin ei pitäisi tarvita kääntäjää sotilaallisille symboleille sen enempää kuin liikennemerkeille. CoMPD-standardi on olemassa takaamaan tämän yhteisen kuvan.

CoMPD (Common Military Picture Display) on NATO-standardi, joka määrittelee, miten yhteinen operatiivinen kuva on renderöitävä — mitä symboleja minkäkin kohteen kohdalla on näytettävä, miten kerroksia on hallittava ja mitkä näyttökäyttäytymiset on standardoitava kaikissa järjestelmissä, jotka esittävät COP:n koalition operaattoreille. C2-näyttöohjelmistoja koalitiokäyttöön rakentaville kehittäjille CoMPD-vaatimustenmukaisuus ei ole valinnaista.

Mitä CoMPD on ja miksi standardoitu näyttö tarvitaan

COP on merkityksetön, jos jokainen järjestelmä renderöi sen eri tavalla. Tarkastellaan perustavanlaatuista näyttökysymystä yksikön koon ilmaisimen näyttämisestä: jos yksi kansallinen järjestelmä esittää pataljoonan taktisen symbolin kehyksellä ja kokomodifioijalla APP-6D:n mukaisesti, mutta toinen esittää saman yksikön omistusoikeudellisella kuvakkeella, jonka sen operaattorit ovat oppineet mutta koalitiokumppanit eivät, niin yhteinen kuva ei ole yhteinen — se on sekaannuksen lähde juuri niissä tilanteissa, joissa selkeys on kriittisintä.

CoMPD kehitettiin FMN (Federated Mission Networking) -kehyksen sisällä, ja sen julkaisee NCIA liittoutuneiden tietojulkaisuna (Allied Data Publication, ADatP). Se määrittelee vähimmäisvaatimukset COP-näyttöjen renderöinnille koalitio-operaatioissa: mitä on näytettävä, miten se on näytettävä ja mitä näyttöinteraktioita on tuettava. Se sallii nimenomaisesti kansallisten järjestelmien tarjota lisäominaisuuksia vähimmäisvaatimusten lisäksi, mutta edellyttää, että CoMPD:n määrittelemät vähimmäisnäyttökäyttäytymiset toteutetaan johdonmukaisesti.

CoMPD:n käytännön soveltamisala kattaa sotilaallisen symbologian renderöinnin, kerrosten hallinnan, koordinaattien näyttämisen, zoomikäyttäytymisen ja joukon pakollisia interaktiivisia ominaisuuksia. Jokainen näistä alueista on teknisesti ei-triviaali toteuttaa oikein laajassa mittakaavassa — COP-näytön, jossa on kymmeniätuhansia jälkiä, on silti täytettävä CoMPD:n renderöintivaatimukset interaktiivisilla kuvataajuuksilla, mikä asettaa suorituskykyrajoitteita renderöintiarkkitehtuurille.

Keskeisvaatimukset: APP-6D-symbologia, kerrosten hallinta, zoomikäyttäytyminen

CoMPD:n keskeinen tekninen vaatimus on APP-6D-yhteensopiva symbolien renderöinti. APP-6 (Application 6, Allied Procedural Publication 6) on NATO-julkaisu, joka määrittelee sotilaalliset karttasymbolit — yhteisen operatiivisen kuvan visuaalisen kielen. APP-6D on nykyinen painos. Jokaisella kohdetyypillä, joka esiintyy NATO:n COP:ssa — omat maavoimien yksiköt, vihamieliset ilmakontaktit, merialukset, valvontatoimet, taktiset grafiikat — on APP-6D:ssä määritelty symboli, joka on yksilöity kehyksen muodolla, täyttökuviolla, värillä ja modifioijaelementeillä.

CoMPD edellyttää, että kaikki kohteet, joilla on APP-6D:ssä määritelty symboli, näytetään kyseisellä symbolilla. Omistusoikeudelliset kuvakkeet eivät ole sallittuja standardoiduille kohdetyypeille; APP-6D-symbolia on käytettävä. Tämä luo suoran toteutusvaatimuksen: näyttömoottorin on sisällettävä täydellinen APP-6D-symbolikirjasto ja kuvaus COP-datamallin kohdetyyppitunnisteista oikeaan APP-6D-symboliin kunkin kohteen osalta.

Kerrosten hallinnan vaatimukset koskevat COP-näytön järjestämistä hallittaviin kerroksiin. CoMPD määrittelee pakollisen kerrosrakenteen, jota kaikkien vaatimustenmukaisten näyttöjen on tuettava: omien joukkojen jäljet, vihamielisten joukkojen jäljet, neutraalit/tuntemattomat jäljet, valvontatoimet (vaihelinjat, rajat, tavoitteet), maastopeitteet ja kuvakerrokset. Jokaisen kerroksen on oltava itsenäisesti kytkettävissä päälle ja pois, ja näytön on ylläpidettävä määriteltyä kerrosten piirtojärjestystä (kuvat maaston alla, maasto jälkien alla, jäljet valvontatoimien alla) estääkseen taktisesti kriittisen tiedon peittymisen.

Zoomikäyttäytymisen vaatimukset varmistavat, että näyttö tarjoaa johdonmukaisen maantieteellisen kontekstin eri zoomaustasoilla. CoMPD määrittelee, että symbolien on säilytettävä vähimmäisnäyttökoko kaikilla zoomaustasoilla pysyäkseen näkyvinä — symbolit, jotka katoavat tai muuttuvat lukukelvottoman pieniksi loitonnettaessa, ovat vaatimustenvastaisuus. Se määrittelee myös yksityiskohtatason käyttäytymisen symbolimodifioijien näyttämiselle: korkeilla zoomaustasoilla näytetään täydet symbolimodifioijat (yksikön koko, vahvennus, tehtäväorganisaatio); alemmilla zoomaustasoilla näytetään vain ydinsymboli näytön selkeyden säilyttämiseksi. Zoomauskynnykset, joilla nämä siirtymät tapahtuvat, on määritelty johdonmukaisen käyttäytymisen varmistamiseksi koalitiojärjestelmien välillä.

Suorituskykyvaatimus: CoMPD-vaatimustenmukaisuus on säilytettävä COP:n operatiivisessa mittakaavassa — mahdollisesti kymmeniätuhansia kohdesymboleja renderöidään samanaikaisesti. Näyttömoottori, joka renderöi oikein 100 kohteen testiaineistolla mutta heikkenee CoMPD:n vähimmäiskuvataajuuksien alapuolelle 10 000 kohteella, epäonnistuu koalitioharjoituksissa. Suorituskyvyn testaamisen realistisilla kohdemäärillä on oltava osa CoMPD-vaatimustenmukaisuuden varmennusprosessia, ei jälkikäteinen ajatus.

APP-6D-symbolit: toteutus kirjastojen avulla

APP-6D-symbolit on muodollisesti määritelty koordinaattipohjaisena vektorigrafiikkamäärittelynä — jokainen symboli määritellään joukolla geometrisia perusmuotoja (viivat, kaaret, monikulmiot) normalisoidussa koordinaattiavaruudessa väri-, täyttö- ja modifioijasäännöillä. Koko APP-6D-symbolisarjan toteuttaminen määrittelystä edellyttää joko mukautetun symbolirenderöijän rakentamista tai jonkin saatavilla olevan avoimen lähdekoodin symbolikirjaston käyttämistä.

Ensisijainen avoimen lähdekoodin APP-6D-toteutus on milsymbol (jonka Ruotsin puolustusvirasto FMV julkaisee nimellä MilSymbol.js JavaScriptille ja useina porttauksina muille kielille). MilSymbol tarjoaa täydellisen APP-6-symbolien generoinnin SIDC (Symbol Identification Code) -merkkijonoista — sotilaallisten symbolimäärittelyjen standardista konelukukelpoisesta koodauksesta. Annettuna kelvollinen SIDC-merkkijono MilSymbol generoi kyseisen symbolin oikean SVG-geometrian käsitellen monimutkaiset symbolinrakennussäännöt (kehysvalinta vakioidentiteetin perusteella, täyttökuvio operatiivisen tilan perusteella, modifioijan sijoittelu symbolityypin perusteella), jotka tekevät manuaalisesta toteutuksesta kohtuuttoman monimutkaisen.

Verkkopohjaisille COP-näytöille MilSymbolin JavaScript-versio integroituu luontevasti Leaflet-, OpenLayers- ja Cesium-karttakirjastojen kanssa. Natiivisovelluksille (C++, Java) MilSymbol-määrittely ja yhteisön portit ovat saatavilla, vaikka täydellisyys ja ylläpidon laatu vaihtelevat porttauksittain. Kaupallisia APP-6D-symbolimoottoreita, joilla on taattu täydellisyys ja tuki, on saatavilla puolustusgeospatiaalisilta ohjelmistotoimittajilta, kuten Esri Defense (integroitu ArcGIS Pro:hon) ja GeoMedia Defense.

CoMPD-vaatimustenmukaisuuden testaaminen

CoMPD-vaatimustenmukaisuus varmennetaan muodollisella testausprosessilla, joka on suoritettava ennen kuin järjestelmä voidaan sertifioida koalition COP-näyttökäyttöön. Testausprosessi kattaa symbolien renderöinnin tarkkuuden (oikea symboli generoidaan jokaiselle SIDC:lle), kerrosten hallinnan vaatimustenmukaisuuden (oikea kerroskäyttäytyminen kaikissa määritellyissä skenaarioissa), zoomikäyttäytymisen (oikea symbolien näkyvyys ja yksityiskohtataso määritellyllä zoomausalueella) ja interaktiivisen kyvyn (pakolliset panorointi-, zoomaus- ja symbolikyselyinteraktiot toimivat oikein).

Symbolien renderöinnin tarkkuuden automatisoitu testaaminen edellyttää viitesymbolisarjaa — kokoelmaa tunnetusti hyviä SIDC-merkkijonoja niiden oikean visuaalisen renderöinnin kanssa. NCIA ylläpitää CoMPD-testisymbolisarjaa, mutta se on rajattu ohjelman osallistujille. Kehitystiimit voivat rakentaa omat viitesarjansa käyttäen APP-6D-määrittelyä ja milsymbolia viitetoteutuksena, generoiden SVG-renderöintejä ja vertaillen niitä näyttömoottorinsa tulosteeseen. Pikselintarkka vertailu ei ole standardi — testikriteeri on visuaalinen vastaavuus, joka määritellään APP-6D-määrittelyn renderöintisäännöillä — mutta järjestelmällinen erojen havaitseminen on välttämätöntä symbolien renderöinnin tarkkuuden varmistamiseksi koko APP-6D-symbolisarjassa.

Kerrosten hallinnan ja zoomikäyttäytymisen testaaminen voidaan automatisoida standardeilla käyttöliittymätestauskehyksillä määriteltyjen testiskenaarioiden avulla: skenaario, joka lataa määritellyn joukon jälkiä, varmentaa kerroksen kytkentäkäyttäytymisen ja tarkistaa, että zoomikäyttäytyminen täyttää määritellyt kynnykset. Näiden testien tulisi olla osa jatkuvan integraation putkea minkä tahansa CoMPD-yhteensopivan näyttöjärjestelmän osalta, varmistaen, että renderöintiregressiot havaitaan osana normaalia kehitystyönkulkua eikä vasta koalitiokumppaneiden kanssa tehtävän integraatiotestauksen aikana.