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.
- 9 repositories
- 0 licences to sign
- 1,412 conformance vectors
- 3 systems published in full
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:
- You operate in a jurisdiction that gives no recognition to the public domain, or none to an author's power to place work in it.
- Your legal department requires a licence text on file before the code may be used.
- You are redistributing the work inside a larger product whose licence audit expects a named licence for every component.
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.
| 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
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
- Certified devices and RQUAK, and the conformance requirements
- Why these systems exist
- Observing network, the stations these plans describe