CML 変換ツール
操作マニュアル

2019/01

改訂履歴

版数

日付

1.0

2005/03

内容
初版作成

ツールバージョン
1.0

海洋短波レーダーの観測結果データの標準データ配1.1

2006/01

信に伴い、調査地点の選択、時間範囲の選択方法の1.1改良を行った。
1.2

2007/05

2.0

2019/01

ＣＭＬ準拠の実データ公開に伴い、各種改良を行った。
サポート切れの Excel の対象を排除
動作を CSV 変換に特化し、再作成

1

1.2
2.0

―目次―
1.

はじめに .................................................................... 4

1.1.

ツール概要 .............................................................. 4

1.2.

動作環境 ................................................................ 4

1.3.

事前準備 ................................................................ 42.

CSV データ作成 ............................................................... 72.1.

設定 .................................................................... 72.2.

起動 .................................................................... 82.3.

出力ファイルの保存場所とファイル名 ..................................... 112.4.

出力項目 ............................................................... 12（参考）EXCEL ファイル作成 ........................................................ 161.

CSV ファイルから EXCEL ファイル作成 ........................................ 162.

EXCEL 操作例 .............................................................. 2223

1.

はじめに

1.1. ツール概要
CML 変換ツールは、伊勢湾環境データベース（以下 TBEIC）において検討されたデータ仕様（CML：Coastal and estuarine Markup Language）で作成された観測データ（ＸＭＬファイル※）を CSV 形式 対応フォーマットに変換し、ファイル出力する支援するツールです。
※ 読込可能な観測データファイル
主な機能

観測データファイルのダウンロード元 URL

海洋短波レーダー

http://www.isewan-db.go.jp/radar/index.asp

水質定点観測http://www.isewan-db.go.jp/REAL_WEB/REAL_WEB_buoy

実データダウンロード

http://www.isewan-db.go.jp/WEBGIS/download01.asp
調査分類
時間変動・・・底質深度変動・・・水質
生物・・・哺乳類、昆虫、植物、鳥、底生生物、付着生物、両生類・爬虫類

1.2. 動作環境
1) Windows
本ツールは Windows 7、8.1、10 で動作確認をしております。

1.3. 事前準備
1) ツールのダウンロード
CMLDataConverter_V2.zip ファイルをツールのダウンロードページよりブラウザでダウンロードし、適当なフォルダーに展開して下さい。
以下「ダウンロード」フォルダーの CMLDataConverter_V2.zip を「C:\tools」フォルダーに展開する例です。

4

CMLDataConverter_V2.zip を選択し、右クリックから「すべて展開」をクリック「圧縮(ZIP 形式)フォルダーの展開ダイアログで、「ファイルを下のフォルダーに展開する」に「C:\tools」と入力し、展開をクリックします。

5

C:\tools に XML2CSVConverter フォルダーが作成され、3 つのファイル CSV ヘッダファイル(header.json)、設定ファイル(XML2CSVConverter.ini)、CML 変換ツール(XML2CSVConverter.js) が展開されます。

6

2.

CSV データ作成

2.1. 設定
変換ツールで使用する設定値は、変換ツールと同一フォルダーにある XML2CSVConverter.ini に記述します。
以下、設定ファイル(XML2CSVConverter.ini)の記述例です。
{"_CSVFOLDER":"CSV ファイルを格納するフォルダ","CSVFOLDER":"C:\\Temp","_PROGRESSINTERVAL":"処理中の件数を何件毎に出力するかの指定、出力しない場合(0)","PROGRESSINTERVAL":10000}
太字の CSVFOLDER と、PROGRESSINTERVAL の 2 つが設定値です。
JSON 形式のオブジェクト書式で記述して下さい。
※ JSON 形式 オブジェクト書式
オブジェクトは全体を {} で括り、キーと値を「"キー名":"値"」の形式で表記します。また、要素間はカンマ(,)で区切ります。値が文字列の場合は、ダブルコーテーション(“)で括ります。
数値の場合は、そのまま記述します。
文字列の値に、エスケープ文字(¥)が含くまれる場合は、連続する２つのエスケープ文字(¥¥)
で記述して下さい。
CSVFOLDERCSV ファイルが出力されるフォルダーを指定します。
設定ファイルに指定されていない場合や指定したフォルダーが存在しない場合は、入力 XMLファイルが存在するフォルダーに出力されます。
上記は、C:\Temp に CSV ファイルを出力する設定例です。

