Skip to main content

Downloads

Azarashi

A QZSS DCR Decoder.

Description

azarashi は、準天頂衛星みちびきが送信する災危通報メッセージのデコーダーです。u-blox と Sony Spresense が出力するメッセージ、16進数の文字列、L1S アーカイブを読めます。災危通報は「災害・危機管理通報サービス」の略で、防災機関が発表した地震や津波などの情報を、みちびきが送信します。

IS-QZSS-DCR-017 と IS-QZSS-DCX-004 に対応しています。DCX は災危通報の拡張メッセージで、L-Alert や J-Alert などを伝えます。

Installation

$ pip install azarashi

シリアルデバイスからの読み込みに使う pySerial も一緒にインストールされます。

Python 3.11 以降で動きます。

Usage

azarashi コマンドにメッセージを渡すと、災害情報を読みやすい文章にして表示します。

$ echo '$QZQSM,55,C6AF89A820000324000050400548C5E2C000000003DFF8001C00001185443FC*05' | azarashi nmea
2026-09-17T14:22:41.075694Z --------------------------------
防災気象情報(緊急地震速報)(発表)(訓練/試験)
*** これは訓練です ***
緊急地震速報
強い揺れに警戒してください。

発表時刻: 3月10日10時0分

震央地名: 日向灘
地震発生時刻: 10日10時0分
深さ: 10km
マグニチュード: 7.2
震度(下限): 震度6弱
震度(上限): 〜程度以上
島根、岡山、広島、山口、香川、愛媛、高知、福岡、佐賀、長崎、熊本、大分、宮崎、鹿児島、中国、四国、九州

GPS モジュールから直接読むときは、デバイスのパスとボーレートを指定します。

$ azarashi ublox -f /dev/ttyS0 -b 9600

プログラムから使うときは decode() にメッセージを渡します。レポートオブジェクトが返り、print() に渡すと、さきほどのコマンドと同じ文章を表示します。災害の種類ごとのパラメータは、属性か get_params() で取り出せます。

>>> import azarashi
>>> report = azarashi.decode('$QZQSM,55,C6AF89A820000324000050400548C5E2C000000003DFF8001C00001185443FC*05')
>>> report.disaster_category, report.magnitude, report.seismic_epicenter
('緊急地震速報', '7.2', '日向灘')

ストリームから読み続けるときは decode_stream() を使います。シリアルデバイスは pySerial で開いて渡してください。メッセージが一つ読めるたびに callback が呼ばれます。

import azarashi
import serial

with serial.Serial('/dev/ttyS0', 9600) as ser:
    while True:
        try:
            azarashi.decode_stream(ser, msg_type='ublox', callback=print)
        except azarashi.AzarashiReadOn as e:
            print(f'# [{type(e).__name__}] {e}')
        except azarashi.AzarashiReopenStream as e:
            print(f'# [{type(e).__name__}] {e}')
            break
        except azarashi.AzarashiStopReading:
            break

捕捉している3つのクラスが、次に何をすべきかを表します。

  • AzarashiReadOn: メッセージが手に入らなかったときに送出されます。たとえば電文が壊れていたときや、azarashi がまだ対応していない種類のメッセージだったときです。ストリームは無事なので、もう一度呼べば次のメッセージに進みます。
  • AzarashiReopenStream: ストリームの読み取りそのものが失敗したときに送出されます。たとえば USB のデバイスが抜けたときです。そのストリームは二度と読めないので、閉じて開き直してください。
  • AzarashiStopReading: 読むものがなくなったときに送出されます。たとえば記録したファイルを最後まで読んだときです。続きは届きません。

3つは互いに継承関係がないので、どの順番に書いても同じように動きます。実際に送出されるのは、この3つのいずれかを継承した、より細かいクラスです。何が起きたかを名前が表すので、ログには AzarashiDisconnectedError のような具体的な名前が出ます。

呼び出し方を間違えたときは、この3つのどれでもない AzarashiFixTheCall の仲間が送出されます。たとえば対応していない形式を指定したときです。ループでは捕捉されず、理由を示して止まります。コードを直してください。

仕様にないコード値を受け取っただけでは例外になりません。そのコード値は 火山(コード番号:999) のような名前にしてレポートに入れます。例外の一覧は API を見てください。

Documentation

  • Preparation: u-blox や Sony Spresense に災危通報を出力させる設定
  • CLI: azarashi コマンドのオプション、受信データの記録と再生
  • API: decode()、decode_stream()、例外、型ヒント、プログラムの例
  • JSON: JSON API、NDJSON 出力、JSON Schema、コード表
  • English Translation Policy: DCR の英語の方針と出典、azarashi が訳した英語の一覧
  • Reports: レポートオブジェクトの共通フィールドと、形式ごとの一覧
    • DCR: MT43 のクラスとフィールド、デコード例
    • DCX: MT44 のクラスとフィールド、デコード例
  • Network: 受信したデータを UDP で別の装置に送る
  • Tips: 何も表示されないとき、Encountered EOF、SD フィールドの監視
  • Development: テストと静的解析の実行方法
  • Releases: 版ごとの変更

Feedback

イシュー報告、プルリクエスト、コメント等、なんでもよいのでフィードバックお待ちしています。星をもらうと開発が活発になります。 Questions, suggestions, and comments are welcome! Please feel free to write in English.

Credits

This project was originally developed during my time at BitMeister Inc., with support and resources generously provided by the company. I am really thankful for the people and the environment that helped make it happen. It is now maintained independently.

Metadata

Release files for azarashi 0.17.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for azarashi 0.17.1
File Size Uploaded
azarashi-0.17.1.tar.gz 319.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for azarashi 0.17.1
File Interpreter ABI Platform
azarashi-0.17.1-py3-none-any.whl Python 3 none any Details

Total release size: 580.3 kB

Release files / azarashi-0.17.1.tar.gz

Download URL azarashi-0.17.1.tar.gz
Size 319.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2a0d7b48fd46af8b98ee4f033390242601c5730a36868eb191bf8e7521197fd5
BLAKE2b-256 checksum
How to use checksums
583a16c0217e1197b3ee3d4ec1268929087daf06fbcf241c0375030e724facf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / azarashi-0.17.1-py3-none-any.whl

Download URL azarashi-0.17.1-py3-none-any.whl
Size 261.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6433fff056b404a8f90637c9da99afccbaf74f3dd59a00fcefda78cd77ed820f
BLAKE2b-256 checksum
How to use checksums
68fe0bd5c7346850e78627870c27a38bef22544f22a5266ce2d0318154dd5ee9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.17.1 This release

2 release files

0.17.0

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.12.0

2 release files

0.11.0

1 release file

0.10.3

1 release file

0.10.2

1 release file

0.10.1

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.4

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.10

1 release file

0.6.8

1 release file

0.6.7

1 release file

0.6.6

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page