センサー情報相互運用配信システム
システム設計書

Ver. 1.0.0
2015/9/1

国立研究開発法人 防災科学技術研究所

変更履歴
Version

変更日付

1.0

2015/09/1

変更内容
初版作成

目次
1概要 ....................................................................................................................................... 12システム構成 ........................................................................................................................ 1
2.1

システム構成図 ................................................................................................................. 1

2.2

システム構成 ..................................................................................................................... 23機能設計 ............................................................................................................................... 3
3.1

SOS 格納システム ............................................................................................................ 3

3.2

SOS 配信システム ............................................................................................................ 5

4画面仕様 ............................................................................................................................... 6
4.1

GetCapabilities リクエストに対するレスポンス画面 ..................................................... 6

4.2

DescribeSensor リクエストに対するレスポンス画面 ..................................................... 7

4.3

GetObservation リクエストに対するレスポンス画面 ..................................................... 85

プロパティファイル詳細 .................................................................................................... 105.1

格納配信システム設定ファイル ..................................................................................... 105.2

各センサー設定ファイル ................................................................................................ 106

データベース仕様 ............................................................................................................... 136.1

データベース ER 図 ........................................................................................................ 136.2

各テーブルスキーマ ........................................................................................................ 16

1

概要
本基本設計書は、センサー情報相互運用配信システムをの基本仕様を示すものである。

2システム構成
2.1

システム構成図

SOS 格納システムは外部センサデータサーバから観測値を取得し 52°North SOS 配信システムに登録できる OGC の SensorML を作成できるシステムである。

-1-

2.2

システム構成本システムは、SOS 格納システムと SOS 配信システムから構成されるシステムである。SOS格納システムは、Web 上に公開された外部センサーデータ（CSV 配信を想定）を取得あるいはメール配信されたデータを取得してデータベースに格納する処理を行う。また、SOS 配信システ
ムは、データベースに格納したデータを OGC(Open Geospatial Consortium)の標準に準拠した仕様で外部に配信する。
SOS 配信システムは、52°North

Sensor Observation Service を利用しており、以下のリクエストに対して OGC SOS 標準に従ったレスポンスを行う。
・GetCapabilities
・DescribeSensor
・GetObservation
API については、センサーAPI(Sensor Observation Service)仕様書を参照のこと。

-2-

3

機能設計
3.1

SOS 格納システム1)

フローチャート
SOS 格納システム起動すると格納システムのデータベースからセンサ設定を読み込んで SOS配信システムに登録する。センサ設定が SOS 配信システムに登録されていなければ、自動的にOGC に準拠した SensorML を作成し SOS 配信システムに登録する。
センサのConfig設定によりデータ取得の実行時間間隔を設定しタスクを起動させる

システム初期化
DBからセンサデータを読込開始

センサがSOS配信システムに登録したか？

終了
NY

Y

データ取得を終了する？

NSensorML作成しSOS配信システムにセンサを登録する(RegisterSensor)

Y

既に次回実行する時間？

データ取得する（HTTP/SMTP等）

N

Config設定により待機X時間

N

新たな観測データがある？
Y-3-

観測データを処理とSensorML作成しSOS配信システムに登録する(InsertObservation)

2)

UML クラス図

3)

パッケージとクラス構成
パッケージ名

クラス名

説明

jp.gobosai.sos
Main

メインクラス

jp.go.bosai.sos.config

設定に関するパッケージである
Configシステム全般的な Config 設定クラスである。データベースの接続文字列、ホストとユーザなどの設定を設定ファイルから読み込んでプログラム全体的にアクセスできる機能であるSensorConfig

センサの設定ファイルから読込クラスである

jp.go.bosai.sos.db

データベースにアクセスとクエリする等のパッケージである
DbConnection

データベース共通処理クラスである-4-

PgConnection

SOS 格納システムのデータベース接続クラス

SosConnection

SOS 配信システムへのデータベース接続クラスである

jp.go.bosai.sos.sensors

センサデータ処理に関するパッケージである
SensorObservationResult

所得した観測値を保管するクラスである

SensorObservationSetting

観測データの設定を保管するクラスである

SensorReader

センサデータ取得と処理の共通処理クラスである

Sensor

センサデータ取得と取得したデータの処理をするクラスである