PROGRESSINTERVAL
変換処理の途中経過を出力するかしないかの指定です。
>0 の値を指定した場合、①XML ファイルのロード完了/CSV ファイルの出力開始メッセージと、②出力処理中の件数が指定間隔で出力されます。
途中経過を出力する必要がない場合は、0 を指定して下さい。

7注) 変換処理は、バックグラウンドで実行されるため、変換に時間がかかる大きな XML フ
ァイルを変換する場合、指定するようにして下さい。
上記は、10000 件毎に処理中件数を出力する設定例です。

2.2. 起動XML ファイルのドラッグドロップによる起動
XML ファイルをドラッグして、XML2CSVConverter.js へドロップして下さい。
以下は、データダウンロードページよりダウンロードした海洋短波レーダによる表層流況観測ファイル(TbeicRadar_20190110-20190110.xml)を変換のためドロップした例です。

注）複数の観測値ファイルを一度に変換する場合は、複数ファイルをまとめて選択しドラッグ＆ドロップして下さい。

8

上書き確認メッセージ
次のメッセージは、出力先フォルダーに既に同じ名前のファイルが存在する場合に出力されるメッセージです。
OK をクリックした場合、処理が継続され、上書き出力されます。
キャンセル をクリックした場合、変換処理は中止され上書き出力されません。

途中経過メッセージ
設定ファイルで、PROGRESSINTERVAL の>0 指定を行っている場合、CSV ファイル出力を開始する前に、以下メッセージが出力されます。(※出力後、1 秒で自動的に閉じます。)

設定値毎に、処理行数のメッセージが出力されます。(※出力後、1 秒で自動的に閉じます。)

9



出力完了
CSV ファイルの出力が完了した際、以下ダイアログが出力されます。
OK クリックで、複数ファイル処理時は、次のファイルの変換処理が開始され、１ファイルのみの変換であれば、変換ツールを終了します。

10

