MIL-STD-2525E Appendix M · Open source

Weather and ocean graphics for mission maps

Zaes METOC Graphics draws every graphic in MIL-STD-2525E Change 1, Appendix M: fronts, pressure centers, isopleths, areas of weather, ice, depth, aids to navigation, hazards and mine warfare bottom descriptors, 354 in all. Each one is plain GeoJSON. The library and its editor are free under the MIT license and display on OpenLayers and MapLibre; commercial add-ons take the same graphics to Cesium, to TAK and from official feeds.

$npm install @zaes/metoc
Actual library outputOpen source package
A surface analysis over the central United States drawn by the Zaes METOC library: a low with cold, warm and occluded fronts, isobars labeled 1004 and 1008, a high, wind barbs, a thunderstorm area, and turbulence and icing marked with their heights
OpenLayersMapLibreCesiumTAK
354Appendix M graphics
2symbol sets, 45 and 46
24categories
3map engines
2TAK plugins, WinTAK and ATAK

The environment, on the same map as the operation

Weather and ocean conditions shape every plan, but they usually arrive as an image or a separate product. The library puts the standard's METOC graphics on the map the application already has, as data it can save, share and edit.

01

Weather briefings and COPs

Surface analyses, fronts, isobars and significant weather as live overlays on a common operational picture.

02

Aviation planning

IFR and MVFR areas, turbulence, icing, thunderstorms and the jet stream along the routes being planned.

03

Maritime and mine warfare

Ice, depth curves, hazards, aids to navigation, currents and the mine warfare bottom descriptors in the standard's exact colors.

04

Operators at the edge

The same graphics in WinTAK and ATAK, exactly, and as plain shapes on any other TAK client.

Every graphic, the way the standard draws it

These come from the sample application's Sample gallery, one group at a time. Pips, dots and other decoration keep their size on screen at every zoom, and fronts curve through the points the operator places. Click a picture to enlarge it, or open the live sample to draw and edit them on OpenLayers and MapLibre, in 2D and 3D.

Start with the open source library, add what the mission needs

The open source package, @zaes/metoc, draws every graphic on a 2D map and lets operators draw and edit them, under the MIT license. Three commercial add-ons from Zaes take the same graphics and the same saved files further: onto Cesium terrain, into TAK with WinTAK and ATAK plugins, and in from official feeds. Each needs only the open source package, so a program takes the ones it uses. They are licensed by contract, separately from the MIT package.

Display and editing

MIT · npm

The catalog and the paint layer, display renderers for OpenLayers and MapLibre, and drawing and editing on any of them in @zaes/metoc/editor. It needs no map library at its core, so it also runs in Node, a worker or a test runner.

  • All 354 graphics, with their names, entity codes and 30-digit SIDCs.
  • GeoJSON in, GeoJSON out: save one feature per graphic and restore it exactly, with validation that reports what an operator should hear about.
  • The standard's colors, an operator color only where Table M-II leaves it open, and point symbols on MapLibre in 3D, upright on leader lines clear of the terrain.
  • Draw, move, reshape, insert and delete points, nudge with the arrow keys, and duplicate.
  • Flip a front's side, rotate a wind barb by its shaft, and fill in a station plot: wind, sky cover, temperature, dew point, pressure and present weather.
  • Undo and redo by gesture: a drag is one step.
The METOC sample application with an upper occluded front selected, showing orange edit handles and a panel with its entity code and SIDC Click to enlarge

Cesium 3D

Commercial

Every graphic on a Cesium globe, draped over terrain and 3D Tiles, and edited with the same editor as the 2D engines.

  • Line work and fills follow the ground; point symbols stand upright on leader lines above the terrain, and labels face the screen.
  • Decoration is repainted at screen size when the camera settles at a new scale, without flicker.
  • Real terrain without Cesium ion, from the public Terrarium tiles or a mirror.
  • Cesium is handed in, never bundled, so an application keeps one copy.
The METOC sample application on its Cesium engine, with cold, warm, occluded and stationary fronts draped over North America Click to enlarge

TAK

Commercial

The graphics to TAK as Cursor on Target, so every client sees them, plus WinTAK and ATAK plugins that draw them exactly.

  • Plain CoT shapes for any TAK client: pips, scallops and barbs as they are drawn, and point symbols as a TAK icon set.
  • The WinTAK and ATAK plugins hide those shapes and draw the graphic itself, from a description the first shape carries.
  • Draw, edit and share METOC graphics in WinTAK and ATAK with one pane design: search and Recent, a drawing card with Undo, Cancel and Finish, and properties applied as they are made.
  • Live two-way with TAK Server Data Sync missions from the web app, through a bridge that holds the TAK certificate so the browser never sees it.
  • TAK data packages, KML and KMZ, written in Node too, so a server can produce them.
  • The plugins as released builds: a folder for WinTAK 5.8, and an APK for ATAK-CIV 5.8.0 signed through the TAK Product Center for the Play Store ATAK.
