Skip to main content

Downloads

Azarashi

A QZSS DCR Decoder.

Description

azarashi は、準天頂衛星みちびきが送信する災危通報メッセージのデコーダーです。u-blox と Sony Spresense が出力するメッセージ形式に対応しています。災危通報は「災害・危機管理通報サービス」の略で、防災機関が発表した地震や津波などの情報を、みちびきが送信します。

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: テストと静的解析の実行方法

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.

Release files for azarashi 0.17.0

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.0
File Size Uploaded
azarashi-0.17.0.tar.gz 293.3 kB Details

Built distribution (wheel)

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

Total release size: 541.1 kB

Release files / azarashi-0.17.0.tar.gz

Download URL azarashi-0.17.0.tar.gz
Size 293.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8f75e3c85529cfcd655c5f43a809faf37d412c0c5c0c96e48a4b15cf3a95fdab
BLAKE2b-256 checksum
How to use checksums
527ec2dbeb75ab33e81da8eda885e0beba352d9474bb77ce7fc1ffe754907ced
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 Sep 24, 2026.

Transparency log

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

Download URL azarashi-0.17.0-py3-none-any.whl
Size 247.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26898793495aa872a4e8f04a10a035e7a2dcd4f12c7ba33cce1e6879ad3704e3
BLAKE2b-256 checksum
How to use checksums
8705636fa831d0416c42caf9a6ac73098f7b59bac5c84f09464b24f061bf50d3
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 Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.17.0 This release

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