2.3. 出力ファイルの保存場所とファイル名
出力先ファイルの保存場所
設定ファイルの CSVFOLDER パラメータの説明を参照下さい。(2.1 設定 CSVFOLDER）
ファイル名
CSV ファイルは、入力 XML ファイルのファイルタイプを xml から csv に変更されたファイル名で作成されます。
入 力 XML フ ァ イ ル が 「 TbeicRadar_20190110-20190110.xml 」 で あ れ ば 、 CSV フ ァ イ ル は「TbeicRadar_20190110-20190110.csv」となります。

11

2.4. 出力項目
No

CSV ヘッダ

項目備考

XPATH (以下ルート要素 /observedValue 省略しています）

1

場所 ID

観測地点の ID

LOCID = observationLocation/@locationId

2

調査地点名称

観測点の名称

dictionary/locationList//gml:pos/../gml:name

3

場所種別

観測点、観測線、観※測面の種別

点- dictionary/locationList/gml:Point 、線-dictionary/locationList/gml:LineString、抽出方法

種別の値（点・線・面）は、ノードの存在で判断、

面- dictionary/locationList/gml:Surface
4

調査場所名称場所（観測点、観測

dictionary/locationList/gml:Point[@gml:id=LOCID]/gml:name or

線、観測面）の名称

dictionary/locationList/gml:LineString[@gml:id=LOCID]/gml:name ordictionary/locationList/gml:Surface[@gml:id=LOCID]/gml:name5

緯度観測点・線・面を構

dictionary/locationList//gml:pos

空白区切 後dictionary/locationList//gml:pos

空白区切 前成する地点の座標
（度表記）
6

経度

観測点・線・面を構成する地点の座標
（度表記）

7

座標系

空間参照系

reference/spacialReference8

座標取得方法

観測地点決定法

reference/locationDeterminingMethod

9

場所備考 1

観測点の備考dictionary/locationList/gml:Point[@gml:id=LOCID]/gml:description or
dictionary/locationList/gml:LineString[@gml:id=LOCID]/gml:description or
dictionary/locationList/gml:Surface[@gml:id=LOCID]/gml:description

10

場所備考 2

観測場所の備考

observationLocation[@locationId=LOCID]/description

11

開始日付

測定した時間（瞬間） observationLocation/time/gml:TimeInstant/gml:timePosition orの日付、期間（期間） observationLocation/time/gml:TimePeriod/gml:begin/gml:TimeInstant/gml:timePositionの開始日付
12

T 区切 前No

CSV ヘッダ

項目備考

XPATH (以下ルート要素 /observedValue 省略しています）

12

開始時刻

測定した時間（瞬間） observationLocation/time/gml:TimeInstant/gml:timePosition or抽出方法
T 区切 後の時刻、期間（期間） observationLocation/time/gml:TimePeriod/gml:begin/gml:TimeInstant/gml:timePositionの開始時刻
13

終了日付

測定した時間（期間） observationLocation/time/gml:TimePeriod/gml:begin/gml:TimeInstant/gml:timePosition

T 区切り前の終了日付
14

終了時刻

測定した時間（期間） observationLocation/time/gml:TimePeriod/gml:end/gml:TimeInstant/gml:timePositionの終了時刻

15

日時備考 1

測定した時間（瞬observationLocation/time/gml:TimeInstant/gml:description or

間・期間）の備考

observationLocation/time/gml:TimePeriod/gml:description

16

日時備考 2

実測時間の備考observationLocation/time/description

17

全水深

全水深を記述するた

observationLocation/time/totalDepth/depthPosition

めの深度
18

全水深基準面全水深基準面

observationLocation/time/totalDepth/basis

19

全水深単位

全水深を記述するた

UNITID =observationLocation/time/totalDepth/depthPosition/@unitId

めの単位の名称

dictionary/unitList/gml:UnitDefinition[@gml:id=UNITID]/gml:name

20

観測深度

観測深度

observationLocation/time/valueSet/depthInstant/depthPosition

21

観測深度上端観測深度帯の上端深observationLocation/time/valueSet/depthExtention/top/depthPosition

度
22

上端層名称

観測深度帯の上端層observationLocation/time/valueSet/depthExtention/top/layerName

名称
23

観測深度下端観測深度帯の下端深observationLocation/time/valueSet/depthExtention/bottom/depthPosition

度
24

下端層名称

観測深度帯の下端層

observationLocation/time/valueSet/depthExtention/bottom/layerName

名称

13

T 区切り後No

CSV ヘッダ

項目備考

XPATH (以下ルート要素 /observedValue 省略しています）

25

観測深度基準面

観測深度の基準面

observationLocation/time/valueSet/depthInstant/basis or

観測深度帯の上端基

observationLocation/time/valueSet/depthExtention/top/basis

抽出方法

準面
26

27

観測深度単位層名称

観測深度の単位の名

UNITID = observationLocation/time/valueSet/depthInstant/depthPosition/@unitId

称 ordictionary/unitList/gml:UnitDefinition[@gml:id=UNITID]/gml:name or

観測深度帯の上端深

UNITID = observationLocation/time/valueSet/depthExtention/top/depthPosition/@unitId

度の単位の名称

dictionary/unitList/gml:UnitDefinition[@gml:id=UNITID]/gml:name

観測深度の層名称

observationLocation/time/valueSet/depthInstant/layerName oror

observationLocation/time/valueSet/depthExtention/layerName

観測深度帯の層名称
28

深度備考

観測深度の備考

observationLocation/time/valueSet/description

29

調査項目分類調査分類

observationLocation/time/valueSet/category

空白区切り前「日本語＋半角スペース＋英字」
30

調査項目

調査項目の名称

ITEMID = observationLocation/time/valueSet//value/@itemId
dictionary/itemlist/item[@itemId=ITEMID]/name

31

観測値

調査項目の観測値

observationLocation/time/valueSet/value[@itemId=ITEMID] or
observationLocation/time/valueSet/valueSet/value[@itemId=ITEMID]

32

単位

単位の名称

UNITID = dictionary/itemList/item/[@itemId=ITEMID]
dictionary/unitList/gml:UnitDefinition[@gml:id=UNITID]/@unitId]/gml:name

33

単位備考

観測された量の種類

dictionary/unitList/gml:UnitDefinition[@gml:id=UNITID]/@unitId]/gml:quantityType

34

項目備考

調査項目の備考

dictionary/itemList/item[@itemId=ITEMID]/description

35

作業方法 ID

作業方法 ID

METHODID = dictionary/itemlist/item[@itemid=ITEMID]/@methodId

複数 ID
空白-変換

36

作業方法名称

作業方法の名前

dictionary/methodList/method[@methodId=METHODID]/name37

作業規定情報

引用情報源

dictionary/methodList/method[@methodId=METHODID]/resource
14

No

CSV ヘッダ

項目備考

XPATH (以下ルート要素 /observedValue 省略しています）

38

作業方法備考作業方法備考dictionary/methodList/method[@methodId=METHODID]/description

39

使用機器 ID

使用機器 ID

INSID = dictionary/itemlist/item[@itemid=ITEMID]/@instrumentId

抽出方法

複数 ID
空白-変換

40

使用機器名称

機器の名称

dictionary/instrumentList/instrument[@instrumentId=INSID]/name

41

使用目的

使用目的

dictionary/instrumentList/instrument[@instrumentId=INSID]/usage

42

製造者

製造メーカー

dictionary/instrumentList/instrument[@instrumentId=INSID]/manufacturer

43

シリアル NO

シリアルナンバー

dictionary/instrumentList/instrument[@instrumentId=INSID]/serialNumber

44

機器設置場所

機器の設置場所

dictionary/instrumentList/instrument[@instrumentId=INSID]/installationPlatform

45

設定情報

観測時における設定

dictionary/instrumentList/instrument[@instrumentId=INSID]/settingInformation

情報46

キャリブレーシ

機器の設置瞬間日時

dictionary/instrumentList/instrument[@instrumentId=INSID]/calibrationResult/calibrationDa

ョン開始日時or 開始日時

te/gml:TimeInstant/gml:timePosition or
dictionary/instrumentList/instrument[@instrumentId=INSID]/calibrationResult/calibrationDa
te/gml:TimePeriod/gml:begin/gml:TimeInstant/gml:timePosition47

キャリブレーシ

機器の設置終了日時

ョン終了日時
48
49

キャリ方法
キャリ結果

dictionary/instrumentList/instrument[@instrumentId=INSID]/calibrationResult/calibrationDa
te/gml:TimePeriod/gml:end/gml:TimeInstant/gml:timePosition

観測時における設定dictionary/instrumentList/instrument[@instrumentId=INSID]/calibrationResult/calibrationMe

情報

thod

校正情報

dictionary/instrumentList/instrument[@instrumentId=INSID]/calibrationResult/calibrationRe
sult

50

調査機関

実データを取得した

organization/name

機関名
51

出力元

入力 CML XML ファイ ファイル名
ル名
15

（参考）EXCEL ファイル作成
1.

CSV ファイルから EXCEL ファイル作成

CSV ファイルを EXCEL に取り込む方法として、①エクスプローラで直接ダブルクリックしてExcel を開く、②CSV ファイルの右クリックで「プログラムから開く→Excel」で Excel シートに読み込むのは避けて下さい。
この方法では、EXCEL が CSV ファイルを取り込む際に、各項目の型を自動的に判断し、数値の小数点の桁数が変更されたり、数値の頭 0 が削除されたり、日時の表示形式が変更される等あるため元のデータ値のまま取り込めません。
元のデータ値を維持して取り込む方法にはいくつかありますが、以下示すのは、その１手順になります。
1) EXCEL を起動
新規の空白のブックを作成するか、既存 EXCEL ファイルを開いて、取り込むシートを選択してください。
2) 設定変更(EXCEL 2016 以降)
EXCEL 2013 までのレガシインタフェースを有効化するため設定変更です「ファイル」タブを選択、「オプション」→「データ」を選択し、以下ダイアログで「レガシデータインポートウイザードの表示」の「テキストから(レガシ)」にチェックを入れて、OK をクリックします。

163) CSV ファイル EXCEL 取り込み(EXCEL 2016 以降)「データ」タブを選択、「データの取得」をクリックし「従来のウィザート」から「テキストからレガシ」をクリックします。

