今回沿岸予報のアプリを作るにあたって、初めてAPIやXMLに触れましたが、気象庁のXMLは通常のAPIのJSONとは比べ物にならないほど難しかったので愚痴として残しておきますw
苦労した点
通常のAPIと違いとりあえずXMLの中身を把握しなければなりません、どこに自分の欲しいデータがあるか、構造がどうなっているか、これだけでもかなり時間を食いました。
そしてフィードも短期と長期に分かれていて、警報も同じ種類のフィードに入ってくる為
もしかして最新の天気予報も短期フィードで拾えない可能性があるのか?と、しばらく監視する必要もありました。
このことは気象庁のサイトに書かれていなかったです(見つけれなかっただけかもしれませんが)。
海上警報に置いては見ていない警報が有るためそれをどうするか出てきたらまた検討しなければなりません。出来ればもう二度と見たくないのですが・・・
(風系、濃霧、着氷、波浪、+α?・・・なぜ全部のパターンを公式HPで載せておかないのか・・・)
着氷は手に入れたので一番下に貼っておきます、XMLがエラーでアップロードできなかったので直貼りですが。他も入手したら随時載せます。
そしてXMLに使用している地名も一貫性がなくすべて調べる必要がありました、コードナンバーの手もありましたが対応表を作るのが面倒だったので文字列をハードコートしました、まぁこれが間違いだったかもしれませんがw
しかもデータの種類によって地名から地域名に変わっていたりとかなり面倒でした。
例:3日間の天気予報 上川地方、留萌地方
3〜4データ分の気温 旭川、留萌
XMLの構造も、なんでこれ分かれてるんだ???と突っ込みたくなるような構造してます、後から追加してああなったのかはわかりませんが構造も一貫性がありません。
今回PHPのsimplexml_load_file()でパースしたのですが、安易にXPathで飛んでforeachで回しても取れない時があり、2日くらいハマりました。
GPTに愚痴ったら一瞬で解決しましたがw
↓その時の原因と解決を載せておきます。↓
気象庁XMLのパース時の注意点
これ、**気象庁XML特有の「同名タグが階層的に複数存在する構造」**が原因です。
順を追ってわかりやすく説明しますね。
🔹 まず、気象庁のXML構造の特徴
気象庁の防災情報や天気予報XML(たとえば https://www.data.jma.go.jp/developer/xml/feed/ 内の各ファイル)には、
以下のように同名タグ(Property や Type)が複数階層にネストしていることが多いです。
|
1 2 3 4 5 6 7 8 9 10 |
<Area> <Property> <Type>最高気温</Type> <Value>30</Value> </Property> <Property> <Type>最低気温</Type> <Value>20</Value> </Property> </Area> |
一見「同じPropertyタグ配下にTypeとValueがある」だけですが、
実際のXML構造ではこうしたタグが複数の階層や異なる親要素に散らばっていることが多いです。
🔹 問題の原因:XPathが「文脈を失う」から
PHPで simplexml_load_file() を使っている場合、$xml->Property->Type のような指定は「最初に見つかったProperty要素」だけにアクセスします。
なので、例えばこのような構造では:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<Root> <MeteorologicalInfos> <Item> <Property> <Type>最高気温</Type> <Value>30</Value> </Property> </Item> <Item> <Property> <Type>最低気温</Type> <Value>20</Value> </Property> </Item> </MeteorologicalInfos> </Root> |
$xml->Property->Type は最初の <Property> にしか到達できず、最低気温 の方はスキップされてしまいます。
🔹 対処法①:xpath() でフルパス指定する
SimpleXMLElement の xpath() を使って、
「すべてのProperty」を対象に走査するのが安全です。
|
1 2 3 4 5 6 7 8 9 10 |
$xml = simplexml_load_file("sample.xml"); // すべての Property を取得 $properties = $xml->xpath('//Property'); foreach ($properties as $property) { $type = (string)$property->Type; $value = (string)$property->Value; echo "$type: $value\n"; } |
👉 //Property という XPath は「階層に関係なくすべての Property を取得」します。
これで「最高気温」「最低気温」など、同階層でなくても拾えます。
🔹 対処法②:foreachで1階層ずつ辿る(構造固定型)
もし気象庁のXMLがある程度決まった構造である場合(例えばMeteorologicalInfos > Item > Propertyなど)、
次のように明示的に階層を辿る方が安定します:
|
1 2 3 4 5 6 7 |
foreach ($xml->MeteorologicalInfos->Item as $item) { foreach ($item->Property as $property) { $type = (string)$property->Type; $value = (string)$property->Value; echo "$type: $value\n"; } } |
🔹 対処法③:Type名でフィルタするXPath
特定の要素だけ取りたい場合は、XPathで条件指定も可能です:
|
1 2 3 4 5 |
$maxTemp = $xml->xpath('//Property[Type="最高気温"]/Value'); $minTemp = $xml->xpath('//Property[Type="最低気温"]/Value'); echo "最高気温: " . (string)$maxTemp[0] . "\n"; echo "最低気温: " . (string)$minTemp[0] . "\n"; |
🔹 まとめ
| 状況 | 対処方法 |
|---|---|
| 同名タグが複数階層に存在 | xpath('//Property') で全取得 |
| 特定のTypeだけ欲しい | xpath('//Property[Type="最低気温"]/Value') |
| 構造が固定 | 階層を明示してforeach |
💡 問題の正体(要約)
PHP の simplexml_load_file() は、
同じ名前のタグが同階層で複数ある場合に、最初のひとつしか直接アクセスできないことがあります。
しかも、気象庁XMLは複数の namespace(xmlns)を使っていて、
タグ名の判定が "Property" ではなく "ns:Property" のように扱われています。
この2つの要因が合わさると:
|
1 |
foreach ($MeteorologicalInfos->TimeSeriesInfo->Item->Kind->Property as $property) |
の $property が最初のPropertyで止まる(つまり最低気温だけ)現象が起こります。
✅ 原因の詳細
あなたのXMLの該当部分を抜粋するとこうですね:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<Kind> <Property> <Type>最低気温</Type> ... </Property> <Property> ... </Property> <Property> ... </Property> <Property> <Type>最高気温</Type> ... </Property> <Property> <Type>最高気温予測範囲</Type> ... </Property> </Kind> |
という デフォルト名前空間 が宣言されています。
これにより <Property> タグは内部的には{http://xml.kishou.go.jp/jmaxml1/body/meteorology1/}Property
という「名前空間付きのタグ名」として扱われます。
SimpleXML ではこれを明示的に登録しないと xpath() や foreach が正しく動作しません。
✅ 解決策:名前空間を登録してXPathで抽出する
最も確実な方法は、XPath + 名前空間登録を使うことです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$xml = simplexml_load_file('asahikawa.xml'); // 名前空間を登録 $xml->registerXPathNamespace('met', 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/'); $xml->registerXPathNamespace('eb', 'http://xml.kishou.go.jp/jmaxml1/elementBasis1/'); // 「地点予報」だけを取得 $meteorologicalInfos = $xml->xpath('//met:MeteorologicalInfos[@type="地点予報"]'); foreach ($meteorologicalInfos as $info) { // 各 Property を列挙 $properties = $info->xpath('.//met:Property'); foreach ($properties as $property) { $type = (string)$property->Type; echo "---- $type ----\n"; // もし TemperaturePart があればその中の温度を全部取得 $temps = $property->xpath('.//eb:Temperature'); foreach ($temps as $temp) { echo "refID=" . $temp['refID'] . " : " . (string)$temp . "度\n"; } } } |
💡 これで正しく全部取れる理由
registerXPathNamespace()を使うと、
met:Propertyやeb:Temperatureが本来の namespace 付き要素として認識される。xpath('.//met:Property')を使うことで、同階層に複数ある<Property>すべてを抽出できる。foreachを回すと最低気温も最高気温も最高気温予測範囲も取得できる。
🔎 補足:もし foreach だけで書きたい場合
名前空間を削除してパースする方法もあります(ただし一部属性が欠けることもある)。
|
1 2 3 4 5 6 7 8 9 10 11 |
$xml_str = file_get_contents('asahikawa.xml'); $xml_str = preg_replace('/xmlns[^=]*="[^"]*"/i', '', $xml_str); // 名前空間削除 $xml = simplexml_load_string($xml_str); foreach ($xml->Body->MeteorologicalInfos as $info) { if ((string)$info['type'] === '地点予報') { foreach ($info->TimeSeriesInfo->Item->Kind->Property as $property) { echo (string)$property->Type . "\n"; } } } |
👉 これでも最低限動きますが、気象庁XMLは jmx_eb のような別 namespace タグもあるので、
正式には XPath+registerXPathNamespace の方法が安全です。
| 症状 | 原因 | 対処 |
|---|---|---|
| 最高気温が取得できない | namespace により Property が1つしか認識されない | registerXPathNamespace+XPath で全取得 |
| foreach で Property をループしても1件だけ | default namespace の影響 | 名前空間削除 or XPath 使用 |
| 同階層に複数の Property がある | SimpleXML の制約 | .//met:Property で取得 |
コードを見せたら具体的なコードもくれた回答
🧩 問題の本質
|
1 |
$type = (string)$kind->Property->Type; |
となっており、$kind->Property に複数ある <Property> の最初の1つしか入らないのが原因です。
PHP の SimpleXML は、
同じタグ名が複数ある場合に $element->Property でアクセスすると、最初の1件だけを返す仕様になっています。
(SimpleXMLElement が IteratorAggregate を実装してるけど「最初のノード」扱いになる)
✅ 解決法①:xpath('.//m:Property') でループする
Kind の中にある Property は複数存在します。
それを明示的にループさせるようにします👇
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$b = $obj->xpath('//m:MeteorologicalInfos[@type="地点予報"]'); foreach ($b as $item) { $item->registerXPathNamespace('m', 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/'); $kinds = $item->xpath('.//m:Kind'); foreach ($kinds as $kind) { // ここを変更 $properties = $kind->xpath('.//m:Property'); foreach ($properties as $property) { $type = (string)$property->Type; echo $type . "\n"; } } } |
🟢 これで「最低気温」「最高気温」「最高気温予測範囲(上端)」「最高気温予測範囲(下端)」など、全部出力されます。Property が複数でもすべてループに入るようになります。
✅ 解決法②:$kind->Propertyを配列として扱う
もう1つの書き方は:
|
1 2 3 4 |
foreach ($kind->Property as $property) { $type = (string)$property->Type; echo $type . "\n"; } |
これでもOKです。SimpleXML の仕様として「同名タグは foreach にすると配列的に全部取れる」挙動があるため、$kind->Property->Type ではなく foreach ($kind->Property as $property) にするのがコツです。
🔍 なぜ「区域予報」は動くのに「地点予報」は止まるのか
気象庁の XML は、
- 「区域予報」側では
<Kind>ごとにPropertyが1つしか無い。 - 「地点予報」側では
<Kind>の中にPropertyが複数ある。
つまり:
| 種類 | Kind配下のProperty数 | $kind->Property->Type の結果 |
|---|---|---|
| 区域予報 | 1 | OK |
| 地点予報 | 複数 | 最初の1件(最低気温)しか出ない |
という構造上の違いなんです。
✅ 最終形(動作保証済みコード)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$obj = simplexml_load_file('sample.xml'); $obj->registerXPathNamespace('m', 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/'); $obj->registerXPathNamespace('jmx_eb', 'http://xml.kishou.go.jp/jmaxml1/elementBasis1/'); // 区域予報 $a = $obj->xpath('//m:MeteorologicalInfos[@type="区域予報"]'); foreach ($a as $item) { $kinds = $item->xpath('.//m:Kind'); foreach ($kinds as $kind) { foreach ($kind->Property as $property) { echo (string)$property->Type . "\n"; } } } // 地点予報 $b = $obj->xpath('//m:MeteorologicalInfos[@type="地点予報"]'); foreach ($b as $item) { $kinds = $item->xpath('.//m:Kind'); foreach ($kinds as $kind) { foreach ($kind->Property as $property) { echo (string)$property->Type . "\n"; } } } |
🧠 まとめ(超重要ポイント)
| 現象 | 原因 | 対策 |
|---|---|---|
| 地点予報で1件しか出ない | <Kind> 内に複数 <Property> がある | $kind->Property を foreach で回す |
| XPathで1件しか出ない | Propertyを直接指定している | .//m:Property を明示的にループ |
| 区域予報では動く | 各KindにPropertyが1件のみ | 仕様上問題なし |
つまり構造がバラバラで一箇所で取れたからといって他の場所でも同じ様に取れるとは限らないということでした。
名前空間については GitHub Copilot で解決はしていました、ですが取れなかったです。
ちなみにこのforeach問題は GitHub Copilot では解決できませんでした。(GitHub CopilotはVScodeに組み込まれていてフォルダ、ファイル、一部のIDEの状態まで読み取れます、WordPress環境下ではPHPテスト出来ないのか?と聞いたらテスト環境をファイルごとまるっと作ってくれました、すごすぎです。)
ついでに
海上警報の警報タイプからXPathで目的のデータをforeachで回して取ろうとする時は2回xpath(‘parent::*’)を使って親を遡ってからやらないと取れません。理由は特に調べていません。
|
1 2 3 4 5 6 7 8 9 |
if((string)$property->Type === '濃霧') { $property->registerXPathNamespace('m', 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/'); $parent = $property->xpath('parent::*'); $parents = $parent[0]->xpath('parent::*'); // 2回遡らないといけない謎 $parents[0]->registerXPathNamespace('m', 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/'); $kinds = $parents[0]->xpath('.//m:Kind'); foreach ($kinds as $kind) { //ここから取れる |
レア海上警報XML
着氷
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
This XML file does not appear to have any style information associated with it. The document tree is shown below. <Report xmlns="http://xml.kishou.go.jp/jmaxml1/" xmlns:jmx="http://xml.kishou.go.jp/jmaxml1/" xmlns:jmx_add="http://xml.kishou.go.jp/jmaxml1/addition1/"> <Control> <Title>地方海上警報(H28)</Title> <DateTime>2025-11-06T08:35:02Z</DateTime> <Status>通常</Status> <EditorialOffice>札幌管区気象台</EditorialOffice> <PublishingOffice>札幌管区気象台</PublishingOffice> </Control> <Head xmlns="http://xml.kishou.go.jp/jmaxml1/informationBasis1/"> <Title>札幌海上気象</Title> <ReportDateTime>2025-11-06T17:35:00+09:00</ReportDateTime> <TargetDateTime>2025-11-06T17:35:00+09:00</TargetDateTime> <ValidDateTime>2025-11-07T15:00:00+09:00</ValidDateTime> <EventID/> <InfoType>発表</InfoType> <Serial/> <InfoKind>地方海上警報</InfoKind> <InfoKindVersion>1.0_2</InfoKindVersion> <Headline> <Text/> <Information type="地方海上警報"> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>日本海北部及びオホーツク海南部</Name> <Code>1000</Code> </Area> </Areas> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>サハリン東方海上</Name> <Code>1010</Code> </Area> </Areas> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>網走沖</Name> <Code>1030</Code> </Area> </Areas> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>宗谷海峡</Name> <Code>1040</Code> </Area> </Areas> </Item> <Item> <Kind> <Name>海上着氷警報</Name> <Code>10</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>サハリン東方海上</Name> <Code>1010</Code> </Area> </Areas> </Item> <Item> <Kind> <Name>海上着氷警報</Name> <Code>10</Code> </Kind> <Areas codeType="地方海上予報区"> <Area> <Name>サハリン西方海上</Name> <Code>1020</Code> </Area> </Areas> </Item> </Information> </Headline> </Head> <Body xmlns="http://xml.kishou.go.jp/jmaxml1/body/meteorology1/" xmlns:jmx_eb="http://xml.kishou.go.jp/jmaxml1/elementBasis1/"> <Warning type="地方海上警報"> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Kind> <Property> <Type>風</Type> <WindPart> <SubArea> <Sentence>サハリン東方海上では 北東の風が次第に強まり 07日03時までに 最大風速は 30ノット(15メートル) に達し 07日15時までに 北の風が強く 最大風速は 45ノット(23メートル) に達する見込み</Sentence> <Base> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北東</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="風速" condition="次第に強まる" description="次第に強まる"/> </Base> <Becoming> <TimeModifier>07日03時までに</TimeModifier> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="30ノット">30</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="15メートル">15</jmx_eb:WindSpeed> </Becoming> <Becoming> <TimeModifier>07日15時までに</TimeModifier> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="45ノット">45</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="23メートル">23</jmx_eb:WindSpeed> </Becoming> </SubArea> </WindPart> </Property> </Kind> <Area> <Name>サハリン東方海上</Name> <Code>1010</Code> </Area> </Item> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Kind> <Property> <Type>風</Type> <WindPart> <SubArea> <Sentence>網走沖では 西の風が次第に強まり 07日03時までに 最大風速は 35ノット(18メートル) に達し 07日15時までに 北西の風が強く 最大風速は 45ノット(23メートル) に達する見込み</Sentence> <Base> <jmx_eb:WindDirection type="風向" unit="8方位漢字">西</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="風速" condition="次第に強まる" description="次第に強まる"/> </Base> <Becoming> <TimeModifier>07日03時までに</TimeModifier> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="35ノット">35</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="18メートル">18</jmx_eb:WindSpeed> </Becoming> <Becoming> <TimeModifier>07日15時までに</TimeModifier> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北西</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="45ノット">45</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="23メートル">23</jmx_eb:WindSpeed> </Becoming> </SubArea> </WindPart> </Property> </Kind> <Area> <Name>網走沖</Name> <Code>1030</Code> </Area> </Item> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Kind> <Property> <Type>風</Type> <WindPart> <SubArea> <Sentence>サハリン西方海上では 北西の風が次第に強まり 06日21時までに 最大風速は 30ノット(15メートル) に達し 07日09時までに 北の風が強く 最大風速は 40ノット(20メートル) に達する見込み</Sentence> <Base> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北西</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="風速" condition="次第に強まる" description="次第に強まる"/> </Base> <Becoming> <TimeModifier>06日21時までに</TimeModifier> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="30ノット">30</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="15メートル">15</jmx_eb:WindSpeed> </Becoming> <Becoming> <TimeModifier>07日09時までに</TimeModifier> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="40ノット">40</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="20メートル">20</jmx_eb:WindSpeed> </Becoming> </SubArea> </WindPart> </Property> </Kind> <Area> <Name>サハリン西方海上</Name> <Code>1020</Code> </Area> </Item> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Kind> <Property> <Type>風</Type> <WindPart> <SubArea> <Sentence>宗谷海峡では 西の風が次第に強まり 06日21時までに 最大風速は 30ノット(15メートル) に達し 07日09時までに 北の風が強く 最大風速は 40ノット(20メートル) に達する見込み</Sentence> <Base> <jmx_eb:WindDirection type="風向" unit="8方位漢字">西</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="風速" condition="次第に強まる" description="次第に強まる"/> </Base> <Becoming> <TimeModifier>06日21時までに</TimeModifier> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="30ノット">30</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="15メートル">15</jmx_eb:WindSpeed> </Becoming> <Becoming> <TimeModifier>07日09時までに</TimeModifier> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="40ノット">40</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="20メートル">20</jmx_eb:WindSpeed> </Becoming> </SubArea> </WindPart> </Property> </Kind> <Area> <Name>宗谷海峡</Name> <Code>1040</Code> </Area> </Item> <Item> <Kind> <Name>海上強風警報</Name> <Code>21</Code> </Kind> <Kind> <Property> <Type>風</Type> <WindPart> <SubArea> <Sentence>北海道西方海上では 南西の風が強く 最大風速は 30ノット(15メートル) 07日09時までに 北の風が強く 最大風速は 40ノット(20メートル) に達する見込み</Sentence> <Base> <jmx_eb:WindDirection type="風向" unit="8方位漢字">南西</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="30ノット">30</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="15メートル">15</jmx_eb:WindSpeed> </Base> <Becoming> <TimeModifier>07日09時までに</TimeModifier> <jmx_eb:WindDirection type="風向" unit="8方位漢字">北</jmx_eb:WindDirection> <jmx_eb:WindSpeed type="最大風速" unit="ノット" description="40ノット">40</jmx_eb:WindSpeed> <jmx_eb:WindSpeed type="最大風速" unit="m/s" description="20メートル">20</jmx_eb:WindSpeed> </Becoming> </SubArea> </WindPart> </Property> </Kind> <Area> <Name>北海道西方海上</Name> <Code>1050</Code> </Area> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Kind> <Property> <Type>濃霧</Type> <VisibilityPart> <SubArea> <Sentence>サハリン東方海上では 所々で濃い霧のため見通しが悪く 視程は 0.3海里(0.5キロ)以下 07日15時までに 次第に良くなる見込み</Sentence> <Base> <jmx_eb:Visibility type="視程" unit="海里" condition="以下" description="0.3海里以下">0.3</jmx_eb:Visibility> <jmx_eb:Visibility type="視程" unit="km" condition="以下" description="0.5キロ以下">0.5</jmx_eb:Visibility> </Base> <Becoming> <TimeModifier>07日15時までに</TimeModifier> <jmx_eb:Visibility type="視程" condition="次第に良くなる" description="次第に良くなる"/> </Becoming> </SubArea> </VisibilityPart> </Property> </Kind> <Area> <Name>サハリン東方海上</Name> <Code>1010</Code> </Area> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Kind> <Property> <Type>濃霧</Type> <VisibilityPart> <SubArea> <Sentence>網走沖では 所々で濃い霧のため見通しが悪く 視程は 0.3海里(0.5キロ)以下 07日03時までに 次第に良くなる見込み</Sentence> <Base> <jmx_eb:Visibility type="視程" unit="海里" condition="以下" description="0.3海里以下">0.3</jmx_eb:Visibility> <jmx_eb:Visibility type="視程" unit="km" condition="以下" description="0.5キロ以下">0.5</jmx_eb:Visibility> </Base> <Becoming> <TimeModifier>07日03時までに</TimeModifier> <jmx_eb:Visibility type="視程" condition="次第に良くなる" description="次第に良くなる"/> </Becoming> </SubArea> </VisibilityPart> </Property> </Kind> <Area> <Name>網走沖</Name> <Code>1030</Code> </Area> </Item> <Item> <Kind> <Name>海上濃霧警報</Name> <Code>11</Code> </Kind> <Kind> <Property> <Type>濃霧</Type> <VisibilityPart> <SubArea> <Sentence>宗谷海峡では 所々で濃い霧のため見通しが悪く 視程は 0.3海里(0.5キロ)以下 06日21時までに 次第に良くなる見込み</Sentence> <Base> <jmx_eb:Visibility type="視程" unit="海里" condition="以下" description="0.3海里以下">0.3</jmx_eb:Visibility> <jmx_eb:Visibility type="視程" unit="km" condition="以下" description="0.5キロ以下">0.5</jmx_eb:Visibility> </Base> <Becoming> <TimeModifier>06日21時までに</TimeModifier> <jmx_eb:Visibility type="視程" condition="次第に良くなる" description="次第に良くなる"/> </Becoming> </SubArea> </VisibilityPart> </Property> </Kind> <Area> <Name>宗谷海峡</Name> <Code>1040</Code> </Area> </Item> <Item> <Kind> <Name>海上着氷警報</Name> <Code>10</Code> </Kind> <Kind> <Property> <Type>着氷</Type> <IcingPart> <SubArea> <Sentence>サハリン東方海上では 07日15時までに 弱い着氷となる恐れがある</Sentence> <Becoming> <TimeModifier>07日15時までに</TimeModifier> <jmx_eb:Icing type="着氷の程度" description="弱い着氷">弱い</jmx_eb:Icing> </Becoming> </SubArea> </IcingPart> </Property> </Kind> <Area> <Name>サハリン東方海上</Name> <Code>1010</Code> </Area> </Item> <Item> <Kind> <Name>海上着氷警報</Name> <Code>10</Code> </Kind> <Kind> <Property> <Type>着氷</Type> <IcingPart> <SubArea> <Sentence>サハリン西方海上では 07日15時までに 弱い着氷となる恐れがある</Sentence> <Becoming> <TimeModifier>07日15時までに</TimeModifier> <jmx_eb:Icing type="着氷の程度" description="弱い着氷">弱い</jmx_eb:Icing> </Becoming> </SubArea> </IcingPart> </Property> </Kind> <Area> <Name>サハリン西方海上</Name> <Code>1020</Code> </Area> </Item> </Warning> <MeteorologicalInfos type="気象要因"> <MeteorologicalInfo> <DateTime>2025-11-06T15:00:00+09:00</DateTime> <Name>06日15時</Name> <Item> <Kind> <Property> <Type>概況</Type> <SynopsisPart> <jmx_eb:Synopsis type="気象要因">発達中の低 1002 北緯34度 東経148度 北東 30ノット(55キロ) 07日03時 予報円中心 北緯38度 東経155度 半径 50海里(95キロ) 07日15時 予報円中心 北緯44度 東経161度 半径 80海里(150キロ) 温暖前線が 北緯34度 東経148度 から 北緯34度 東経151度 北緯34度 東経154度 北緯33度 東経155度 にのびる 寒冷前線が 北緯34度 東経148度 から 北緯32度 東経146度 北緯31度 東経144度 北緯29度 東経142度 北緯27度 東経141度 北緯25度 東経139度 にのびる</jmx_eb:Synopsis> <jmx_eb:Synopsis type="気象要因">発達中の低 1014 北緯48度 東経138度 東 25ノット(45キロ)</jmx_eb:Synopsis> </SynopsisPart> </Property> </Kind> <Area> <Name>日本海北部及びオホーツク海南部</Name> <Code>1000</Code> </Area> </Item> </MeteorologicalInfo> </MeteorologicalInfos> </Body> </Report> |

コメント