TaskManager

タスクの起動と終了を管理するクラスである

jp.go.bosai.sos.util

3.2

ユーティリティ パッケージである
DateUtil

日付ユーティリティクラスである

OGCNamespaceMapper

SensorUtil で SensorML 作成する際に使われる名前空間を管理するユーティリティクラスである

SensorUtil

JAXB でインスタントから SensorML 形式にXML 化をするユーティリティクラスである

SOS 配信システム

SOS 配信システムは、52°North SOS 配信システムを利用している。
詳細は、52°North Sensor Observation
Service http://52north.org/communities/sensorweb/sos/index.html を参照のこと。

-5-

4

画面仕様
SOS 格納システムについてのユーザ・インターフェース画面はない。
SOS 配 信 シ ス テ ム に つ い て の ユ ー ザ ・ イ ン タ ー フ ェ ー ス 画 面 は 、 52°North

SensorObservation Service を利用している。

4.1

GetCapabilities リクエストに対するレスポンス画面
OGC の仕様に則った GetCapabilities リクエストで下図のようなレスポンス画面が得られる。
http://192.168.100.169:8080/NIED_SOS/sos?REQUEST=GetCapabilities&SERVICE=SOS

-6-

4.2

DescribeSensor リクエストに対するレスポンス画面
DescribeSensor リクエスト例（センサ ID procedure_id
urn:ogc:object:feature:Sensor:NIED:flood-10）
OGC の仕様に則った DescribeSensor リクエストで下図のようなレスポンス画面が得られる。
http://192.168.100.169:8080/NIED_SOS/sos?REQUEST=DescribeSensor&SERVICE=SOS&VERSION=
1.0.0&PROCEDURE=urn:ogc:object:feature:Sensor:NIED:flood-10&OUTPUTFORMAT=text/xml;subty
pe="sensorML/1.0.1-7-

時系列データの取得範囲
2/1 23:50 ~ 3/13 23:50 のデータが格納されていることを示す

4.3

GetObservation リクエストに対するレスポンス画面
GetObservation リクエスト例（センサ ID
OBSERVEDPROPERTY=urn:ogc:def:phenomenon:OGC:1.0.30:inundation）

OGC の仕様に則った GetObservation リクエストで下図のようなレスポンス画面が得られる。
http://192.168.100.169:8080/NIED_SOS/sos?REQUEST=GetObservation&SERVICE=SOS&VERSION=
1.0.0&OFFERING=INUNDATION&OBSERVEDPROPERTY=urn:ogc:def:phenomenon:OGC:1.0.30:inu
ndation&RESPONSEFORMAT=text/xml;subtype="om/1.0.0"-8-

センサー群の緯度、経度範囲

センサーデータの測定範囲

１つのセンサーデータの内容
センサー群の緯度、経度範囲

実際のデータ時刻、値

-9-

5

プロパティファイル詳細5.1

格納配信システム設定ファイル

DB への接続情報などを記載する。
パッケージ NIED_SOS¥SOSDataService¥conf¥config.properties
ファイル名

config.properties

ファイル説明SOS 格納機能全般的な設定ファイル

場所

conf/項目

説明値

PG_DRIVER

Postgres の接続のドライバー

org.postgresql.Driverjdbc:postgresql://[ ホ ス
ト]:5432/[格納機能 DB

PG_CONNECTIONSTRING

Postgres の接続文字列

名]

PG_USER

Postgres のユーザー名

postgres

PG_PASS

Postgres のパスワード

PG_MAXCONNECTION

Postgres への最大同時接続数

50

SOS_DRIVER

Postgres の接続のドライバー

org.postgresql.Driver
jdbc:postgresql:// ホ ス
ト:5432/[52North SOS

5.2

SOS_CONNECTIONSTRING

Postgres の接続文字列

配信サービス DB 名]

SOS_USER

Postgres のユーザー名

postgres

SOS_PASS

Postgres のパスワード

SOS_MAXCONNECTION

Postgres への最大同時接続数

50

SRID

空間参照システム識別子

4326

SOS_SERVICE_ENDPOINT

52North SOS 配信サービスの URL

各センサー設定ファイル