WinTAK showing a surface analysis over the United States, with the 1004 isobar selected on the map and the METOC pane showing its pressure value, Reverse and Delete Click to enlarge

Feeds

Commercial

Official analyses and observations turned into METOC graphics, ready to display, edit or send to TAK. The converters need no network or browser, so they run on a server.

  • The NWS Weather Prediction Center's coded surface bulletin as pressure centers with their pressure, fronts and troughs.
  • Aviation Weather Center G-AIRMETs and SIGMETs as icing, turbulence, IFR and thunderstorm areas, labeled with their heights.
  • METARs as station plots.
  • What Appendix M has no graphic for is left out, not drawn as something else.
Evaluating METOC graphics for a program?Tell us about the mapping environment, the weather or ocean data you have, and who needs to see it. Add-on evaluations, program licensing and integration support are available.
Discuss an evaluation

A graphic is a feature, not a picture

Each graphic saves as one GeoJSON feature: a Point, a LineString or a Polygon of the points the operator placed, with a metoc property for its name and value. Nothing about the view is stored. The renderers paint it fresh at every zoom.

example.ts
import { MetocGraphicName, MetocCollection, metocFeature }
  from '@zaes/metoc';
import { MetocOpenLayers }
  from '@zaes/metoc/openlayers';

// Points in drawing order: it sets a front's pip side.
const front = metocFeature(
  MetocGraphicName.ColdFront,
  [[-80, 40], [-90, 42], [-100, 41]]
);

// Wind is data: degrees true and knots.
const barb = metocFeature(
  MetocGraphicName.WindBarb, [[-97.5, 35.4]],
  { windDirection: 270, windSpeed: 65 }
);

const collection = new MetocCollection();
collection.load({ type: 'FeatureCollection',
                  features: [front, barb] });
new MetocOpenLayers(map, collection);

No map library at the core

The package's root runs in a browser, a worker or Node. OpenLayers and MapLibre are optional peers, and Cesium is handed in by the application.

One seam for every engine

Each renderer is a map host: where things are on screen, pointer and key events, and an overlay. The editor attaches to a host, which is how Cesium got editing.

Observations plot directly

A wind barb is a Point with a direction and a speed, and a station plot adds sky cover, temperature, dew point, pressure and weather, drawn as the WMO station model around Appendix M's own symbols. Isopleths carry their value; the barb rounds to the nearest five knots.

Across the antimeridian

A graphic drawn across 180° is saved continuous and painted the short way on every engine, and folded back into ±180° for KML, CoT and TAK.

PackageWhat it provides
@zaes/metoc (MIT, npm)The catalog, the paint layer, GeoJSON save and load, validation, SIDCs, thumbnails; display renderers …/openlayers and …/maplibre; drawing and editing on any engine, undo and redo, and the properties-field registry in …/editor
@zaes/metoc-cesium (commercial)The Cesium renderer, draped on terrain and 3D Tiles; Terrarium terrain with no ion
@zaes/metoc-tak (commercial)CoT for every TAK client, the TAK icon set, live sync with TAK Server, the WinTAK and ATAK plugins, data packages, KML and KMZ
@zaes/metoc-feeds (commercial)WPC surface bulletins, AWC G-AIRMETs and SIGMETs, and METARs as METOC graphics

Drawn from the standard's own tables, and tested against them

The library follows MIL-STD-2525E Change 1 (March 2025), Appendix M: Table A-LI and A-LII for names and entity codes, Table M-II and M-III for each graphic's color and drawing, and Table M-I for the draw rules. Automated tests pin every drawable code of both symbol sets to the standard, and every label its notes document.

Zaes does not claim government certification or independent conformance validation. Programs should perform the review appropriate to their mission and configuration.

Symbol set 45

Atmospheric: pressure centers, fronts, pressure lines, winds, isopleths, areas of weather, cloud cover, weather, storms, turbulence, icing and the state of the ground.

Symbol set 46

Oceanographic: ice, depth and coast, ports and harbors, aids to navigation, hazards, bottom features, tide and current, bioluminescence, beach slope, mine warfare and maritime limits.

30-digit SIDCs

Every graphic with an entity code has a 2525E SIDC, and a SIDC reads back to its graphic. The wind barb has a draw rule but no entity code in the standard, so none is invented.

Exact where color is meaning

Where a color is the information, such as a bioluminescence level or a bottom category, it is the exact RGB the standard prints, and no palette moves it.

The standard's errors, stated

Where a table contradicts itself, the library follows the name and the drawing and records the discrepancy with the graphic.

Not done yet

On ATAK, sending into a Data Sync mission: its edits go to the TAK servers ATAK is connected to, and a mission's graphic is revised in place. iTAK and WebTAK show the plain CoT shapes.

Browse all 354 graphics

The catalog lists every graphic by symbol set and category, with its entity code, each drawn by the library itself. Search by name or code.

Tell us what your operators need to see

Send us the mapping environment, the weather and ocean data you have, and where the graphics have to go. We can tell you whether the open source package covers it, set up an add-on evaluation, and help with the integration.