4) CSV ファイル EXCEL 取り込み(EXCEL 2013 以前)「データ」タブを選択、外部データの取り込みグループの「テキストファイル」をクリックします。
5) ファイルの選択
変換ツールで作成した CSV ファイルを選択し「インポート」をクリックします。

6) テキスト変換ウィザード 1/3「元のデータの形式/データのファイル形式を選択してください」より「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択、「先頭行をデータの見出しとして使用する」にチェックし「次へ」をクリックします。

177) テキスト変換ウィザード 2/3
区切り文字で「カンマ」をチェックし、「次へ」をクリックします。

188) テキスト変換ウィザード 3/3
データのプレビューで全ての列を選択した後、列のデータ形式として「文字列」を選択し、「完了」をクリックします。

9) データの取り込みシート指定
データを返す先を選択し、「OK」をクリックします。
（以下既存のワークシートに取り込む例です。
）

1910) 連番項目追加
CSV ファイルの EXCEL への取り込み処理終了後、連番の列を追加します。
CML 観測データは、複数行(複数の調査項目)で１グループの観測データなので、データ抽出や分析などでも、並び替えなどした後での並び順の維持や、元の状態に戻す操作が必要な場合等に使用する連番を予め最終列の後に追加しておきます。以下その手順です。
・ 最終列の後(AZ 列)の 1 行目に見出しとして「連番」を入力、先頭データセル(AZ2)に 1を入力します。