各センサーの設定ファイルでは、データ取得に必要な情報（メール形式であればメールサーバの接続情報等、ウェブアクセスであれば URL パターンなど）や取得したデータの解析に必要な情報を設定する。ここでは、具体例としてふじのくにオープンデータカタログ 1 にて公開されている雨量情報（以下雨量センサ）水位情報（以下水位センサー）について記述する。
(1) 雨量センサの設定ファイル
パッケージ NIED_SOS¥SOSDataService¥conf¥shizuoka_rainsensor.properties1

http://open-data.pref.shizuoka.jp/mu0b05bub-139/- 10 -

ファイル名shizuoka_rainsensor.properties

ファイル説明雨量センサの設定ファイル

場所

conf/

連動するテーブル名shizuoka_rain_sensor

項目

説明

値

DATA_CRAWL_INTERVAL

データ得る間隔（秒）60DATA_CRAWL_TIME_OFFSETURL で使われる日付との差（秒）-300
http://sipos.shizuoka2.jp/

URL パターン

rain-river/Rain/Shizuoka${formatted_datetime} は 日 付 パ_Rain_${formatted_dateti

ターン自動作成箇所

me}.csv

URL 日付パターン

yyyyMMddHHmm

EP

URL 日付のステップ（分）5CSV_DATA_ROW_INDEXCSV 無視する行数

1

CSV_DATETIME_FORMATCSV 日付フォマット

yyyy-MM-dd HH:mm:ssZ

CSV_DATETIME_TIMEZONECSV 日付時間帯

Asia/Tokyo

URL_PATTERNFORMATTED_DATETIME_EX
PR
FORMATTED_DATETIME_ST

Procedure Id のパターン

PROCEDURE_ID_PATTERN${rain_sensor_id}はデータベース

urn:ogc:object:feature:Seのテーブル Id により自動作成す

nsor:NIED:rain-${rain_seる

nsor_id}

Feature of Interest Id のパターン${rain_sensor_id}はデータベース
FOI_ID_PATTERNのテーブル Id により自動作成す

foi_rain_sensor_${rain_seるnsor_id}(2) 水位センサの設定ファイル
パッケージ NIED_SOS¥SOSDataService¥conf¥shizuoka_waterlevelsensor.properties
ファイル名shizuoka_waterlevelsensor.properties

ファイル説明水位センサの設定ファイル

場所

conf/

連動するテーブル名shizuoka_waterlevel_sensor- 11 -

項目

説明

値

DATA_CRAWL_INTERVAL

データ得る間隔（秒）60

URL で使われる日付とのDATA_CRAWL_TIME_OFFSET

-300

差（秒）
URL パターン${formatted_datetime} は

http://sipos.shizuoka2.jp/rain-rive

日付パターン自動作成箇

r/Water_Level/Shizuoka_WaterLe

所

vel_${formatted_datetime}.csv

URL 日付パターン

yyyyMMddHHmm

EP

URL 日付のステップ（分）10CSV_DATA_ROW_INDEXCSV 無視する行数

1

CSV_DATETIME_FORMATCSV 日付フォマット

yyyy-MM-dd HH:mm:ssZ

CSV_DATETIME_TIMEZONECSV 日付時間帯

Asia/Tokyo

URL_PATTERNFORMATTED_DATETIME_EX
PR
FORMATTED_DATETIME_ST

Procedure Id のパターン

PROCEDURE_ID_PATTERN${waterlevel_sensor_id}

urn:ogc:object:feature:Sensor:NIE

はデータベースのテーブ

D:waterlevel-${waterlevel_sensor

ル Id により自動作成する_id}

Feature of Interest Id のパターン${waterlevel_sensor_id}
FOI_ID_PATTERN

はデータベースのテーブ

foi_waterlevel_sensor_${waterleve

ル Id により自動作成する

l_sensor_id}- 12 -

6

データベース仕様
6.1

データベース ER 図(1) SOS 格納システム
観測データ設定テーブル(sensor_observation_setting)と他のセンサテーブルと直接に外部キーで結ばれていないが、実際には sensor_observation_setting.table_name=<センサテーブル名>と sensor_observation_setting.ref_sensor_id=<センサテーブルのセンサ Id>の条件により動的に結ばれている。
ここでは、具体例としてふじのくにオープンデータカタログ 2にて公開されている雨量情報,、水位情報のデータベース ER 図について記述する。

