Meteorological Cooperative of the Republic

Weather, climate, seismicity, landslide and flood · mandate held under the organic law on observation and warning

Meteorological Cooperative › Developers

Specifications and source

Everything the cooperative builds is published: the source of the three warning systems, the format their messages travel in, the vectors that test an implementation, the firmware and mechanical drawings of the stations, and the models behind the forecast. Any person, cooperative or country may take the whole of it, adapt it and operate it, under no condition and at no charge.

LicencePublic domain dedication, with a permissive fallback where the dedication has no effect in law
CoversSource, wire format, test vectors, station firmware, mechanical drawings, model configurations
ConditionsNone. No attribution requirement, no share-alike clause, no field-of-use restriction
PatentsThe cooperative holds none and applies for none
Asked, without obligationNotice of a fork, so the porting guide can record where the systems run
BasisTechnique developed under a public mandate passes into the knowledge commons

Repositories

Published repositories
Repository Published at Language Lines What it is
rep-kjs src.meteo.rof/rep-kjs C, Ada 31,400 Detection, location, magnitude estimation, the intensity field and the issuing node. The node is Ada; the station code is C.
rep-lew src.meteo.rof/rep-lew C, Python 18,900 Slope unit definitions, threshold model, probe ingest and the failure curve. The 1,860 slope units of the Republic ship as data.
rep-few src.meteo.rof/rep-few C, Python, Fortran 44,600 Rainfall-runoff model, surge model, gauge ingest and the threshold levels. The hydrological core is Fortran and predates the system.
rquak src.meteo.rof/rquak C99 9,700 The client, for every published platform. No dependency beyond the standard library and the platform sound interface.
rep-wire src.meteo.rof/rep-wire C99 2,400 Encoder and decoder for the message format, with the specification text. Conformance is judged against this tree.
rep-vectors src.meteo.rof/rep-vectors Data, Python 3,100 Recorded events, synthetic cases and expected outputs. About 4 GB of station records with the harness that runs them.
rep-station src.meteo.rof/rep-station C99, KiCad 26,200 Station firmware, circuit boards and enclosure drawings. Dimensioned for parts obtainable inside the Republic.
rep-model src.meteo.rof/rep-model Fortran, Python 112,000 Regional model configuration, assimilation settings and verification code. Reproduces any archived forecast exactly.
rep-archive src.meteo.rof/rep-archive Python 14,800 The observation archive, the three quality-control passes and the correction records, including rejected observations.

The licence

The cooperative places the whole of this work in the public domain. Attribution is welcome and is not required.

Some legal systems give no effect to a dedication of that kind, and some organisations need a document that will stand. A permissive licence therefore applies as a fallback, and its terms require nothing of the user. Take it if any of the following describes you:

The fallback text sits at src.meteo.rof/rep-wire/LICENCE and is identical in every tree.

Two consequences follow. A fork may be modified without publishing the modification. A fork may be operated by a state, a company or an individual, for any purpose, including purposes the cooperative would decline to serve itself.

REP-KJS exists because Japanese engineers published enough of their work for it to be reproduced. The flood and landslide models were built here at considerable expenditure of labour and material, and countries whose hazards resemble those of the peninsula should be spared that expenditure. The rationale page sets this out at length.

Reporting a fault

Faults in any published component go to the cooperative through the public information system, and every report receives a reasoned answer. Reports concerning the warning path are handled first, and the register of such reports is published with the answers.

A fault found in a fork is equally welcome. The cooperative has taken corrections from three foreign implementations since 2022, and two of them concerned the message decoder.

Known defects

These are open. They are known, they are reproducible, and nobody has yet done the work. The list is kept here because a project that publishes no defect list is claiming to have none.

Open defects, as of the last release
Reference Tree Effect Position
K-114 rep-kjs Depth is unstable when the first four stations lie on one side of the epicentre Two of the four misestimated events came from this. A geometry test is drafted and unmerged.
K-131 rep-kjs Soil amplification is understated over the Ravelluri sediment The soil map is coarser than the ground varies. Survey work is in progress.
W-042 rep-wire An area record with an unknown area code is dropped silently by the reference decoder It should be retained and presented as an unknown area. Reported by a fork in 2024.
Q-208 rquak The macOS build cannot override the mute setting The platform provides no route. No fix is expected.
Q-233 rquak Android presentation may exceed 400 ms under aggressive background scheduling Partial conformance is declared in the release notes. Under investigation.
F-077 rep-few Stage is modelled poorly under ice on the upper Marnaqui Warnings issued in ice conditions state the qualification. No model work scheduled.
L-019 rep-lew Debris slides below about 500 m³ fall under the resolution of the threshold model The commonest failure in the Republic. No method known to the cooperative resolves it.

A defect reaching the warning path is handled first and is announced on every published channel. Nothing else in this list is.

Compatibility undertaking

What will keep working

The message format is versioned. A decoder written against version 2 continues to decode version 3 messages, ignoring fields it has no knowledge of. No field is ever removed from a version already published, and no field changes meaning.

Where a change would break an existing decoder, a new version number is issued and both are broadcast in parallel for at least five years, which is the term of a device certificate. Version 1 and version 2 have run in parallel since 2024.

See also