・ 連番を付ける範囲を把握するため最後のセルを確認しておきます。(このデータファイ
ルでは、91170 行 AZ91170 です。)
・ 先頭のセル(AZ2)を選択し、「検索と選択」から「ジャンプ」をクリックするか Ctrl+Gを入力すると、以下ダイアログが表示されます。参照先に確認した最後のセルを指定し、Shift キーを押した状態で OK をクリックします。
オートフィル対象の AZ2 から AZ91170の列が選択された状態になります。

・ 編集グループの「フィル」より「連続データ作成」を選択し、20

連続データダイアログで範囲に列、種類に加算を指定し、OK をクリックします。AZ 列に 1 からの連番が作成されます。

11) フィルター設定
見出しの１行目を選択した状態で、「データ」タブより「フィルター」をクリックし、フィルター設定を行います。

12) 保存以上で EXCEL ファイルの作成終了です。
「ファイル」タブから「名前を付けて保存」で EXCEL を保存して下さい。

21

2.

EXCEL 操作例
海洋短波レーダによる表層流況観測データファイルから作成した EXCEL ファイルは、場所ID 毎の観測日時毎に、各調査項目の観測値が並んでいます。
この EXCEL ファイルの操作の例として場所 ID に関係なく、時系列(観測日時毎)に並び替えを行った後、特定の調査項目（「波高」）の観測値を抽出する操作手順を示します。

1) 時系列での並び替え
シート全体を選択した状態で、「ホーム」タブの編集グループから「並び替えとフィルター」から「ユーザ設定の並び替え」をクリックします。

「先頭行をデータの見出しとして使用する」をチックし、「最優先されるキー」に見出し項目から「開始日付」を選択します。

22

「レベルの追加」し「次に優先されるキー」に、「開始時刻」と「連番」を順に追加し、OK をクリックします。

文字列の表示形式が設定されているキーについては、値をどのように扱うか確認する以下のようなダイアログが各々出力されます。
「数値に見えるものはすべて数値として並び替えを行う」選択し OK をクリックします。並び替えが行われます。

232) 調査項目のフィルター選択
見出し「調査項目」のフィルターをクリック、テキストフィルターより「波高」以外のチェックを外し、OK をクリックします。

以下フィルター選択した状態です。

3) 元の並びに戻す
並び替え前の元の状態に戻すには、調査項目などのフィルター設定を解除しすべて選択した状態に戻した上で、１）時系列での並び替えで使用した「ユーザ設定の並び替え」で、「最優先されるキー」に「連番」のみを指定し、再度並び替えを行って下さい。

24