2

http://open-data.pref.shizuoka.jp/mu0b05bub-139/- 13 -

(2) SOS 配信システム
以下に SOS 配信システムの ER 図 3を示す。
観測データは、observation テーブルの numeric_value カラムに格納され以下のカラムにより一意に決定される。
・time_stamp カラム（観測時刻を格納）
・procedure_id カラム(センサー)・feature_of_interest_id カラム（センサーが配置されている地物）
・phenomenon_id カラム（観測対象、雨量など）

The 52North SOS standard data model
https://wiki.52north.org/bin/view/SensorWeb/SosDataModeling3- 14 -

- 15 -

6.2

各テーブルスキーマ

具体例としてふじのくにオープンデータカタログ にて公開されている雨量情報（以下雨量センサ）水位情報（以下水位センサー）を本システムで設定する場合のテーブルスキーマを記述する。
(1) shizuoka_rain_sensor 4
テーブル名shizuoka_rain_sensor

説明

雨量センサ設定テーブル

フィールド名

データ型

説明

rain_sensor_id[PK]int

雨量センサ ID

namevarchar(50)

センサ名

office_id

int

雨量センサ事務所 Id

addressvarchar(250)

住所（参考のために保留）

latitude

double

センサの経度longitude

double

センサの緯度SOS 配信システムから戻した FOI の ID
（RegisterSensor を作成する際、設定ファイルに指定した FOI_ID_PATTERN を基づき生

feature_of_interest_id

varchar(100)成する）

last_timestamp

timestamp

最後のデータ取得した時間
SOS 配信システムから戻した Procedure の ID
（RegisterSensor を作成する際、設定ファイルに指定した PROCEDURE_ID_PATTERN

procedure_id

varchar(100)を基づき生成する）

date_column_index

int

データを取込際に日付データのコラム位置(2) shizuoka_waterlevel_sensor 5
テーブル名shizuoka_waterlevel_sensor

説明水位センサ設定テーブル

フィールド名waterlevel_sensor_id[PK]

データ型
int

説明
水位センサ ID

4雨量センサデータの参照リンク

http://sipos.shizuoka2.jp/rain-river/siposDataDownload.pdf
5水位センサデータの照リンク
http://sipos.shizuoka2.jp/rain-river/siposDataDownload.pdf- 16 -

namevarchar(50)

センサ名

office_id

int

水位センサ事務所 Id

latitude

double

センサの経度longitude

double

センサの緯度

drainage_namevarchar(50)水系（参考のために保留）river_namevarchar(50)河川系（参考のために保留）

addressvarchar(250)

住所（参考のために保留）rank_1

double

水防団待機水位（参考のために保留）rank_2

double

氾濫注意水位（参考のために保留）rank_3

double

避難判断水位（参考のために保留）rank_4double

氾濫危険水位（参考のために保留）SOS 配信システムから戻した FOI の ID
（RegisterSensor を作成する際、設定ファイルに指定した FOI_ID_PATTERN をfeature_of_interest_idvarchar(100)基づき生成する）

last_timestamp

timestamp

最後のデータ取得した時間
SOS 配信システムから戻した Procedureの ID（RegisterSensor を作成する際、設定ファイルに指定した
PROCEDURE_ID_PATTERN を基づきprocedure_idvarchar(100)生成する）
データを取込際に日付データのコラム位

date_column_index

int

置- 17 -

(3) sensor_observation_setting
テーブル名sensor_observation_setting

説明

観測データ設定テーブル

フィールド名

6

データ型

説明

id[PK]

int

自動インクリメント Idtable_namevarchar

連携するセンサテーブル名

ref_sensor_idint

連携するセンサ Id

csv_column_index

varchar

CSV データのコラム位置

calculate_expr

double計算式（変数「obsVal」は取得した観測値）6

phenomenon_id

doubleRegisterSensor 用の PhenomenonId

offering_id

varchar

RegisterSensor 用の OfferingId

uomtimestamp

単位

フィールド calculate_expr の関数に関して、下記のリンクに載っている演算関数の使用は可能である。例: abs(obsVal)+1234/5
http://www.objecthunter.net/exp4j/#Built-in_functions- 18 -