Checkpoint CM95 PBF production code and docs for Linux migration

This commit is contained in:
kaotei
2026-09-11 18:10:56 +08:00
parent 0ca1f63320
commit b52b3447cf
116 changed files with 55495 additions and 2 deletions

View File

@@ -0,0 +1,229 @@
# NavSea CM95 接入规范
版本:`v1`
状态:首版实施规范
用途:定义将具备合法使用授权的 CM95 海图数据转换为 PBF,并直接接入现有 NavSea Full semantic style 的数据契约、实施顺序和验收门禁。
## 1. 结论
CM95 必须向 NavSea 的既有 PBF 契约靠齐;不为 CM95 重写一套海图 style,也不允许把 CM95 原始对象类别直接暴露给前端 style。
当前接入基线为:
- style:[`src/pbf/style.navsea-delivery-full-semantic-unified-20260808.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-full-semantic-unified-20260808.json)
- sprite:`http://192.168.200.184/newpec/sprite-semantic-unified-20260808/sprite`
- glyphs:`http://192.168.200.184/newpec/fonts/{fontstack}/{range}.pbf`
CM95 转换产物必须满足该 style 的 `source-layer`、字段和值域要求。满足后,新 style 只需复制基线文件并修改 `sources.navsea_delivery.tiles` 的瓦片地址。
## 2. 边界与前提
- 仅处理已获授权解码、转换、缓存和部署的 CM95 数据。
- CM95 解码器不属于本仓库交付物;本规范的输入是已经合法导出的矢量要素及其属性。
- 转换过程不得篡改海图几何、深度、净空、航标与危险物的原始业务含义。
- 所有要素必须有稳定的上游对象身份;若 CM95 未提供全局稳定 ID,必须由“数据集版本 + 原始 cell/record ID + 几何类型”生成可复现的 `source_id`。
- 第一版只追求“复用当前 style 并可审计”,不以压缩字段或全国一次性全量生产为目标。
## 3. 目标架构
```text
CM95 合法导出数据
-> CM95 解析与原始对象归档
-> CM95→NavSea 语义/渲染映射
-> NavSea 兼容要素集
-> Web Mercator MVT/PBF
-> 现有 NavSea Full semantic style
```
其中“CM95→NavSea 语义/渲染映射”是唯一允许理解 CM95 原始类别与属性差异的层。MVT 和 style 只消费 NavSea 的标准图层与字段。
## 4. 固定图层契约
第一版 PBF 的图层名称必须与当前 style 完全一致。不得随意以 CM95 对象名作为图层名。
| 业务类别 | 目标 `source-layer` |
| --- | --- |
| 海域底色、水深区 | `baseline_area`、`depth_zone_739`、`depth_zone_741` |
| 海岸、陆地与岸线 | `land_area`、`baseline_line`、`baseline_outline` |
| 等深线与测深文字 | `depth_contour`、`bathymetry_line`、`seabed_text_point` |
| 航标、灯塔、浮标、灯弧 | `navigation_marks` |
| 航行危险物 | `navigation_hazard_point`、`navigation_hazard_area`、`navigation_hazard_outline` |
| 锚泊及锚泊注意 | `anchorage_point`、`anchorage_area`、`anchorage_outline`、`anchor_caution_hazard_point`、`anchor_caution_hazard_area`、`anchor_caution_hazard_outline` |
| 渔具与渔业禁限 | `fixed_fishing_gear_area` |
| 设施、桥梁、净空 | `facility_boundary_point`、`facility_boundary_area`、`facility_boundary_outline`、`bridge_structure`、`clearance_limit_point`、`clearance_limit_line` |
| 地名和陆上设施 | `place_label_sea`、`place_label_land`、`onshore_structure_point`、`onshore_structure_line`、`onshore_structure_area` |
| 其他已由 style 消费的图层 | `pilot_station_point`、`seabed_line`、`submerged_reef_area`、`hazard_boundary_outline`、`hole_area`、`clip_outline_754` |
未能映射到上述图层的 CM95 对象不得静默丢弃:应写入工程版的 `cm95_unmapped` 隔离层并生成映射缺口报告;该隔离层不进入正式 style。
## 5. 字段契约
### 5.1 每个已交付要素必须有的字段
| 字段 | 要求 |
| --- | --- |
| `fid` | NavSea 稳定、可复现的对象标识;不能使用每次构建都会变化的临时序号。 |
| `canonical_family` | NavSea 大类语义。 |
| `canonical_object_type` | NavSea 细粒度对象类型。 |
| `render_layer` | 与实际 `source-layer` 相同的目标渲染层。 |
| `chart_render_type` | `fill`、`line`、`symbol`、`label` 或 `none`。 |
| `chart_priority` | 绘制/碰撞优先级。 |
| `source_id` | 可回查 CM95 上游对象的稳定标识;工程版必留,交付版建议保留。 |
| `source_dataset_id` | CM95 数据集、cell 或版本标识;工程版必留。 |
### 5.2 当前 style 的直接渲染字段
按对象类型填写以下字段,未适用字段可缺省,但不得以伪造值替代:
| 对象类别 | 必要或高优先级字段 |
| --- | --- |
| 面与水深区 | `chart_fill_style`、`chart_fill_pattern` |
| 线 | `chart_line_color`、`chart_line_width`、`chart_line_pattern` |
| 图标 | `chart_icon_image`、`chart_symbol_code`、`class_code`、`display_code`、`shape_class_code` |
| 文字 | `chart_label_text`、`chart_label_subtext`、`chart_text_style`、`chart_text_color`、`chart_label_position_code` |
| 灯标 | `light_color_code`、`chart_label_subtext`;有弧段时还需 `arc_id` 与可追溯的原始弧段编码。 |
`chart_icon_image`、`chart_fill_pattern` 和 `arc_id` 的取值必须是当前 semantic sprite 中真实存在的键。不得写入旧 `symbol-daytime-*`、`fill-daytime-*` 或未经 sprite 审计的新键。
### 5.3 CM95 原始属性保留
CM95 的原始属性不得直接成为 style 的长期依赖,但工程版必须保留以下可追溯信息:
- CM95 对象类别/OBJL;
- 原始对象 ID、cell/数据集 ID、更新时间或版本;
- 原始属性全集或其不可逆裁剪前的外部 trace;
- 原始几何类型;
- 映射规则 ID 与映射版本。
交付版可裁掉详细 trace,但必须能凭 `fid` 在工程索引中回查到上述信息。
## 6. CM95 映射实施方式
建立一个版本化映射表,例如 `tasks/pbf/mappings/cm95_to_navsea_v1.yaml`。每条规则至少包含:
- `cm95_object_class`:CM95 原始对象类别;
- `geometry_type`:点、线、面;
- `condition`:属性条件;
- `target_source_layer`:本规范第 4 节中的目标层;
- `canonical_family`、`canonical_object_type`;
- `style_fields`:需物化的 `chart_*`、灯标、文字或数值字段;
- `rule_id`、`mapping_version`;
- `safety_class`:`hard_gate`、`important` 或 `normal`。
映射优先级如下:
1. 航标、灯火、浮标、灯弧;
2. 暗礁、沉船、障碍物、浅水、干出与露出对象;
3. 水深区、等深线、测深与净空;
4. 海陆边界、陆地、航道、锚地、限制区、渔具;
5. 设施、地名和一般说明。
同一 CM95 类别因属性不同而表现不同,必须拆成多条显式规则;不能只按对象类别做一对一映射。
## 7. PBF 生成规则
- 统一投影为 EPSG:3857,使用 XYZ `z/x/y` 切片。
- MVT extent 固定为 `4096`,同一目标图层内保持一致。
- 首版目标 zoom 为 `0–12`;小范围试产可先产出覆盖 AOI 的 `z8–12`。
- 面、线裁切须带足够 buffer,避免瓦片边缘断裂;点不得因边界判断被重复删除。
- 保持原始几何类型;不得将面危险物降级为点,或把线界线误转为面。
- 同一 `fid` 在不同 zoom/tile 的实例可重复出现,但其身份和核心语义必须一致。
- 构建时输出工程版 PBF、交付版 PBF、映射缺口 JSON/Markdown 和 `fid -> source_id` 审计索引。
## 8. Style 接入方式
以当前基线 style 复制一个 CM95 部署版本。首版只允许修改以下内容:
```json
{
"name": "NavSea CM95 <区域> <版本>",
"sources": {
"navsea_delivery": {
"tiles": ["https://<host>/pbf-cm95-<区域>-<版本>/{z}/{x}/{y}.pbf"]
}
}
}
```
保持不变:
- 全部 layer ID、顺序、filter 和 paint/layout;
- semantic sprite URL;
- glyph URL;
- 外部 tide 与底图 source。
若某一类 CM95 数据无法命中现有 style,优先补充映射字段或 sprite 映射;只有确认现有 style 无法表达且完成专项审计后,才允许新增 style layer。
## 9. 分阶段交付
### 阶段 A:单 AOI 可视化样本
- 选择一个含陆地、水深、航标和危险物的港口或近岸 AOI。
- 导出 CM95 原始对象清单及 `source_id`。
- 完成第 6 节映射表的最小覆盖。
- 生成 z8–12 PBF,使用只改 tile URL 的 style 打开。
通过条件:底图、水深、等深线、陆地、主要航标和危险物均可显示,且无大面积空白或错误覆盖。
### 阶段 B:安全对象闭环
- 补齐所有 `hard_gate` 对象的分类、图层和符号字段。
- 灯火必须同时验证灯色、略记和灯弧(如原始数据提供)。
- 危险物必须验证水上/水下/露出/干出语义不会画反。
通过条件:对象保全审计的安全对象缺失数为 `0`,关键图标/文字/symbol sprite 缺失数为 `0`。
### 阶段 C:区域扩展与发布
- 扩展至完整目标海域及 z0–12。
- 收敛未映射对象;剩余对象须有明确的隔离理由和风险结论。
- 生成正式交付版及可回查工程索引。
## 10. 必须执行的审计顺序
按项目正式口径执行,不能以视觉相似替代对象保全:
1. **对象保全审计**:以 `source_id + source_dataset_id + geometry_type` 回对 CM95 原始导出与 PBF;检查缺失、错误重分层、错误合并、身份丢失。
2. **渲染审计**:扫描 PBF 字段、style 命中和 sprite 资源;检查关键对象是否获得有效 fill、line、icon、text。
3. **AOI 视觉审计**:在固定中心点和 zoom 检查叠压、边缘裁切、标签、海陆关系与安全感知。
CM95 没有“旧 NavSea PBF”可作为对象基准时,CM95 原始导出数据就是第一层审计的基准;不可跳过这一层。
## 11. 硬门禁
以下任一项不通过,CM95 PBF 不得切换到正式 URL:
- `hard_gate` 对象存在缺失、身份不可回查或错误图层;
- `chart_icon_image`、`chart_fill_pattern`、`arc_id` 引用不存在的 sprite 键;
- 深度、净空、危险物或灯火发生单位错误、正负号错误或水上/水下语义反转;
- PBF 投影、extent、坐标轴或 tile y 方向错误;
- style 实际加载的 tile URL 不是候选 CM95 PBF;
- 映射缺口被静默丢弃;
- 未完成针对目标 AOI 的人工视觉复核。
## 12. 首次实施的输入与产出
开始实施前需要提供:
- 一个合法导出的 CM95 AOI 样本;
- 导出格式和字段/对象类别字典;
- 数据集版本、坐标参考和深度/高度单位说明;
- 目标海域、目标 zoom、部署 PBF URL;
- 至少一个包含航标、危险物、水深区和陆地的验收 AOI。
首次实施完成时必须交付:
- `cm95_to_navsea_v1.yaml` 映射表;
- CM95→NavSea 转换脚本;
- 工程版与交付版 PBF;
- 映射缺口报告、对象保全报告、sprite 闭合报告和 AOI 审计报告;
- 仅替换瓦片 URL 的 CM95 style 文件。
## 13. 与既有文档的关系
- 本规范定义 CM95 作为新上游数据源时如何接入;
- [NavSea PBF Schema v2](tasks/pbf/NavSea_PBF_schema_v2.md) 定义通用 PBF 字段方向;
- [NavSea Tile Generation Pipeline v2](tasks/pbf/NavSea_tile_generation_pipeline_v2.md) 定义既有原始 PBF→交付 PBF 流程;
- [NavSea 交付前审计规范](NavSea_Delivery_Preflight_Audit_Spec.md) 定义正式交付审计门禁。
出现冲突时,以安全对象不丢失、可回查和当前 style 实际字段契约为最高优先级。

View File

@@ -0,0 +1,62 @@
# CM95 PBF Production v1.4.7 ROOT OVERLAY
# SHA-256 manifest; this manifest does not hash itself.
40ab19e0b75714e756b8079744121a27b404175abd7c595fa49cb500046d751a config/mappings/cm95_gap_disposition_japan_dataset_1_v1.yaml
2df00c19404adf3510443c615748bff5ecc2789c16da4ea8c2cfd42f3ccc717d config/mappings/cm95_gap_disposition_v1.yaml
3947a326e8e805d7eab357463380b2f303ba75ebe08dce4e4b708bc61416b575 config/mappings/cm95_to_navsea_v1.yaml
f3036ddb3b89a33577bf9d0ae16ca71aaa3726fd83bb365810ab48abce8381eb config/pbf/cm95_production_v1.yaml
8db466b99466a0f15079d6a644049bb30e3a31dca5f6f545a571da8f5d64d4c5 config/pbf/cm95_tile_policy_japan_full_detail_v1.yaml
d56396625f9ef25de274f05222156f06d4b39a91a3d9809bc30b1218bd601f7f config/pbf/cm95_tile_policy_v1.yaml
37aba6d8a12a4500e6599309430f97776e64aeda867c45728d984dcb6fc3ff1a config/pbf/cm95_v1_4_5_nonrenderable_label_tiles.txt
3e89bc20e2465592a2dc70509649e159a958b254452dd26e7d3bf2e8e74e7fb9 config/sprite/semantic-sprite-20260808.json
c11aa7b9410171df8b59f5175885ce0ebd2480706f3699eb7c28b1f4d351aaf4 config/style/style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json
207b2e4ea7eab1cafd549a894c36195fc060516307c2d73b05b52aad650eb3e2 docs/25个新增映射缺口分类说明_v1.md
f7e2f3a6f7ceb7dccd4cc3595e556d296d83300cfb48764b51b80633cb650013 docs/CM95_21张PBF对照审计_v1.md
7a24a5b33aac427f7e2be887ada48b346db7418db86d3087899f630582930e47 docs/CM95_PBF_Pilot生成器设计_v1.md
bba1fadc7d218b89531611afc25bf8c587667947af5bda024185d13dcd3850cb docs/CM95_PBF_v1.4.7_导航名称冲突审计式省略_v1.md
cf75fad5361fd2e502bdeb1a7114631549a36f4fa3f7cc5fd854a672a8c3014f docs/CM95_PBF_v1_2变更说明.md
d9fa32f28b7b4c325f3e17e05798f2b971b132274cfb1e0aff546d838ef78bc8 docs/CM95_PBF_v1_3变更说明.md
b6ba3051caecf9746c5ae091b32c7e8924ad0a6038c8160b61ea6c6ae8610441 docs/CM95_PBF_v1_4_3离线自检报告_v1.md
d6be555db71855a1decc88bb8164c4dd556371880c3818ced2388b415fc7b6fc docs/CM95_PBF生产化阶段_v1_4.md
c545546d76a291f30384b8a20bd5e8fb03a8fea214fac3bee11504c1e6dfadd1 docs/CM95_PBF生产化阶段_v1_4_1.md
e8a6dc017ed7c7a92fd67afed5a014a6860534de6745a5c404bd5541e92e7d1b docs/CM95_PBF生产化阶段_v1_4_2.md
e31ba6dfb53ccc9d69d1108bb8734c101052bdc5b206b4a4b0d7d9eada41212b docs/CM95_PBF生产化阶段_v1_4_3.md
cd6ad3f2e1e6e00dbd230fcad48013330500a03556ae6b5e5bda4577bc8705d4 docs/CM95_PBF生产化阶段_v1_4_4.md
1614b56f51c6c4f2546dfd2b8b02c527ce24bcc5a0877544b925344841da9e56 docs/CM95_PBF生产化阶段_v1_4_5.md
76ab40bfbb90f1a14e8387e16a8ab4942918123eeaf93c0224dac5af796308c4 docs/CM95_PBF生产化阶段_v1_4_6.md
6509ee4fdcd057e2e0a959c92ee3768cd672dc27f570279ee2e0267202da114b docs/CM95_助航名称规则冻结_v1.md
4fec6374e3ec462946cc6fb6cea04f69513c45066eade42ecbb89c7158e7932f docs/PBF03_离线自检报告_v1.md
8daaa1f6e373e1df20c553208e5657a87fcc2f8b291d2164d2240d133bc07252 docs/PBF03_离线自检报告_v1_1.md
69f821a70d2bfb8bdbbd53b5a9f20e591b54a3aaabbbab1d6a7f59d526629eba docs/cm95_global_mapping_gap_closure_audit_v2.json
ebadb6ea5cf3365a22c06ee5c8806e43ef23c1a8358ed9cfba4aae28aa5876ab docs/cm95_mapping_contract_check_v1.json
e527cfe189982ae914bb7f920d7abf8b06c358b132359952e5c9f38be48124f7 docs/cm95_mapping_contract_check_v1_1.json
b22aab3cc1d57f77195f367841ce1f585b8ce0300ee1c11275b3a100a9cba1ab docs/cm95_mapping_contract_check_v1_4_3.json
836fde71f3e012b0613ab8e9069075a420a8b186c8f13559ab6a925fd0536279 pyproject.toml
a460a58863c910fa7593ae36768bf061ed51f956080e9b11497485558d86a6b2 requirements.txt
20080eea2aaa7a672f93143fea66944954e578a81e468e99c7c7de6b995fad63 scripts/cm95_japan_continue_from_step8.ps1
415b8ffd7d27d81dad461368cfc51c2b2a119cc64f8a44a32b7b3d8d21731c93 scripts/cm95_japan_v1_4_6_continue.ps1
0819b124050c7c8262f2da081cf9b2db719a478dd9047b79058c8c8a7b24cd2b scripts/cm95_japan_v1_4_7_finalize_existing.ps1
2ba6a657e19ed96cb7581fd9252a9f36b2c87bf3263cc5cf1a9e3b5701caf68b src/cm95pbf/__init__.py
e0e2bc0bcdf4e52b93cf5af4dbad4cdd4245d6d7b5d6667dfd2181683780b51f src/cm95pbf/builder.py
f9b0f20671aa0860cbfebb0eab83631c26fa02b92b29f863746d5a2f9fdf02c4 src/cm95pbf/cli.py
9ff689390d57950094a97d19ba1d1042640aa07f511198b81f0c8a67c9c32a7b src/cm95pbf/identity.py
1b60945c08766d57c8c50d34979e665c3a63264e758c85f987086f5d3f550500 src/cm95pbf/mapping.py
acf22401be75023d4f01b56c4b4f418310f67687553b4293eda486e89340fe13 src/cm95pbf/policy.py
02befc10a9014ada2aba86054b9e79217dc5d1053da5b4a0ac24b67f06015b62 src/cm95pbf/production.py
fa96143732bf949e28d560a582f5b0a19f9f0a816acd8096b27ce0b0e0554846 src/cm95pbf/release.py
b775aea2807049570f33d493ba8a403ec88e9f1f8c4d487d39d6f6e9b8e38ad2 src/cm95pbf/style_contract.py
18ef07d97145d6030dee0a6e9bac689061b7a4c5ea23a84e40b0231f3699e333 tools/cm95_global_mapping_gap_audit_v1.py
a604be1eafa2d5a5c58897a1ceabf41bf5987fbbb445f07c70e02d90d55bcd77 tools/cm95_global_mapping_gap_closure_audit_v2.py
0fa02b0b2e8393a5481eb5ee7e6762bdf0651a2f7d74a44bc66b5b651a61c058 tools/cm95_mapping_contract_check_v1.py
42a430db375a97361113eedc9ad902a074d131845c820db8e3f14b0aa8ee4207 tools/cm95_nav_aid_relation_audit_v1.py
30bd4f1480c64279a54b52aa82ca479cb145fadbddecb10e6fb9a203852ba8d0 tools/cm95_nav_name_conflict_audit_v1.py
90d5078953a74ec458d6cb356174436a840cd99f4cc721015b4c23d49a0e81a7 tools/cm95_pbf_build_reports_audit_v1.py
7e77e496e90af634640a457a09a4ba9cf58bbeb628fb5f63ce90e9b648897b00 tools/cm95_pbf_output_audit_v1.py
66f29ee2c1154fc7fadb610462f0b03e7efc0bb3498ffea36022e5cccdf29fb6 tools/cm95_pbf_style_contract_audit_v2.py
d1d7877e31b743c655bdbafce845a7b63aca69c14bf5efb706ef7b851acd2c33 tools/cm95_production_failure_audit_v1.py
b938f37f1a9b8907d0717c97810b3e8f5332cb0a575f2d5baa63312bf272626d tools/cm95_production_plan_audit_v1.py
8899a9dfad6039f07c39281fb4b4211e0520743d4c2d01adee523bd9fdb12407 tools/cm95_v1_4_5_preflight.py
b53250bec660bc39265d8de9dc3611a0673539bdb674e2f02964f1d6cf1e9a45 tools/cm95_v1_4_6_preflight.py
8f6f8dae52f765cae2148b5a2653d5d7eaa25ae75e2c10a29dbfa55cf1cae63b tools/cm95_v1_4_6_query_equivalence.py
252d6edc509dff83c811b2c0d0643d8b97cf4712f247779f5d0ac2a07b05170f tools/cm95_v1_4_7_preflight.py
8c91f52e1eaf438415b325f9f97de59107cb52c6dbe57c10eab580c56ed556b8 使用说明.txt
5888c482f5cd6d2980e46ecc936f9d1cfb1626b30474a18d0c2e37b990b24472 替换与执行说明.md

35
README.txt Normal file
View File

@@ -0,0 +1,35 @@
CM95 Japan Full Rebuild Pipeline v2
替换:
D:\React\cm93-mysql-importer-starter\scripts\cm95_japan_full_rebuild_pipeline.ps1
执行:
cd D:\React\cm93-mysql-importer-starter
powershell -ExecutionPolicy Bypass `
-File .\scripts\cm95_japan_full_rebuild_pipeline.ps1
默认:
ProjectRoot = D:\React\cm93-mysql-importer-starter
SourceRoot = D:\Ship\CM93V2\CM93JAPAN
ExpectedCells = 1492
Workers = 4
破坏性操作前要求输入:
DELETE <CM93_DB_NAME>
跳过确认:
powershell -ExecutionPolicy Bypass `
-File .\scripts\cm95_japan_full_rebuild_pipeline.ps1 `
-Force
v2 修复:
- 不再使用 PowerShell 把多行 Python 通过 -c 参数传给 python.exe;
- 所有 Python helper 使用临时 .py 文件;
- audit gate 对齐当前 cm93db JSON;
- geometry validity 保持 informational;
- status-production 多行 JSON 正确解析;
- finalizer 使用当前 Dataset 专属 semantic backlog,不复用旧 Dataset 1 的静态 feature-row 数字。
如果 mapping gap closure FAIL:
pipeline 会在生成 PBF 前停止。

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
{
"version": "v1.0",
"generated_at": "2026-09-03T08:06:34",
"database": "cm93_chart",
"dataset_id": 1,
"read_only": true,
"aoi": {
"tile": {
"z": 10,
"x": 881,
"y": 410
},
"bbox_wgs84": {
"min_lon": 129.7265625,
"min_lat": 33.4314413355753,
"max_lon": 130.078125,
"max_lat": 33.7243396617476
},
"known_navsea_samples_inside": [
"z10/881/410",
"z11/1762/820",
"z12/3525/1643"
]
},
"dataset": {
"id": 1,
"source_type": "CM93",
"name": "CM93JAPAN",
"source_root": "D:\\Ship\\CM93V2\\CM93JAPAN",
"parser_version": "0.2.0",
"normalized_srid": 4326
},
"warnings": [],
"counts": {
"aoi_cells": 0,
"aoi_spatial_features": 0,
"object_class_geometry_groups": 0,
"attribute_group_count": 0,
"sample_feature_count": 0,
"related_sample_count": 0
},
"geometry_counts": [],
"object_classes": [],
"next_step": "Use AOI_对象映射准备表_v1.csv + 属性值域汇总_v1.csv to author cm95_to_navsea_v1.yaml."
}

View File

@@ -0,0 +1,18 @@
CM95 唐津 AOI → NavSea PBF 映射输入审计 v1
====================================================================================
Dataset ID : 1
Tile : z10/881/410
BBox WGS84 : 129.7265625000,33.4314413356 → 130.0781250000,33.7243396617
AOI cells : 0
AOI spatial features : 0
Object class/geom groups : 0
Attribute groups : 0
Feature samples : 0
Related samples : 0
Geometry counts:
NEXT:
上传本脚本生成的 ZIP。
下一步直接生成 cm95_to_navsea_v1.yaml 初版并标注 UNMAPPED / hard_gate 缺口。

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,304 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
CM95 唐津 AOI Presence Diagnostic v2
只读诊断:
1) chart_cell bbox 是否覆盖唐津 z10/881/410;
2) chart_feature bbox 是否命中;
3) 实际 Point/Line/Area geometry 是否通过 MBRIntersects 命中;
4) Sounding point 是否命中;
5) 输出离唐津中心最近的 Cell / Feature,帮助判断 Dataset 1 是否根本没有唐津细节数据。
不修改数据库。
"""
from __future__ import annotations
import argparse
import getpass
import json
import math
from pathlib import Path
from datetime import datetime
import pymysql
from pymysql.cursors import DictCursor
LON_MIN = 129.7265625
LAT_MIN = 33.4314413355753
LON_MAX = 130.078125
LAT_MAX = 33.7243396617476
CENTER_LON = (LON_MIN + LON_MAX) / 2
CENTER_LAT = (LAT_MIN + LAT_MAX) / 2
def args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password")
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument("--output", default="cm95_karatsu_presence_diagnostic_v2.json")
return p.parse_args()
def fetch(cur, sql, params=()):
cur.execute(sql, params)
return list(cur.fetchall())
def scalar(cur, sql, params=()):
cur.execute(sql, params)
r = cur.fetchone()
return None if not r else next(iter(r.values()))
def main():
a = args()
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
conn = pymysql.connect(
host=a.host, port=a.port, user=a.user, password=a.password,
database=a.database, charset="utf8mb4",
cursorclass=DictCursor, autocommit=False,
connect_timeout=20, read_timeout=900,
)
report = {
"version": "v2",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"target": {
"tile": "z10/881/410",
"bbox": [LON_MIN, LAT_MIN, LON_MAX, LAT_MAX],
"center": [CENTER_LON, CENTER_LAT],
},
"read_only": True,
}
poly_wkt = (
f"POLYGON(({LON_MIN} {LAT_MIN},"
f"{LON_MAX} {LAT_MIN},"
f"{LON_MAX} {LAT_MAX},"
f"{LON_MIN} {LAT_MAX},"
f"{LON_MIN} {LAT_MIN}))"
)
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
report["dataset"] = fetch(cur, """
SELECT id,name,source_type,source_root,parser_version,normalized_srid
FROM chart_dataset WHERE id=%s
""", (a.dataset_id,))
report["global_feature_bbox"] = fetch(cur, """
SELECT
MIN(bbox_min_lon) min_lon,
MIN(bbox_min_lat) min_lat,
MAX(bbox_max_lon) max_lon,
MAX(bbox_max_lat) max_lat,
SUM(bbox_min_lon IS NOT NULL) bbox_rows,
COUNT(*) total_rows
FROM chart_feature
WHERE dataset_id=%s
""", (a.dataset_id,))
report["global_cell_bbox"] = fetch(cur, """
SELECT
MIN(bbox_min_lon) min_lon,
MIN(bbox_min_lat) min_lat,
MAX(bbox_max_lon) max_lon,
MAX(bbox_max_lat) max_lat,
SUM(bbox_min_lon IS NOT NULL) bbox_rows,
COUNT(*) total_rows
FROM chart_cell
WHERE dataset_id=%s
""", (a.dataset_id,))
bbox_params = (
a.dataset_id,
LON_MIN, LON_MAX, LAT_MIN, LAT_MAX,
)
report["cell_bbox_overlap"] = fetch(cur, """
SELECT id,source_relative_path,scale_code,native_scale,
bbox_min_lon,bbox_min_lat,bbox_max_lon,bbox_max_lat,
feature_count
FROM chart_cell
WHERE dataset_id=%s
AND bbox_max_lon >= %s
AND bbox_min_lon <= %s
AND bbox_max_lat >= %s
AND bbox_min_lat <= %s
ORDER BY native_scale,source_relative_path
""", bbox_params)
report["feature_bbox_count"] = scalar(cur, """
SELECT COUNT(*)
FROM chart_feature
WHERE dataset_id=%s
AND bbox_max_lon >= %s
AND bbox_min_lon <= %s
AND bbox_max_lat >= %s
AND bbox_min_lat <= %s
""", bbox_params)
# Direct actual geometry checks. These bypass chart_feature bbox metadata.
direct = {}
for kind, table in [
("point", "chart_point_geometry"),
("line", "chart_line_geometry"),
("area", "chart_area_geometry"),
]:
try:
direct[kind] = scalar(cur, f"""
SELECT COUNT(*)
FROM {table} g
JOIN chart_feature f ON f.id=g.feature_id
WHERE f.dataset_id=%s
AND MBRIntersects(
g.geom,
ST_GeomFromText(%s,4326)
)
""", (a.dataset_id, poly_wkt))
except Exception as e:
direct[kind] = {"error": str(e)}
report["direct_geometry_mbr_counts"] = direct
try:
report["sounding_bbox_count"] = scalar(cur, """
SELECT COUNT(*)
FROM chart_sounding_point s
JOIN chart_feature f ON f.id=s.feature_id
WHERE f.dataset_id=%s
AND ST_X(s.geom) BETWEEN %s AND %s
AND ST_Y(s.geom) BETWEEN %s AND %s
""", (
a.dataset_id,
LON_MIN, LON_MAX, LAT_MIN, LAT_MAX,
))
except Exception as e:
report["sounding_bbox_count"] = {"error": str(e)}
# Nearest cell by bbox center, excluding pathological world-scale cells when possible.
report["nearest_cells"] = fetch(cur, """
SELECT id,source_relative_path,scale_code,native_scale,
bbox_min_lon,bbox_min_lat,bbox_max_lon,bbox_max_lat,
feature_count,
SQRT(
POW(((bbox_min_lon+bbox_max_lon)/2)-%s,2) +
POW(((bbox_min_lat+bbox_max_lat)/2)-%s,2)
) AS center_distance_deg
FROM chart_cell
WHERE dataset_id=%s
AND bbox_min_lon IS NOT NULL
AND bbox_min_lat IS NOT NULL
AND bbox_max_lon IS NOT NULL
AND bbox_max_lat IS NOT NULL
AND (bbox_max_lon-bbox_min_lon) < 20
AND (bbox_max_lat-bbox_min_lat) < 20
ORDER BY center_distance_deg ASC
LIMIT 30
""", (CENTER_LON, CENTER_LAT, a.dataset_id))
report["nearest_features"] = fetch(cur, """
SELECT f.id,f.cell_id,c.source_relative_path,
f.source_record_index,f.object_class_id,f.object_class,
f.geometry_type,f.scale_code,f.native_scale,
f.bbox_min_lon,f.bbox_min_lat,f.bbox_max_lon,f.bbox_max_lat,
SQRT(
POW(((f.bbox_min_lon+f.bbox_max_lon)/2)-%s,2) +
POW(((f.bbox_min_lat+f.bbox_max_lat)/2)-%s,2)
) AS center_distance_deg
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.bbox_min_lon IS NOT NULL
AND f.bbox_min_lat IS NOT NULL
AND f.bbox_max_lon IS NOT NULL
AND f.bbox_max_lat IS NOT NULL
ORDER BY center_distance_deg ASC
LIMIT 50
""", (CENTER_LON, CENTER_LAT, a.dataset_id))
# Coarse 2-degree spatial occupancy by feature bbox center.
report["coarse_feature_grid"] = fetch(cur, """
SELECT
FLOOR(((bbox_min_lon+bbox_max_lon)/2)/2)*2 AS lon_bin,
FLOOR(((bbox_min_lat+bbox_max_lat)/2)/2)*2 AS lat_bin,
COUNT(*) AS feature_count
FROM chart_feature
WHERE dataset_id=%s
AND bbox_min_lon IS NOT NULL
AND bbox_min_lat IS NOT NULL
AND bbox_max_lon IS NOT NULL
AND bbox_max_lat IS NOT NULL
AND ((bbox_min_lon+bbox_max_lon)/2) BETWEEN 120 AND 160
AND ((bbox_min_lat+bbox_max_lat)/2) BETWEEN 20 AND 50
GROUP BY lon_bin,lat_bin
ORDER BY lat_bin,lon_bin
""", (a.dataset_id,))
conn.rollback()
finally:
conn.close()
# Derive diagnosis.
fcnt = report.get("feature_bbox_count")
d = report.get("direct_geometry_mbr_counts", {})
direct_sum = 0
direct_errors = []
for k, v in d.items():
if isinstance(v, int):
direct_sum += v
else:
direct_errors.append((k, v))
if isinstance(fcnt, int) and fcnt > 0:
diagnosis = "AOI_PRESENT_BY_FEATURE_BBOX"
elif direct_sum > 0:
diagnosis = "AOI_PRESENT_IN_GEOMETRY_BUT_FEATURE_BBOX_QUERY_FAILED"
else:
diagnosis = "NO_CM95_GEOMETRY_FOUND_IN_KARATSU_AOI"
report["diagnosis"] = diagnosis
report["direct_geometry_total"] = direct_sum
report["direct_geometry_errors"] = direct_errors
out = Path(a.output).resolve()
out.write_text(json.dumps(report, ensure_ascii=False, indent=2, default=str), encoding="utf-8")
print("CM95 唐津 AOI Presence Diagnostic v2")
print("=" * 72)
print("Target bbox :", [LON_MIN, LAT_MIN, LON_MAX, LAT_MAX])
print("Cell bbox overlap :", len(report["cell_bbox_overlap"]))
print("Feature bbox count:", report["feature_bbox_count"])
print("Direct geometry :", report["direct_geometry_mbr_counts"])
print("Soundings :", report["sounding_bbox_count"])
print("Diagnosis :", diagnosis)
print("")
print("Nearest cells:")
for r in report["nearest_cells"][:10]:
print(
f" {r['source_relative_path']} scale={r['native_scale']} "
f"bbox=({r['bbox_min_lon']},{r['bbox_min_lat']},"
f"{r['bbox_max_lon']},{r['bbox_max_lat']}) "
f"dist={float(r['center_distance_deg']):.3f}°"
)
print("")
print("Output:", out)
print("把 JSON 上传给 ChatGPT。")
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
CM95 / CM93 助航 relation20 全 AOI 审计 v1
============================================================================
NAV point rows : 233
Relation groups : 93
Rows without relation20 : 46
Coordinate conflict groups : 0
LIGHTS total : 96
LIGHTS with relation20 : 94
LIGHTS mergeable : 94
LIGHTS relation no base : 0
LIGHTS standalone required : 2
DECISION : PASS_RELATION20_PRIMARY_KEY

View File

@@ -0,0 +1,94 @@
cell_id,relation20,member_count,classes,has_light,has_base_component,base_classes,max_coord_spread_deg,coord_ok,members
12,2028,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 329223, ""source_record_index"": 1400, ""object_class"": ""LIGHTS"", ""native_scale"": 1000000, ""lon"": 141.57442375474542, ""lat"": 40.53965048898594, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 57, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 8, ""VALNMR"": 19, ""_cm93_relation20_raw"": 2028}}, {""feature_id"": 329025, ""source_record_index"": 1202, ""object_class"": ""TOWERS"", ""native_scale"": 1000000, ""lon"": 141.57442375474542, ""lat"": 40.53965048898594, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6620"", ""VERLEN"": 23, ""_cm93_relation20_raw"": 2028}}]"
12,2039,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 329077, ""source_record_index"": 1254, ""object_class"": ""BCNSPP"", ""native_scale"": 1000000, ""lon"": 141.47157794882685, ""lat"": 40.54722276035132, ""attributes"": {""CATSPM"": 27, ""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6625"", ""VERLEN"": 43, ""_cm93_relation20_raw"": 2039}}, {""feature_id"": 329240, ""source_record_index"": 1417, ""object_class"": ""LIGHTS"", ""native_scale"": 1000000, ""lon"": 141.47157794882685, ""lat"": 40.54722276035132, ""attributes"": {""CATLIT"": 5, ""COLOUR"": [1, 4], ""HEIGHT"": 79, ""LITCHR"": 19, ""SIGGRP"": ""(1)"", ""SIGPER"": 10, ""_cm93_relation20_raw"": 2039}}]"
12,2041,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 329081, ""source_record_index"": 1258, ""object_class"": ""BCNSPP"", ""native_scale"": 1000000, ""lon"": 141.35805082775352, ""lat"": 40.68748385272822, ""attributes"": {""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6626"", ""_cm93_relation20_raw"": 2041}}, {""feature_id"": 329190, ""source_record_index"": 1367, ""object_class"": ""LIGHTS"", ""native_scale"": 1000000, ""lon"": 141.35805082775352, ""lat"": 40.68748385272822, ""attributes"": {""CATLIT"": 5, ""COLOUR"": [1, 1, 4], ""HEIGHT"": 69, ""INFORM"": ""The white light can be apparent on 8M"", ""LITCHR"": 19, ""SIGGRP"": ""(1)"", ""SIGPER"": 10, ""VALNMR"": 6, ""_cm93_relation20_raw"": 2041}}]"
40,6486,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360413, ""source_record_index"": 4741, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.53481130881366, ""lat"": 40.56513638820441, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 7, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 5, ""_cm93_relation20_raw"": 6486}}, {""feature_id"": 359972, ""source_record_index"": 4300, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.53481130881366, ""lat"": 40.56513638820441, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6624.86"", ""VERLEN"": 5, ""_cm93_relation20_raw"": 6486}}]"
40,6501,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360453, ""source_record_index"": 4781, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.43965605140164, ""lat"": 40.68046315791786, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 7, ""_cm93_relation20_raw"": 6501}}, {""feature_id"": 359997, ""source_record_index"": 4325, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.43965605140164, ""lat"": 40.68046315791786, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6625.7"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 6501}}]"
40,6510,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360419, ""source_record_index"": 4747, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.6269147619469, ""lat"": 40.49949414054503, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 8, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 3, ""_cm93_relation20_raw"": 6510}}, {""feature_id"": 359963, ""source_record_index"": 4291, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.6269147619469, ""lat"": 40.49949414054503, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6619.5"", ""VERLEN"": 5, ""_cm93_relation20_raw"": 6510}}]"
40,6521,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360514, ""source_record_index"": 4842, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.5676487228532, ""lat"": 40.541909757522724, ""attributes"": {""CATLIT"": 8, ""COLOUR"": [1], ""HEIGHT"": 22, ""INFORM"": ""Illuminates Hinode Iwa 430m NNW"", ""LITCHR"": 1, ""_cm93_relation20_raw"": 6521}}, {""feature_id"": 359918, ""source_record_index"": 4246, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.5676487228532, ""lat"": 40.541909757522724, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6621"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 6521}}]"
40,6528,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360449, ""source_record_index"": 4777, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.67305804264188, ""lat"": 40.454613089799984, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 11, ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""VALNMR"": 4, ""_cm93_relation20_raw"": 6528}}, {""feature_id"": 359976, ""source_record_index"": 4304, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.67305804264188, ""lat"": 40.454613089799984, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6618.4"", ""VERLEN"": 6, ""_cm93_relation20_raw"": 6528}}]"
40,6548,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360502, ""source_record_index"": 4830, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.53481130881366, ""lat"": 40.56201499793302, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 16, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 6, ""_cm93_relation20_raw"": 6548}}, {""feature_id"": 360036, ""source_record_index"": 4364, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.53481130881366, ""lat"": 40.56201499793302, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6624.85"", ""VERLEN"": 16, ""_cm93_relation20_raw"": 6548}}]"
40,6558,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360270, ""source_record_index"": 4598, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.51424214797476, ""lat"": 40.55215044794532, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 14, ""INFORM"": ""2 fl in 3s"", ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 4, ""_cm93_relation20_raw"": 6558}}, {""feature_id"": 359931, ""source_record_index"": 4259, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.51424214797476, ""lat"": 40.55215044794532, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6625.5"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 6558}}]"
40,6567,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 360291, ""source_record_index"": 4619, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.5765599913472, ""lat"": 40.53922443934611, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 57, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 8, ""VALNMR"": 19, ""_cm93_relation20_raw"": 6567}}, {""feature_id"": 359946, ""source_record_index"": 4274, ""object_class"": ""TOWERS"", ""native_scale"": 200000, ""lon"": 141.5765599913472, ""lat"": 40.53922443934611, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6620"", ""VERLEN"": 23, ""_cm93_relation20_raw"": 6567}}]"
40,6602,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 360111, ""source_record_index"": 4439, ""object_class"": ""BCNLAT"", ""native_scale"": 200000, ""lon"": 141.52785319505807, ""lat"": 40.55864373294613, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Concrete"", ""SORIND"": ""GB,UKHO,graph,LL M-6624.8"", ""VERLEN"": 16, ""_cm93_relation20_raw"": 6602}}, {""feature_id"": 360409, ""source_record_index"": 4737, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.52785319505807, ""lat"": 40.55864373294613, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 17, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 5, ""_cm93_relation20_raw"": 6602}}]"
40,6620,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 360212, ""source_record_index"": 4540, ""object_class"": ""BCNSPP"", ""native_scale"": 200000, ""lon"": 141.3592715266989, ""lat"": 40.68775404209214, ""attributes"": {""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6626"", ""_cm93_relation20_raw"": 6620}}, {""feature_id"": 360256, ""source_record_index"": 4584, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.3592715266989, ""lat"": 40.68775404209214, ""attributes"": {""CATLIT"": 5, ""COLOUR"": [1, 1, 4], ""HEIGHT"": 69, ""INFORM"": ""The white light can be apparent on 8M"", ""LITCHR"": 19, ""SIGGRP"": ""(1)"", ""SIGPER"": 10, ""VALNMR"": 6, ""_cm93_relation20_raw"": 6620}}]"
40,6632,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 360094, ""source_record_index"": 4422, ""object_class"": ""BCNLAT"", ""native_scale"": 200000, ""lon"": 141.54707956201432, ""lat"": 40.53735089780069, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6623"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 6632}}, {""feature_id"": 360386, ""source_record_index"": 4714, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.54707956201432, ""lat"": 40.53735089780069, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 14, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 4, ""_cm93_relation20_raw"": 6632}}]"
40,6640,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 360132, ""source_record_index"": 4460, ""object_class"": ""BCNLAT"", ""native_scale"": 200000, ""lon"": 141.6516343766049, ""lat"": 40.472369069669675, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6619"", ""VERLEN"": 6, ""_cm93_relation20_raw"": 6640}}, {""feature_id"": 360318, ""source_record_index"": 4646, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.6516343766049, ""lat"": 40.472369069669675, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 9, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 4, ""_cm93_relation20_raw"": 6640}}]"
40,6657,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 360164, ""source_record_index"": 4492, ""object_class"": ""BCNLAT"", ""native_scale"": 200000, ""lon"": 141.5203457565323, ""lat"": 40.53735089780069, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6624.7"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 6657}}, {""feature_id"": 360345, ""source_record_index"": 4673, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.5203457565323, ""lat"": 40.53735089780069, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 3, ""_cm93_relation20_raw"": 6657}}]"
40,6663,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 360210, ""source_record_index"": 4538, ""object_class"": ""BCNSPP"", ""native_scale"": 200000, ""lon"": 141.53426198404347, ""lat"": 40.53797541747083, ""attributes"": {""COLMAR"": 5, ""SORIND"": ""GB,UKHO,graph,LL M-6623.2"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 6663}}, {""feature_id"": 360456, ""source_record_index"": 4784, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.53426198404347, ""lat"": 40.53797541747083, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 5, ""VALNMR"": 4, ""_cm93_relation20_raw"": 6663}}]"
40,6691,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 360172, ""source_record_index"": 4500, ""object_class"": ""BCNLAT"", ""native_scale"": 200000, ""lon"": 141.55232866537378, ""lat"": 40.533978390984394, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6624"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 6691}}, {""feature_id"": 360342, ""source_record_index"": 4670, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.55232866537378, ""lat"": 40.533978390984394, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 11, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 3, ""_cm93_relation20_raw"": 6691}}]"
40,6720,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 360211, ""source_record_index"": 4539, ""object_class"": ""BCNSPP"", ""native_scale"": 200000, ""lon"": 141.47084549113066, ""lat"": 40.54653075073066, ""attributes"": {""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6625"", ""VERLEN"": 43, ""_cm93_relation20_raw"": 6720}}, {""feature_id"": 360511, ""source_record_index"": 4839, ""object_class"": ""LIGHTS"", ""native_scale"": 200000, ""lon"": 141.47084549113066, ""lat"": 40.54653075073066, ""attributes"": {""CATLIT"": 5, ""COLOUR"": [1, 4], ""HEIGHT"": 79, ""LITCHR"": 19, ""SIGGRP"": ""(1)"", ""SIGPER"": 10, ""_cm93_relation20_raw"": 6720}}]"
351,992,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513794, ""source_record_index"": 864, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.51457109000057, ""lat"": 40.552446668497204, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 14, ""INFORM"": ""2 fl in 3s"", ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 4, ""_cm93_relation20_raw"": 992}}, {""feature_id"": 513761, ""source_record_index"": 831, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.51457109000057, ""lat"": 40.552446668497204, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,MDHS,graph,LL F-6625.5"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 992}}]"
351,993,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513800, ""source_record_index"": 870, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.55525672908215, ""lat"": 40.53632341943859, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 9, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 6, ""VALNMR"": 2, ""_cm93_relation20_raw"": 993}}, {""feature_id"": 513763, ""source_record_index"": 833, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.55525672908215, ""lat"": 40.53632341943859, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,MDHS,graph,LL F-6624.4"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 993}}]"
351,994,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513801, ""source_record_index"": 871, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.54818162919935, ""lat"": 40.53947009597325, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 12, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 4, ""_cm93_relation20_raw"": 994}}, {""feature_id"": 513760, ""source_record_index"": 830, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.54818162919935, ""lat"": 40.53947009597325, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,MDHS,graph,LL F-6622"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 994}}]"
351,995,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513803, ""source_record_index"": 873, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.53501309318457, ""lat"": 40.562163473376586, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 16, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 6, ""_cm93_relation20_raw"": 995}}, {""feature_id"": 513764, ""source_record_index"": 834, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.53501309318457, ""lat"": 40.562163473376586, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,MDHS,graph,LL F-6624.85"", ""VERLEN"": 16, ""_cm93_relation20_raw"": 995}}]"
351,996,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513795, ""source_record_index"": 865, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.57615650292712, ""lat"": 40.539856430562644, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 57, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 8, ""VALNMR"": 19, ""_cm93_relation20_raw"": 996}}, {""feature_id"": 513762, ""source_record_index"": 832, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.57615650292712, ""lat"": 40.539856430562644, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,MDHS,graph,LL F-6620"", ""VERLEN"": 23, ""_cm93_relation20_raw"": 996}}]"
351,997,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513802, ""source_record_index"": 872, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5340263430931, ""lat"": 40.538229743548484, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 12, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 5, ""VALNMR"": 4, ""_cm93_relation20_raw"": 997}}, {""feature_id"": 513758, ""source_record_index"": 828, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.5340263430931, ""lat"": 40.538229743548484, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""INFORM"": ""Framework tower"", ""SORIND"": ""GB,MDHS,graph,LL F-6623.2"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 997}}]"
351,998,3,"{""LIGHTS"": 2, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 513804, ""source_record_index"": 874, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.56775895446813, ""lat"": 40.5424742970387, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 22, ""INFORM"": ""FW spotlight illuminates Hinode Iwa."", ""LITCHR"": 1, ""QUAVEM"": 1, ""_cm93_relation20_raw"": 998}}, {""feature_id"": 513813, ""source_record_index"": 883, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.56775895446813, ""lat"": 40.5424742970387, ""attributes"": {""CATLIT"": 11, ""COLOUR"": [1], ""LITCHR"": 1, ""_cm93_relation20_raw"": 998}}, {""feature_id"": 513759, ""source_record_index"": 829, ""object_class"": ""TOWERS"", ""native_scale"": 50000, ""lon"": 141.56775895446813, ""lat"": 40.5424742970387, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,MDHS,graph,LL F-6621"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 998}}]"
351,999,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 513790, ""source_record_index"": 860, ""object_class"": ""BOYSPP"", ""native_scale"": 50000, ""lon"": 141.5684761285037, ""lat"": 40.56065929040829, ""attributes"": {""BOYSHP"": 1, ""CATSPM"": 10, ""COLMAR"": 4, ""INFORM"": ""Private mark|Wave recorder"", ""_cm93_relation20_raw"": 999}}, {""feature_id"": 513826, ""source_record_index"": 896, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5684761285037, ""lat"": 40.56065929040829, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 999}}]"
351,1000,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 513791, ""source_record_index"": 861, ""object_class"": ""BOYSPP"", ""native_scale"": 50000, ""lon"": 141.51750082223097, ""lat"": 40.5455495240557, ""attributes"": {""BOYSHP"": 1, ""CATSPM"": 13, ""COLMAR"": 4, ""_cm93_relation20_raw"": 1000}}, {""feature_id"": 513827, ""source_record_index"": 897, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.51750082223097, ""lat"": 40.5455495240557, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 1000}}]"
351,1001,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513809, ""source_record_index"": 879, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52584750728323, ""lat"": 40.53372564780069, ""attributes"": {""COLOUR"": [4], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.A"", ""_cm93_relation20_raw"": 1001}}, {""feature_id"": 513907, ""source_record_index"": 977, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52584750728323, ""lat"": 40.53372564780069, ""attributes"": {""_cm93_relation20_raw"": 1001}}]"
351,1002,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513805, ""source_record_index"": 875, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52560844927135, ""lat"": 40.533562965990825, ""attributes"": {""COLOUR"": [1], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.C"", ""_cm93_relation20_raw"": 1002}}, {""feature_id"": 513905, ""source_record_index"": 975, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52560844927135, ""lat"": 40.533562965990825, ""attributes"": {""_cm93_relation20_raw"": 1002}}]"
351,1003,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513811, ""source_record_index"": 881, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52294320675622, ""lat"": 40.530431264167966, ""attributes"": {""COLOUR"": [1], ""LITCHR"": 1, ""SORIND"": ""GB,MDHS,graph,LL F-6623.2.A"", ""_cm93_relation20_raw"": 1003}}, {""feature_id"": 513916, ""source_record_index"": 986, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52294320675622, ""lat"": 40.530431264167966, ""attributes"": {""_cm93_relation20_raw"": 1003}}]"
351,1004,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 513782, ""source_record_index"": 852, ""object_class"": ""BCNLAT"", ""native_scale"": 50000, ""lon"": 141.54681340355705, ""lat"": 40.537767147215504, ""attributes"": {""BCNSHP"": 3, ""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Metal|Framework tower"", ""SORIND"": ""GB,MDHS,graph,LL F-6623"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 1004}}, {""feature_id"": 513799, ""source_record_index"": 869, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.54681340355705, ""lat"": 40.537767147215504, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 14, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 4, ""_cm93_relation20_raw"": 1004}}]"
351,1005,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513825, ""source_record_index"": 895, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5349622297778, ""lat"": 40.56547154065089, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1005}}, {""feature_id"": 513919, ""source_record_index"": 989, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.5349622297778, ""lat"": 40.56547154065089, ""attributes"": {""_cm93_relation20_raw"": 1005}}]"
351,1006,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513815, ""source_record_index"": 885, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.53273441256093, ""lat"": 40.53599298441033, ""attributes"": {""COLOUR"": [3], ""STATUS"": [8], ""_cm93_relation20_raw"": 1006}}, {""feature_id"": 513912, ""source_record_index"": 982, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.53273441256093, ""lat"": 40.53599298441033, ""attributes"": {""_cm93_relation20_raw"": 1006}}]"
351,1007,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 513786, ""source_record_index"": 856, ""object_class"": ""BCNLAT"", ""native_scale"": 50000, ""lon"": 141.5524745007314, ""lat"": 40.53454921840199, ""attributes"": {""BCNSHP"": 3, ""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,MDHS,graph,LL F-6624"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 1007}}, {""feature_id"": 513796, ""source_record_index"": 866, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5524745007314, ""lat"": 40.53454921840199, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 11, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 3, ""_cm93_relation20_raw"": 1007}}]"
351,1008,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 513785, ""source_record_index"": 855, ""object_class"": ""BCNLAT"", ""native_scale"": 50000, ""lon"": 141.52035425935122, ""lat"": 40.53766039376199, ""attributes"": {""BCNSHP"": 3, ""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,MDHS,graph,LL F-6624.7"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 1008}}, {""feature_id"": 513797, ""source_record_index"": 867, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52035425935122, ""lat"": 40.53766039376199, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 12, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 5, ""_cm93_relation20_raw"": 1008}}]"
351,1009,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513816, ""source_record_index"": 886, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52412323779345, ""lat"": 40.545107310019546, ""attributes"": {""COLOUR"": [4], ""STATUS"": [8], ""_cm93_relation20_raw"": 1009}}, {""feature_id"": 513904, ""source_record_index"": 974, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52412323779345, ""lat"": 40.545107310019546, ""attributes"": {""_cm93_relation20_raw"": 1009}}]"
351,1010,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513818, ""source_record_index"": 888, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5310508337966, ""lat"": 40.54428386920667, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1010}}, {""feature_id"": 513908, ""source_record_index"": 978, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.5310508337966, ""lat"": 40.54428386920667, ""attributes"": {""_cm93_relation20_raw"": 1010}}]"
351,1011,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513822, ""source_record_index"": 892, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5495244231383, ""lat"": 40.54752166145216, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1011}}, {""feature_id"": 513902, ""source_record_index"": 972, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.5495244231383, ""lat"": 40.54752166145216, ""attributes"": {""_cm93_relation20_raw"": 1011}}]"
351,1012,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513824, ""source_record_index"": 894, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.51802980166147, ""lat"": 40.54034951226258, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1012}}, {""feature_id"": 513906, ""source_record_index"": 976, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.51802980166147, ""lat"": 40.54034951226258, ""attributes"": {""_cm93_relation20_raw"": 1012}}]"
351,1013,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 513783, ""source_record_index"": 853, ""object_class"": ""BCNLAT"", ""native_scale"": 50000, ""lon"": 141.53316675151854, ""lat"": 40.53632341943859, ""attributes"": {""BCNSHP"": 3, ""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,MDHS,graph,LL F-6623.6"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 1013}}, {""feature_id"": 513798, ""source_record_index"": 868, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.53316675151854, ""lat"": 40.53632341943859, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 12, ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(1)"", ""SIGPER"": 5, ""VALNMR"": 7, ""_cm93_relation20_raw"": 1013}}]"
351,1014,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513821, ""source_record_index"": 891, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52822282837974, ""lat"": 40.54622554676639, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1014}}, {""feature_id"": 513913, ""source_record_index"": 983, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52822282837974, ""lat"": 40.54622554676639, ""attributes"": {""_cm93_relation20_raw"": 1014}}]"
351,1015,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513810, ""source_record_index"": 880, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52565422633748, ""lat"": 40.53388832921558, ""attributes"": {""COLOUR"": [4], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.B"", ""_cm93_relation20_raw"": 1015}}, {""feature_id"": 513917, ""source_record_index"": 987, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52565422633748, ""lat"": 40.53388832921558, ""attributes"": {""_cm93_relation20_raw"": 1015}}]"
351,1016,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513808, ""source_record_index"": 878, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52510490154427, ""lat"": 40.53350704402745, ""attributes"": {""COLOUR"": [3], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.F"", ""_cm93_relation20_raw"": 1016}}, {""feature_id"": 513920, ""source_record_index"": 990, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52510490154427, ""lat"": 40.53350704402745, ""attributes"": {""_cm93_relation20_raw"": 1016}}]"
351,1017,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513819, ""source_record_index"": 889, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.54959563190778, ""lat"": 40.54994100842045, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1017}}, {""feature_id"": 513911, ""source_record_index"": 981, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.54959563190778, ""lat"": 40.54994100842045, ""attributes"": {""_cm93_relation20_raw"": 1017}}]"
351,1018,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 513784, ""source_record_index"": 854, ""object_class"": ""BCNLAT"", ""native_scale"": 50000, ""lon"": 141.5280092020713, ""lat"": 40.558667212294104, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Concrete"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.8"", ""VERLEN"": 16, ""_cm93_relation20_raw"": 1018}}, {""feature_id"": 513793, ""source_record_index"": 863, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5280092020713, ""lat"": 40.558667212294104, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 17, ""INFORM"": ""2 fl in 3s"", ""LITCHR"": 2, ""QUAVEM"": 1, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 5, ""_cm93_relation20_raw"": 1018}}]"
351,1019,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513820, ""source_record_index"": 890, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.54412781567916, ""lat"": 40.549463245146605, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1019}}, {""feature_id"": 513909, ""source_record_index"": 979, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.54412781567916, ""lat"": 40.549463245146605, ""attributes"": {""_cm93_relation20_raw"": 1019}}]"
351,1020,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513823, ""source_record_index"": 893, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.55782533112443, ""lat"": 40.545163222300296, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1020}}, {""feature_id"": 513918, ""source_record_index"": 988, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.55782533112443, ""lat"": 40.545163222300296, ""attributes"": {""_cm93_relation20_raw"": 1020}}]"
351,1021,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513807, ""source_record_index"": 877, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52536939125952, ""lat"": 40.533395199960694, ""attributes"": {""COLOUR"": [3], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.E"", ""_cm93_relation20_raw"": 1021}}, {""feature_id"": 513910, ""source_record_index"": 980, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52536939125952, ""lat"": 40.533395199960694, ""attributes"": {""_cm93_relation20_raw"": 1021}}]"
351,1022,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513806, ""source_record_index"": 876, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.5254151683256, ""lat"": 40.53372564780069, ""attributes"": {""COLOUR"": [1], ""LITCHR"": 7, ""SIGGRP"": ""(1)"", ""SORIND"": ""GB,MDHS,graph,LL F-6624.7.D"", ""_cm93_relation20_raw"": 1022}}, {""feature_id"": 513915, ""source_record_index"": 985, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.5254151683256, ""lat"": 40.53372564780069, ""attributes"": {""_cm93_relation20_raw"": 1022}}]"
351,1023,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513814, ""source_record_index"": 884, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.49825919544693, ""lat"": 40.55623293432891, ""attributes"": {""COLOUR"": [1], ""STATUS"": [8], ""_cm93_relation20_raw"": 1023}}, {""feature_id"": 513914, ""source_record_index"": 984, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.49825919544693, ""lat"": 40.55623293432891, ""attributes"": {""_cm93_relation20_raw"": 1023}}]"
351,1024,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513812, ""source_record_index"": 882, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.50759263059066, ""lat"": 40.53502708806053, ""attributes"": {""CATLIT"": 6, ""COLOUR"": [3], ""INFORM"": ""More than one"", ""_cm93_relation20_raw"": 1024}}, {""feature_id"": 513901, ""source_record_index"": 971, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.50759263059066, ""lat"": 40.53502708806053, ""attributes"": {""COLMAR"": 11, ""INFORM"": ""Height: 123m|Chimney|Visually conspicuous"", ""_cm93_relation20_raw"": 1024}}]"
351,1025,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 513817, ""source_record_index"": 887, ""object_class"": ""LIGHTS"", ""native_scale"": 50000, ""lon"": 141.52097987925458, ""lat"": 40.555318151462146, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 1025}}, {""feature_id"": 513903, ""source_record_index"": 973, ""object_class"": ""_extgn"", ""native_scale"": 50000, ""lon"": 141.52097987925458, ""lat"": 40.555318151462146, ""attributes"": {""_cm93_relation20_raw"": 1025}}]"
693,2239,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606499, ""source_record_index"": 1999, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.51452696025927, ""lat"": 40.55241521469589, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 14, ""INFORM"": ""2 fl in 3s"", ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 4, ""_cm93_relation20_raw"": 2239}}, {""feature_id"": 606454, ""source_record_index"": 1954, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.51452696025927, ""lat"": 40.55241521469589, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6625.5"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 2239}}]"
693,2240,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606511, ""source_record_index"": 2011, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.56767921143177, ""lat"": 40.54238692330532, ""attributes"": {""CATLIT"": 8, ""COLOUR"": [1], ""HEIGHT"": 22, ""INFORM"": ""Illuminates Hinode Iwa 430m NNW"", ""LITCHR"": 1, ""_cm93_relation20_raw"": 2240}}, {""feature_id"": 606453, ""source_record_index"": 1953, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.56767921143177, ""lat"": 40.54238692330532, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6621"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 2240}}]"
693,2241,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606501, ""source_record_index"": 2001, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5759546863272, ""lat"": 40.53986563666468, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 57, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 8, ""VALNMR"": 19, ""_cm93_relation20_raw"": 2241}}, {""feature_id"": 606455, ""source_record_index"": 1955, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.5759546863272, ""lat"": 40.53986563666468, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6620"", ""VERLEN"": 23, ""_cm93_relation20_raw"": 2241}}]"
693,2242,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606507, ""source_record_index"": 2007, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5350198234147, ""lat"": 40.56587201094555, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 7, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 5, ""_cm93_relation20_raw"": 2242}}, {""feature_id"": 606456, ""source_record_index"": 1956, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.5350198234147, ""lat"": 40.56587201094555, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6624.86"", ""VERLEN"": 5, ""_cm93_relation20_raw"": 2242}}]"
693,2243,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606509, ""source_record_index"": 2009, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.54813240748382, ""lat"": 40.53939288485493, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 10, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 5, ""_cm93_relation20_raw"": 2243}}, {""feature_id"": 606452, ""source_record_index"": 1952, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.54813240748382, ""lat"": 40.53939288485493, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""NATCON"": [2], ""SORIND"": ""GB,UKHO,graph,LL M-6622"", ""VERLEN"": 8, ""_cm93_relation20_raw"": 2243}}]"
693,2244,2,"{""LIGHTS"": 1, ""TOWERS"": 1}",True,True,"[""TOWERS""]",0.0,True,"[{""feature_id"": 606508, ""source_record_index"": 2008, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.55521767886023, ""lat"": 40.536297040550764, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 9, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 6, ""VALNMR"": 3, ""_cm93_relation20_raw"": 2244}}, {""feature_id"": 606457, ""source_record_index"": 1957, ""object_class"": ""TOWERS"", ""native_scale"": 20000, ""lon"": 141.55521767886023, ""lat"": 40.536297040550764, ""attributes"": {""CATTOW"": 1, ""COLOUR"": [1], ""CONVIS"": 1, ""SORIND"": ""GB,UKHO,graph,LL M-6624.4"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 2244}}]"
693,2245,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606487, ""source_record_index"": 1987, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.54756782376322, ""lat"": 40.54819670438723, ""attributes"": {""BOYSHP"": 4, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2245}}, {""feature_id"": 606532, ""source_record_index"": 2032, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.54756782376322, ""lat"": 40.54819670438723, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2245}}]"
693,2246,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606484, ""source_record_index"": 1984, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.51764488657207, ""lat"": 40.545787460007524, ""attributes"": {""BOYSHP"": 1, ""CATSPM"": 27, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2246}}, {""feature_id"": 606528, ""source_record_index"": 2028, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.51764488657207, ""lat"": 40.545787460007524, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2246}}]"
693,2247,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606485, ""source_record_index"": 1985, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.55372738129145, ""lat"": 40.53761368147356, ""attributes"": {""BOYSHP"": 4, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2247}}, {""feature_id"": 606531, ""source_record_index"": 2031, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.55372738129145, ""lat"": 40.53761368147356, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2247}}]"
693,2248,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606482, ""source_record_index"": 1982, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.51602234416788, ""lat"": 40.54453705850963, ""attributes"": {""BOYSHP"": 1, ""CATSPM"": 27, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2248}}, {""feature_id"": 606526, ""source_record_index"": 2026, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.51602234416788, ""lat"": 40.54453705850963, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2248}}]"
693,2249,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606483, ""source_record_index"": 1983, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.5144252334628, ""lat"": 40.54336796282291, ""attributes"": {""BOYSHP"": 1, ""CATSPM"": 27, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2249}}, {""feature_id"": 606530, ""source_record_index"": 2030, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5144252334628, ""lat"": 40.54336796282291, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2249}}]"
693,2250,2,"{""BOYSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BOYSPP""]",0.0,True,"[{""feature_id"": 606486, ""source_record_index"": 1986, ""object_class"": ""BOYSPP"", ""native_scale"": 20000, ""lon"": 141.54760851448182, ""lat"": 40.55077866754792, ""attributes"": {""BOYSHP"": 4, ""COLMAR"": 4, ""STATUS"": [8], ""_cm93_relation20_raw"": 2250}}, {""feature_id"": 606525, ""source_record_index"": 2025, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.54760851448182, ""lat"": 40.55077866754792, ""attributes"": {""COLOUR"": [6], ""_cm93_relation20_raw"": 2250}}]"
693,2251,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 606474, ""source_record_index"": 1974, ""object_class"": ""BCNLAT"", ""native_scale"": 20000, ""lon"": 141.5279752427569, ""lat"": 40.55872215426594, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Concrete"", ""SORIND"": ""GB,UKHO,graph,LL M-6624.8"", ""VERLEN"": 16, ""_cm93_relation20_raw"": 2251}}, {""feature_id"": 606506, ""source_record_index"": 2006, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5279752427569, ""lat"": 40.55872215426594, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 17, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 9, ""VALNMR"": 5, ""_cm93_relation20_raw"": 2251}}]"
693,2252,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606517, ""source_record_index"": 2017, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.47915655311542, ""lat"": 40.58768781797142, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2252}}, {""feature_id"": 606718, ""source_record_index"": 2218, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.47915655311542, ""lat"": 40.58768781797142, ""attributes"": {""_cm93_relation20_raw"": 2252}}]"
693,2253,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606519, ""source_record_index"": 2019, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.50487817361105, ""lat"": 40.55268966278586, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2253}}, {""feature_id"": 606736, ""source_record_index"": 2236, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.50487817361105, ""lat"": 40.55268966278586, ""attributes"": {""_cm93_relation20_raw"": 2253}}]"
693,2254,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 606477, ""source_record_index"": 1977, ""object_class"": ""BCNLAT"", ""native_scale"": 20000, ""lon"": 141.55245070999536, ""lat"": 40.53446183378157, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6624"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 2254}}, {""feature_id"": 606502, ""source_record_index"": 2002, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.55245070999536, ""lat"": 40.53446183378157, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 11, ""LITCHR"": 2, ""SIGGRP"": ""(2)"", ""SIGPER"": 6, ""VALNMR"": 3, ""_cm93_relation20_raw"": 2254}}]"
693,2255,2,"{""BCNSPP"": 1, ""LIGHTS"": 1}",True,True,"[""BCNSPP""]",0.0,True,"[{""feature_id"": 606478, ""source_record_index"": 1978, ""object_class"": ""BCNSPP"", ""native_scale"": 20000, ""lon"": 141.53411954126562, ""lat"": 40.53822878284375, ""attributes"": {""COLMAR"": 5, ""SORIND"": ""GB,UKHO,graph,LL M-6623.2"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 2255}}, {""feature_id"": 606510, ""source_record_index"": 2010, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.53411954126562, ""lat"": 40.53822878284375, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 5, ""VALNMR"": 4, ""_cm93_relation20_raw"": 2255}}]"
693,2256,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 606473, ""source_record_index"": 1973, ""object_class"": ""BCNLAT"", ""native_scale"": 20000, ""lon"": 141.54682521814877, ""lat"": 40.5377458524923, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""INFORM"": ""Metal"", ""SORIND"": ""GB,UKHO,graph,LL M-6623"", ""VERLEN"": 10, ""_cm93_relation20_raw"": 2256}}, {""feature_id"": 606505, ""source_record_index"": 2005, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.54682521814877, ""lat"": 40.5377458524923, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 14, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 4, ""_cm93_relation20_raw"": 2256}}]"
693,2257,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606529, ""source_record_index"": 2029, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.47109979083245, ""lat"": 40.546926016675656, ""attributes"": {""CATLIT"": 5, ""_cm93_relation20_raw"": 2257}}, {""feature_id"": 606727, ""source_record_index"": 2227, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.47109979083245, ""lat"": 40.546926016675656, ""attributes"": {""_cm93_relation20_raw"": 2257}}]"
693,2258,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606498, ""source_record_index"": 1998, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52570164885506, ""lat"": 40.53382127886439, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 4, ""LITCHR"": 7, ""OBJNAM"": ""L2"", ""SECTR1"": 48, ""SECTR2"": 228, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.631"", ""VALNMR"": 4, ""_cm93_relation20_raw"": 2258}}, {""feature_id"": 606729, ""source_record_index"": 2229, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52570164885506, ""lat"": 40.53382127886439, ""attributes"": {""_cm93_relation20_raw"": 2258}}]"
693,2259,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606533, ""source_record_index"": 2033, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.49831170889684, ""lat"": 40.55619131837828, ""attributes"": {""STATUS"": [8], ""_cm93_relation20_raw"": 2259}}, {""feature_id"": 606737, ""source_record_index"": 2237, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.49831170889684, ""lat"": 40.55619131837828, ""attributes"": {""_cm93_relation20_raw"": 2259}}]"
693,2260,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606515, ""source_record_index"": 2015, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5075434156794, ""lat"": 40.549081088805, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2260}}, {""feature_id"": 606720, ""source_record_index"": 2220, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.5075434156794, ""lat"": 40.549081088805, ""attributes"": {""_cm93_relation20_raw"": 2260}}]"
693,2261,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606524, ""source_record_index"": 2024, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52826516412694, ""lat"": 40.54623983528677, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2261}}, {""feature_id"": 606733, ""source_record_index"": 2233, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52826516412694, ""lat"": 40.54623983528677, ""attributes"": {""_cm93_relation20_raw"": 2261}}]"
693,2262,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606516, ""source_record_index"": 2016, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.51800601669967, ""lat"": 40.54032821853955, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2262}}, {""feature_id"": 606716, ""source_record_index"": 2216, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.51800601669967, ""lat"": 40.54032821853955, ""attributes"": {""_cm93_relation20_raw"": 2262}}]"
693,2263,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606495, ""source_record_index"": 1995, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52535069140714, ""lat"": 40.53333831674283, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 5, ""LITCHR"": 7, ""OBJNAM"": ""R1"", ""SECTR1"": 228, ""SECTR2"": 48, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.64"", ""VALNMR"": 4, ""_cm93_relation20_raw"": 2263}}, {""feature_id"": 606728, ""source_record_index"": 2228, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52535069140714, ""lat"": 40.53333831674283, ""attributes"": {""_cm93_relation20_raw"": 2263}}]"
693,2264,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606518, ""source_record_index"": 2018, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.56030401868534, ""lat"": 40.544648883984316, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2264}}, {""feature_id"": 606717, ""source_record_index"": 2217, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.56030401868534, ""lat"": 40.544648883984316, ""attributes"": {""_cm93_relation20_raw"": 2264}}]"
693,2265,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606497, ""source_record_index"": 1997, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52588984342862, ""lat"": 40.53368910010344, ""attributes"": {""COLOUR"": [4], ""HEIGHT"": 4, ""LITCHR"": 7, ""OBJNAM"": ""L1"", ""SECTR1"": 228, ""SECTR2"": 48, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.63"", ""VALNMR"": 4, ""_cm93_relation20_raw"": 2265}}, {""feature_id"": 606735, ""source_record_index"": 2235, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52588984342862, ""lat"": 40.53368910010344, ""attributes"": {""_cm93_relation20_raw"": 2265}}]"
693,2266,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606493, ""source_record_index"": 1993, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52561518107802, ""lat"": 40.53350099910942, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 5, ""LITCHR"": 7, ""OBJNAM"": ""C1"", ""SECTR1"": 228, ""SECTR2"": 48, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.62"", ""VALNMR"": 6, ""_cm93_relation20_raw"": 2266}}, {""feature_id"": 606726, ""source_record_index"": 2226, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52561518107802, ""lat"": 40.53350099910942, ""attributes"": {""_cm93_relation20_raw"": 2266}}]"
693,2267,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606500, ""source_record_index"": 2000, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52294485266987, ""lat"": 40.53044047091052, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 31, ""LITCHR"": 1, ""OBJNAM"": ""C1"", ""SORIND"": ""GB,UKHO,graph,LL M-6624.5"", ""VALNMR"": 6, ""_cm93_relation20_raw"": 2267}}, {""feature_id"": 606730, ""source_record_index"": 2230, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52294485266987, ""lat"": 40.53044047091052, ""attributes"": {""_cm93_relation20_raw"": 2267}}]"
693,2268,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606521, ""source_record_index"": 2021, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52094592111857, ""lat"": 40.55528669920913, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2268}}, {""feature_id"": 606732, ""source_record_index"": 2232, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52094592111857, ""lat"": 40.55528669920913, ""attributes"": {""_cm93_relation20_raw"": 2268}}]"
693,2269,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606522, ""source_record_index"": 2022, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.50160257076368, ""lat"": 40.552715074589145, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2269}}, {""feature_id"": 606722, ""source_record_index"": 2222, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.50160257076368, ""lat"": 40.552715074589145, ""attributes"": {""_cm93_relation20_raw"": 2269}}]"
693,2270,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606494, ""source_record_index"": 1994, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5254269865045, ""lat"": 40.53363317824145, ""attributes"": {""COLOUR"": [1], ""HEIGHT"": 5, ""LITCHR"": 7, ""OBJNAM"": ""C2"", ""SECTR1"": 48, ""SECTR2"": 228, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.621"", ""VALNMR"": 6, ""_cm93_relation20_raw"": 2270}}, {""feature_id"": 606719, ""source_record_index"": 2219, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.5254269865045, ""lat"": 40.53363317824145, ""attributes"": {""_cm93_relation20_raw"": 2270}}]"
693,2271,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606513, ""source_record_index"": 2013, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.53291407872706, ""lat"": 40.54241742215959, ""attributes"": {""COLOUR"": [3], ""STATUS"": [8], ""_cm93_relation20_raw"": 2271}}, {""feature_id"": 606731, ""source_record_index"": 2231, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.53291407872706, ""lat"": 40.54241742215959, ""attributes"": {""_cm93_relation20_raw"": 2271}}]"
693,2272,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 606476, ""source_record_index"": 1976, ""object_class"": ""BCNLAT"", ""native_scale"": 20000, ""lon"": 141.52043728713608, ""lat"": 40.53762384848427, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6624.7"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 2272}}, {""feature_id"": 606503, ""source_record_index"": 2003, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52043728713608, ""lat"": 40.53762384848427, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 3, ""VALNMR"": 3, ""_cm93_relation20_raw"": 2272}}]"
693,2273,2,"{""BCNLAT"": 1, ""LIGHTS"": 1}",True,True,"[""BCNLAT""]",0.0,True,"[{""feature_id"": 606475, ""source_record_index"": 1975, ""object_class"": ""BCNLAT"", ""native_scale"": 20000, ""lon"": 141.53323451813606, ""lat"": 40.53630720776126, ""attributes"": {""CATLAM"": 2, ""COLMAR"": 3, ""SORIND"": ""GB,UKHO,graph,LL M-6623.6"", ""VERLEN"": 9, ""_cm93_relation20_raw"": 2273}}, {""feature_id"": 606504, ""source_record_index"": 2004, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.53323451813606, ""lat"": 40.53630720776126, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 12, ""LITCHR"": 2, ""SIGGRP"": ""(1)"", ""SIGPER"": 5, ""VALNMR"": 7, ""_cm93_relation20_raw"": 2273}}]"
693,2274,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606514, ""source_record_index"": 2014, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.52411979716945, ""lat"": 40.545101266953736, ""attributes"": {""COLOUR"": [4], ""STATUS"": [8], ""_cm93_relation20_raw"": 2274}}, {""feature_id"": 606723, ""source_record_index"": 2223, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.52411979716945, ""lat"": 40.545101266953736, ""attributes"": {""_cm93_relation20_raw"": 2274}}]"
693,2275,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606512, ""source_record_index"": 2012, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.53280217925092, ""lat"": 40.535966605369474, ""attributes"": {""COLOUR"": [3], ""STATUS"": [8], ""_cm93_relation20_raw"": 2275}}, {""feature_id"": 606721, ""source_record_index"": 2221, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.53280217925092, ""lat"": 40.535966605369474, ""attributes"": {""_cm93_relation20_raw"": 2275}}]"
693,2276,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606496, ""source_record_index"": 1996, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.5251777558531, ""lat"": 40.5334501609123, ""attributes"": {""COLOUR"": [3], ""HEIGHT"": 5, ""LITCHR"": 7, ""OBJNAM"": ""R2"", ""SECTR1"": 48, ""SECTR2"": 228, ""SIGGRP"": ""(1)"", ""SIGPER"": 4, ""SORIND"": ""GB,UKHO,graph,LL M-6624.641"", ""VALNMR"": 4, ""_cm93_relation20_raw"": 2276}}, {""feature_id"": 606725, ""source_record_index"": 2225, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.5251777558531, ""lat"": 40.5334501609123, ""attributes"": {""_cm93_relation20_raw"": 2276}}]"
693,2277,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606523, ""source_record_index"": 2023, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.4824321559628, ""lat"": 40.58365441116841, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2277}}, {""feature_id"": 606724, ""source_record_index"": 2224, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.4824321559628, ""lat"": 40.58365441116841, ""attributes"": {""_cm93_relation20_raw"": 2277}}]"
693,2278,2,"{""LIGHTS"": 1, ""_extgn"": 1}",True,True,"[""_extgn""]",0.0,True,"[{""feature_id"": 606520, ""source_record_index"": 2020, ""object_class"": ""LIGHTS"", ""native_scale"": 20000, ""lon"": 141.54953623727556, ""lat"": 40.549818066898325, ""attributes"": {""COLOUR"": [6], ""STATUS"": [8], ""_cm93_relation20_raw"": 2278}}, {""feature_id"": 606734, ""source_record_index"": 2234, ""object_class"": ""_extgn"", ""native_scale"": 20000, ""lon"": 141.54953623727556, ""lat"": 40.549818066898325, ""attributes"": {""_cm93_relation20_raw"": 2278}}]"
1 cell_id relation20 member_count classes has_light has_base_component base_classes max_coord_spread_deg coord_ok members
2 12 2028 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 329223, "source_record_index": 1400, "object_class": "LIGHTS", "native_scale": 1000000, "lon": 141.57442375474542, "lat": 40.53965048898594, "attributes": {"COLOUR": [1], "HEIGHT": 57, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 8, "VALNMR": 19, "_cm93_relation20_raw": 2028}}, {"feature_id": 329025, "source_record_index": 1202, "object_class": "TOWERS", "native_scale": 1000000, "lon": 141.57442375474542, "lat": 40.53965048898594, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6620", "VERLEN": 23, "_cm93_relation20_raw": 2028}}]
3 12 2039 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 329077, "source_record_index": 1254, "object_class": "BCNSPP", "native_scale": 1000000, "lon": 141.47157794882685, "lat": 40.54722276035132, "attributes": {"CATSPM": 27, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6625", "VERLEN": 43, "_cm93_relation20_raw": 2039}}, {"feature_id": 329240, "source_record_index": 1417, "object_class": "LIGHTS", "native_scale": 1000000, "lon": 141.47157794882685, "lat": 40.54722276035132, "attributes": {"CATLIT": 5, "COLOUR": [1, 4], "HEIGHT": 79, "LITCHR": 19, "SIGGRP": "(1)", "SIGPER": 10, "_cm93_relation20_raw": 2039}}]
4 12 2041 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 329081, "source_record_index": 1258, "object_class": "BCNSPP", "native_scale": 1000000, "lon": 141.35805082775352, "lat": 40.68748385272822, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6626", "_cm93_relation20_raw": 2041}}, {"feature_id": 329190, "source_record_index": 1367, "object_class": "LIGHTS", "native_scale": 1000000, "lon": 141.35805082775352, "lat": 40.68748385272822, "attributes": {"CATLIT": 5, "COLOUR": [1, 1, 4], "HEIGHT": 69, "INFORM": "The white light can be apparent on 8M", "LITCHR": 19, "SIGGRP": "(1)", "SIGPER": 10, "VALNMR": 6, "_cm93_relation20_raw": 2041}}]
5 40 6486 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360413, "source_record_index": 4741, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.53481130881366, "lat": 40.56513638820441, "attributes": {"COLOUR": [4], "HEIGHT": 7, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 5, "_cm93_relation20_raw": 6486}}, {"feature_id": 359972, "source_record_index": 4300, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.53481130881366, "lat": 40.56513638820441, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.86", "VERLEN": 5, "_cm93_relation20_raw": 6486}}]
6 40 6501 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360453, "source_record_index": 4781, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.43965605140164, "lat": 40.68046315791786, "attributes": {"COLOUR": [4], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 7, "_cm93_relation20_raw": 6501}}, {"feature_id": 359997, "source_record_index": 4325, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.43965605140164, "lat": 40.68046315791786, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6625.7", "VERLEN": 9, "_cm93_relation20_raw": 6501}}]
7 40 6510 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360419, "source_record_index": 4747, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.6269147619469, "lat": 40.49949414054503, "attributes": {"COLOUR": [4], "HEIGHT": 8, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 6510}}, {"feature_id": 359963, "source_record_index": 4291, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.6269147619469, "lat": 40.49949414054503, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6619.5", "VERLEN": 5, "_cm93_relation20_raw": 6510}}]
8 40 6521 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360514, "source_record_index": 4842, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.5676487228532, "lat": 40.541909757522724, "attributes": {"CATLIT": 8, "COLOUR": [1], "HEIGHT": 22, "INFORM": "Illuminates Hinode Iwa 430m NNW", "LITCHR": 1, "_cm93_relation20_raw": 6521}}, {"feature_id": 359918, "source_record_index": 4246, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.5676487228532, "lat": 40.541909757522724, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6621", "VERLEN": 9, "_cm93_relation20_raw": 6521}}]
9 40 6528 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360449, "source_record_index": 4777, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.67305804264188, "lat": 40.454613089799984, "attributes": {"COLOUR": [4], "HEIGHT": 11, "LITCHR": 7, "SIGGRP": "(1)", "SIGPER": 4, "VALNMR": 4, "_cm93_relation20_raw": 6528}}, {"feature_id": 359976, "source_record_index": 4304, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.67305804264188, "lat": 40.454613089799984, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6618.4", "VERLEN": 6, "_cm93_relation20_raw": 6528}}]
10 40 6548 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360502, "source_record_index": 4830, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.53481130881366, "lat": 40.56201499793302, "attributes": {"COLOUR": [4], "HEIGHT": 16, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 6, "_cm93_relation20_raw": 6548}}, {"feature_id": 360036, "source_record_index": 4364, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.53481130881366, "lat": 40.56201499793302, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.85", "VERLEN": 16, "_cm93_relation20_raw": 6548}}]
11 40 6558 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360270, "source_record_index": 4598, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.51424214797476, "lat": 40.55215044794532, "attributes": {"COLOUR": [4], "HEIGHT": 14, "INFORM": "2 fl in 3s", "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 4, "_cm93_relation20_raw": 6558}}, {"feature_id": 359931, "source_record_index": 4259, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.51424214797476, "lat": 40.55215044794532, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6625.5", "VERLEN": 10, "_cm93_relation20_raw": 6558}}]
12 40 6567 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 360291, "source_record_index": 4619, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.5765599913472, "lat": 40.53922443934611, "attributes": {"COLOUR": [1], "HEIGHT": 57, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 8, "VALNMR": 19, "_cm93_relation20_raw": 6567}}, {"feature_id": 359946, "source_record_index": 4274, "object_class": "TOWERS", "native_scale": 200000, "lon": 141.5765599913472, "lat": 40.53922443934611, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6620", "VERLEN": 23, "_cm93_relation20_raw": 6567}}]
13 40 6602 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 360111, "source_record_index": 4439, "object_class": "BCNLAT", "native_scale": 200000, "lon": 141.52785319505807, "lat": 40.55864373294613, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,UKHO,graph,LL M-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 6602}}, {"feature_id": 360409, "source_record_index": 4737, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.52785319505807, "lat": 40.55864373294613, "attributes": {"COLOUR": [3], "HEIGHT": 17, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 5, "_cm93_relation20_raw": 6602}}]
14 40 6620 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 360212, "source_record_index": 4540, "object_class": "BCNSPP", "native_scale": 200000, "lon": 141.3592715266989, "lat": 40.68775404209214, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6626", "_cm93_relation20_raw": 6620}}, {"feature_id": 360256, "source_record_index": 4584, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.3592715266989, "lat": 40.68775404209214, "attributes": {"CATLIT": 5, "COLOUR": [1, 1, 4], "HEIGHT": 69, "INFORM": "The white light can be apparent on 8M", "LITCHR": 19, "SIGGRP": "(1)", "SIGPER": 10, "VALNMR": 6, "_cm93_relation20_raw": 6620}}]
15 40 6632 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 360094, "source_record_index": 4422, "object_class": "BCNLAT", "native_scale": 200000, "lon": 141.54707956201432, "lat": 40.53735089780069, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6623", "VERLEN": 10, "_cm93_relation20_raw": 6632}}, {"feature_id": 360386, "source_record_index": 4714, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.54707956201432, "lat": 40.53735089780069, "attributes": {"COLOUR": [3], "HEIGHT": 14, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 4, "_cm93_relation20_raw": 6632}}]
16 40 6640 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 360132, "source_record_index": 4460, "object_class": "BCNLAT", "native_scale": 200000, "lon": 141.6516343766049, "lat": 40.472369069669675, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6619", "VERLEN": 6, "_cm93_relation20_raw": 6640}}, {"feature_id": 360318, "source_record_index": 4646, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.6516343766049, "lat": 40.472369069669675, "attributes": {"COLOUR": [3], "HEIGHT": 9, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 4, "_cm93_relation20_raw": 6640}}]
17 40 6657 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 360164, "source_record_index": 4492, "object_class": "BCNLAT", "native_scale": 200000, "lon": 141.5203457565323, "lat": 40.53735089780069, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624.7", "VERLEN": 9, "_cm93_relation20_raw": 6657}}, {"feature_id": 360345, "source_record_index": 4673, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.5203457565323, "lat": 40.53735089780069, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 3, "_cm93_relation20_raw": 6657}}]
18 40 6663 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 360210, "source_record_index": 4538, "object_class": "BCNSPP", "native_scale": 200000, "lon": 141.53426198404347, "lat": 40.53797541747083, "attributes": {"COLMAR": 5, "SORIND": "GB,UKHO,graph,LL M-6623.2", "VERLEN": 9, "_cm93_relation20_raw": 6663}}, {"feature_id": 360456, "source_record_index": 4784, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.53426198404347, "lat": 40.53797541747083, "attributes": {"COLOUR": [4], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 4, "_cm93_relation20_raw": 6663}}]
19 40 6691 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 360172, "source_record_index": 4500, "object_class": "BCNLAT", "native_scale": 200000, "lon": 141.55232866537378, "lat": 40.533978390984394, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624", "VERLEN": 10, "_cm93_relation20_raw": 6691}}, {"feature_id": 360342, "source_record_index": 4670, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.55232866537378, "lat": 40.533978390984394, "attributes": {"COLOUR": [3], "HEIGHT": 11, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 6691}}]
20 40 6720 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 360211, "source_record_index": 4539, "object_class": "BCNSPP", "native_scale": 200000, "lon": 141.47084549113066, "lat": 40.54653075073066, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6625", "VERLEN": 43, "_cm93_relation20_raw": 6720}}, {"feature_id": 360511, "source_record_index": 4839, "object_class": "LIGHTS", "native_scale": 200000, "lon": 141.47084549113066, "lat": 40.54653075073066, "attributes": {"CATLIT": 5, "COLOUR": [1, 4], "HEIGHT": 79, "LITCHR": 19, "SIGGRP": "(1)", "SIGPER": 10, "_cm93_relation20_raw": 6720}}]
21 351 992 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513794, "source_record_index": 864, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.51457109000057, "lat": 40.552446668497204, "attributes": {"COLOUR": [4], "HEIGHT": 14, "INFORM": "2 fl in 3s", "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 4, "_cm93_relation20_raw": 992}}, {"feature_id": 513761, "source_record_index": 831, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.51457109000057, "lat": 40.552446668497204, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,MDHS,graph,LL F-6625.5", "VERLEN": 10, "_cm93_relation20_raw": 992}}]
22 351 993 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513800, "source_record_index": 870, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.55525672908215, "lat": 40.53632341943859, "attributes": {"COLOUR": [4], "HEIGHT": 9, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 6, "VALNMR": 2, "_cm93_relation20_raw": 993}}, {"feature_id": 513763, "source_record_index": 833, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.55525672908215, "lat": 40.53632341943859, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,MDHS,graph,LL F-6624.4", "VERLEN": 9, "_cm93_relation20_raw": 993}}]
23 351 994 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513801, "source_record_index": 871, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.54818162919935, "lat": 40.53947009597325, "attributes": {"COLOUR": [4], "HEIGHT": 12, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 4, "_cm93_relation20_raw": 994}}, {"feature_id": 513760, "source_record_index": 830, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.54818162919935, "lat": 40.53947009597325, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,MDHS,graph,LL F-6622", "VERLEN": 10, "_cm93_relation20_raw": 994}}]
24 351 995 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513803, "source_record_index": 873, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.53501309318457, "lat": 40.562163473376586, "attributes": {"COLOUR": [4], "HEIGHT": 16, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 6, "_cm93_relation20_raw": 995}}, {"feature_id": 513764, "source_record_index": 834, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.53501309318457, "lat": 40.562163473376586, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,MDHS,graph,LL F-6624.85", "VERLEN": 16, "_cm93_relation20_raw": 995}}]
25 351 996 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513795, "source_record_index": 865, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.57615650292712, "lat": 40.539856430562644, "attributes": {"COLOUR": [1], "HEIGHT": 57, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 8, "VALNMR": 19, "_cm93_relation20_raw": 996}}, {"feature_id": 513762, "source_record_index": 832, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.57615650292712, "lat": 40.539856430562644, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,MDHS,graph,LL F-6620", "VERLEN": 23, "_cm93_relation20_raw": 996}}]
26 351 997 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513802, "source_record_index": 872, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5340263430931, "lat": 40.538229743548484, "attributes": {"COLOUR": [4], "HEIGHT": 12, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 4, "_cm93_relation20_raw": 997}}, {"feature_id": 513758, "source_record_index": 828, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.5340263430931, "lat": 40.538229743548484, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "INFORM": "Framework tower", "SORIND": "GB,MDHS,graph,LL F-6623.2", "VERLEN": 9, "_cm93_relation20_raw": 997}}]
27 351 998 3 {"LIGHTS": 2, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 513804, "source_record_index": 874, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.56775895446813, "lat": 40.5424742970387, "attributes": {"COLOUR": [1], "HEIGHT": 22, "INFORM": "FW spotlight illuminates Hinode Iwa.", "LITCHR": 1, "QUAVEM": 1, "_cm93_relation20_raw": 998}}, {"feature_id": 513813, "source_record_index": 883, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.56775895446813, "lat": 40.5424742970387, "attributes": {"CATLIT": 11, "COLOUR": [1], "LITCHR": 1, "_cm93_relation20_raw": 998}}, {"feature_id": 513759, "source_record_index": 829, "object_class": "TOWERS", "native_scale": 50000, "lon": 141.56775895446813, "lat": 40.5424742970387, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,MDHS,graph,LL F-6621", "VERLEN": 9, "_cm93_relation20_raw": 998}}]
28 351 999 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 513790, "source_record_index": 860, "object_class": "BOYSPP", "native_scale": 50000, "lon": 141.5684761285037, "lat": 40.56065929040829, "attributes": {"BOYSHP": 1, "CATSPM": 10, "COLMAR": 4, "INFORM": "Private mark|Wave recorder", "_cm93_relation20_raw": 999}}, {"feature_id": 513826, "source_record_index": 896, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5684761285037, "lat": 40.56065929040829, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 999}}]
29 351 1000 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 513791, "source_record_index": 861, "object_class": "BOYSPP", "native_scale": 50000, "lon": 141.51750082223097, "lat": 40.5455495240557, "attributes": {"BOYSHP": 1, "CATSPM": 13, "COLMAR": 4, "_cm93_relation20_raw": 1000}}, {"feature_id": 513827, "source_record_index": 897, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.51750082223097, "lat": 40.5455495240557, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 1000}}]
30 351 1001 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513809, "source_record_index": 879, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52584750728323, "lat": 40.53372564780069, "attributes": {"COLOUR": [4], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.A", "_cm93_relation20_raw": 1001}}, {"feature_id": 513907, "source_record_index": 977, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52584750728323, "lat": 40.53372564780069, "attributes": {"_cm93_relation20_raw": 1001}}]
31 351 1002 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513805, "source_record_index": 875, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52560844927135, "lat": 40.533562965990825, "attributes": {"COLOUR": [1], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.C", "_cm93_relation20_raw": 1002}}, {"feature_id": 513905, "source_record_index": 975, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52560844927135, "lat": 40.533562965990825, "attributes": {"_cm93_relation20_raw": 1002}}]
32 351 1003 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513811, "source_record_index": 881, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52294320675622, "lat": 40.530431264167966, "attributes": {"COLOUR": [1], "LITCHR": 1, "SORIND": "GB,MDHS,graph,LL F-6623.2.A", "_cm93_relation20_raw": 1003}}, {"feature_id": 513916, "source_record_index": 986, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52294320675622, "lat": 40.530431264167966, "attributes": {"_cm93_relation20_raw": 1003}}]
33 351 1004 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 513782, "source_record_index": 852, "object_class": "BCNLAT", "native_scale": 50000, "lon": 141.54681340355705, "lat": 40.537767147215504, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "INFORM": "Metal|Framework tower", "SORIND": "GB,MDHS,graph,LL F-6623", "VERLEN": 10, "_cm93_relation20_raw": 1004}}, {"feature_id": 513799, "source_record_index": 869, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.54681340355705, "lat": 40.537767147215504, "attributes": {"COLOUR": [3], "HEIGHT": 14, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 4, "_cm93_relation20_raw": 1004}}]
34 351 1005 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513825, "source_record_index": 895, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5349622297778, "lat": 40.56547154065089, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1005}}, {"feature_id": 513919, "source_record_index": 989, "object_class": "_extgn", "native_scale": 50000, "lon": 141.5349622297778, "lat": 40.56547154065089, "attributes": {"_cm93_relation20_raw": 1005}}]
35 351 1006 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513815, "source_record_index": 885, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.53273441256093, "lat": 40.53599298441033, "attributes": {"COLOUR": [3], "STATUS": [8], "_cm93_relation20_raw": 1006}}, {"feature_id": 513912, "source_record_index": 982, "object_class": "_extgn", "native_scale": 50000, "lon": 141.53273441256093, "lat": 40.53599298441033, "attributes": {"_cm93_relation20_raw": 1006}}]
36 351 1007 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 513786, "source_record_index": 856, "object_class": "BCNLAT", "native_scale": 50000, "lon": 141.5524745007314, "lat": 40.53454921840199, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6624", "VERLEN": 10, "_cm93_relation20_raw": 1007}}, {"feature_id": 513796, "source_record_index": 866, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5524745007314, "lat": 40.53454921840199, "attributes": {"COLOUR": [3], "HEIGHT": 11, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 1007}}]
37 351 1008 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 513785, "source_record_index": 855, "object_class": "BCNLAT", "native_scale": 50000, "lon": 141.52035425935122, "lat": 40.53766039376199, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6624.7", "VERLEN": 9, "_cm93_relation20_raw": 1008}}, {"feature_id": 513797, "source_record_index": 867, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52035425935122, "lat": 40.53766039376199, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 5, "_cm93_relation20_raw": 1008}}]
38 351 1009 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513816, "source_record_index": 886, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52412323779345, "lat": 40.545107310019546, "attributes": {"COLOUR": [4], "STATUS": [8], "_cm93_relation20_raw": 1009}}, {"feature_id": 513904, "source_record_index": 974, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52412323779345, "lat": 40.545107310019546, "attributes": {"_cm93_relation20_raw": 1009}}]
39 351 1010 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513818, "source_record_index": 888, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5310508337966, "lat": 40.54428386920667, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1010}}, {"feature_id": 513908, "source_record_index": 978, "object_class": "_extgn", "native_scale": 50000, "lon": 141.5310508337966, "lat": 40.54428386920667, "attributes": {"_cm93_relation20_raw": 1010}}]
40 351 1011 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513822, "source_record_index": 892, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5495244231383, "lat": 40.54752166145216, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1011}}, {"feature_id": 513902, "source_record_index": 972, "object_class": "_extgn", "native_scale": 50000, "lon": 141.5495244231383, "lat": 40.54752166145216, "attributes": {"_cm93_relation20_raw": 1011}}]
41 351 1012 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513824, "source_record_index": 894, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.51802980166147, "lat": 40.54034951226258, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1012}}, {"feature_id": 513906, "source_record_index": 976, "object_class": "_extgn", "native_scale": 50000, "lon": 141.51802980166147, "lat": 40.54034951226258, "attributes": {"_cm93_relation20_raw": 1012}}]
42 351 1013 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 513783, "source_record_index": 853, "object_class": "BCNLAT", "native_scale": 50000, "lon": 141.53316675151854, "lat": 40.53632341943859, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6623.6", "VERLEN": 9, "_cm93_relation20_raw": 1013}}, {"feature_id": 513798, "source_record_index": 868, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.53316675151854, "lat": 40.53632341943859, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 7, "_cm93_relation20_raw": 1013}}]
43 351 1014 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513821, "source_record_index": 891, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52822282837974, "lat": 40.54622554676639, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1014}}, {"feature_id": 513913, "source_record_index": 983, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52822282837974, "lat": 40.54622554676639, "attributes": {"_cm93_relation20_raw": 1014}}]
44 351 1015 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513810, "source_record_index": 880, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52565422633748, "lat": 40.53388832921558, "attributes": {"COLOUR": [4], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.B", "_cm93_relation20_raw": 1015}}, {"feature_id": 513917, "source_record_index": 987, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52565422633748, "lat": 40.53388832921558, "attributes": {"_cm93_relation20_raw": 1015}}]
45 351 1016 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513808, "source_record_index": 878, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52510490154427, "lat": 40.53350704402745, "attributes": {"COLOUR": [3], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.F", "_cm93_relation20_raw": 1016}}, {"feature_id": 513920, "source_record_index": 990, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52510490154427, "lat": 40.53350704402745, "attributes": {"_cm93_relation20_raw": 1016}}]
46 351 1017 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513819, "source_record_index": 889, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.54959563190778, "lat": 40.54994100842045, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1017}}, {"feature_id": 513911, "source_record_index": 981, "object_class": "_extgn", "native_scale": 50000, "lon": 141.54959563190778, "lat": 40.54994100842045, "attributes": {"_cm93_relation20_raw": 1017}}]
47 351 1018 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 513784, "source_record_index": 854, "object_class": "BCNLAT", "native_scale": 50000, "lon": 141.5280092020713, "lat": 40.558667212294104, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,MDHS,graph,LL F-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 1018}}, {"feature_id": 513793, "source_record_index": 863, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5280092020713, "lat": 40.558667212294104, "attributes": {"COLOUR": [3], "HEIGHT": 17, "INFORM": "2 fl in 3s", "LITCHR": 2, "QUAVEM": 1, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 5, "_cm93_relation20_raw": 1018}}]
48 351 1019 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513820, "source_record_index": 890, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.54412781567916, "lat": 40.549463245146605, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1019}}, {"feature_id": 513909, "source_record_index": 979, "object_class": "_extgn", "native_scale": 50000, "lon": 141.54412781567916, "lat": 40.549463245146605, "attributes": {"_cm93_relation20_raw": 1019}}]
49 351 1020 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513823, "source_record_index": 893, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.55782533112443, "lat": 40.545163222300296, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1020}}, {"feature_id": 513918, "source_record_index": 988, "object_class": "_extgn", "native_scale": 50000, "lon": 141.55782533112443, "lat": 40.545163222300296, "attributes": {"_cm93_relation20_raw": 1020}}]
50 351 1021 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513807, "source_record_index": 877, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52536939125952, "lat": 40.533395199960694, "attributes": {"COLOUR": [3], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.E", "_cm93_relation20_raw": 1021}}, {"feature_id": 513910, "source_record_index": 980, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52536939125952, "lat": 40.533395199960694, "attributes": {"_cm93_relation20_raw": 1021}}]
51 351 1022 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513806, "source_record_index": 876, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.5254151683256, "lat": 40.53372564780069, "attributes": {"COLOUR": [1], "LITCHR": 7, "SIGGRP": "(1)", "SORIND": "GB,MDHS,graph,LL F-6624.7.D", "_cm93_relation20_raw": 1022}}, {"feature_id": 513915, "source_record_index": 985, "object_class": "_extgn", "native_scale": 50000, "lon": 141.5254151683256, "lat": 40.53372564780069, "attributes": {"_cm93_relation20_raw": 1022}}]
52 351 1023 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513814, "source_record_index": 884, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.49825919544693, "lat": 40.55623293432891, "attributes": {"COLOUR": [1], "STATUS": [8], "_cm93_relation20_raw": 1023}}, {"feature_id": 513914, "source_record_index": 984, "object_class": "_extgn", "native_scale": 50000, "lon": 141.49825919544693, "lat": 40.55623293432891, "attributes": {"_cm93_relation20_raw": 1023}}]
53 351 1024 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513812, "source_record_index": 882, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.50759263059066, "lat": 40.53502708806053, "attributes": {"CATLIT": 6, "COLOUR": [3], "INFORM": "More than one", "_cm93_relation20_raw": 1024}}, {"feature_id": 513901, "source_record_index": 971, "object_class": "_extgn", "native_scale": 50000, "lon": 141.50759263059066, "lat": 40.53502708806053, "attributes": {"COLMAR": 11, "INFORM": "Height: 123m|Chimney|Visually conspicuous", "_cm93_relation20_raw": 1024}}]
54 351 1025 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 513817, "source_record_index": 887, "object_class": "LIGHTS", "native_scale": 50000, "lon": 141.52097987925458, "lat": 40.555318151462146, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 1025}}, {"feature_id": 513903, "source_record_index": 973, "object_class": "_extgn", "native_scale": 50000, "lon": 141.52097987925458, "lat": 40.555318151462146, "attributes": {"_cm93_relation20_raw": 1025}}]
55 693 2239 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606499, "source_record_index": 1999, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.51452696025927, "lat": 40.55241521469589, "attributes": {"COLOUR": [4], "HEIGHT": 14, "INFORM": "2 fl in 3s", "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 4, "_cm93_relation20_raw": 2239}}, {"feature_id": 606454, "source_record_index": 1954, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.51452696025927, "lat": 40.55241521469589, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6625.5", "VERLEN": 10, "_cm93_relation20_raw": 2239}}]
56 693 2240 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606511, "source_record_index": 2011, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.56767921143177, "lat": 40.54238692330532, "attributes": {"CATLIT": 8, "COLOUR": [1], "HEIGHT": 22, "INFORM": "Illuminates Hinode Iwa 430m NNW", "LITCHR": 1, "_cm93_relation20_raw": 2240}}, {"feature_id": 606453, "source_record_index": 1953, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.56767921143177, "lat": 40.54238692330532, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6621", "VERLEN": 9, "_cm93_relation20_raw": 2240}}]
57 693 2241 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606501, "source_record_index": 2001, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5759546863272, "lat": 40.53986563666468, "attributes": {"COLOUR": [1], "HEIGHT": 57, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 8, "VALNMR": 19, "_cm93_relation20_raw": 2241}}, {"feature_id": 606455, "source_record_index": 1955, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.5759546863272, "lat": 40.53986563666468, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6620", "VERLEN": 23, "_cm93_relation20_raw": 2241}}]
58 693 2242 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606507, "source_record_index": 2007, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5350198234147, "lat": 40.56587201094555, "attributes": {"COLOUR": [4], "HEIGHT": 7, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 5, "_cm93_relation20_raw": 2242}}, {"feature_id": 606456, "source_record_index": 1956, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.5350198234147, "lat": 40.56587201094555, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.86", "VERLEN": 5, "_cm93_relation20_raw": 2242}}]
59 693 2243 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606509, "source_record_index": 2009, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.54813240748382, "lat": 40.53939288485493, "attributes": {"COLOUR": [4], "HEIGHT": 10, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 5, "_cm93_relation20_raw": 2243}}, {"feature_id": 606452, "source_record_index": 1952, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.54813240748382, "lat": 40.53939288485493, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6622", "VERLEN": 8, "_cm93_relation20_raw": 2243}}]
60 693 2244 2 {"LIGHTS": 1, "TOWERS": 1} True True ["TOWERS"] 0.0 True [{"feature_id": 606508, "source_record_index": 2008, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.55521767886023, "lat": 40.536297040550764, "attributes": {"COLOUR": [4], "HEIGHT": 9, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 2244}}, {"feature_id": 606457, "source_record_index": 1957, "object_class": "TOWERS", "native_scale": 20000, "lon": 141.55521767886023, "lat": 40.536297040550764, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.4", "VERLEN": 9, "_cm93_relation20_raw": 2244}}]
61 693 2245 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606487, "source_record_index": 1987, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.54756782376322, "lat": 40.54819670438723, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2245}}, {"feature_id": 606532, "source_record_index": 2032, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.54756782376322, "lat": 40.54819670438723, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2245}}]
62 693 2246 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606484, "source_record_index": 1984, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.51764488657207, "lat": 40.545787460007524, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2246}}, {"feature_id": 606528, "source_record_index": 2028, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.51764488657207, "lat": 40.545787460007524, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2246}}]
63 693 2247 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606485, "source_record_index": 1985, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.55372738129145, "lat": 40.53761368147356, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2247}}, {"feature_id": 606531, "source_record_index": 2031, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.55372738129145, "lat": 40.53761368147356, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2247}}]
64 693 2248 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606482, "source_record_index": 1982, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.51602234416788, "lat": 40.54453705850963, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2248}}, {"feature_id": 606526, "source_record_index": 2026, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.51602234416788, "lat": 40.54453705850963, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2248}}]
65 693 2249 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606483, "source_record_index": 1983, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.5144252334628, "lat": 40.54336796282291, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2249}}, {"feature_id": 606530, "source_record_index": 2030, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5144252334628, "lat": 40.54336796282291, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2249}}]
66 693 2250 2 {"BOYSPP": 1, "LIGHTS": 1} True True ["BOYSPP"] 0.0 True [{"feature_id": 606486, "source_record_index": 1986, "object_class": "BOYSPP", "native_scale": 20000, "lon": 141.54760851448182, "lat": 40.55077866754792, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2250}}, {"feature_id": 606525, "source_record_index": 2025, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.54760851448182, "lat": 40.55077866754792, "attributes": {"COLOUR": [6], "_cm93_relation20_raw": 2250}}]
67 693 2251 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 606474, "source_record_index": 1974, "object_class": "BCNLAT", "native_scale": 20000, "lon": 141.5279752427569, "lat": 40.55872215426594, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,UKHO,graph,LL M-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 2251}}, {"feature_id": 606506, "source_record_index": 2006, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5279752427569, "lat": 40.55872215426594, "attributes": {"COLOUR": [3], "HEIGHT": 17, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 5, "_cm93_relation20_raw": 2251}}]
68 693 2252 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606517, "source_record_index": 2017, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.47915655311542, "lat": 40.58768781797142, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2252}}, {"feature_id": 606718, "source_record_index": 2218, "object_class": "_extgn", "native_scale": 20000, "lon": 141.47915655311542, "lat": 40.58768781797142, "attributes": {"_cm93_relation20_raw": 2252}}]
69 693 2253 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606519, "source_record_index": 2019, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.50487817361105, "lat": 40.55268966278586, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2253}}, {"feature_id": 606736, "source_record_index": 2236, "object_class": "_extgn", "native_scale": 20000, "lon": 141.50487817361105, "lat": 40.55268966278586, "attributes": {"_cm93_relation20_raw": 2253}}]
70 693 2254 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 606477, "source_record_index": 1977, "object_class": "BCNLAT", "native_scale": 20000, "lon": 141.55245070999536, "lat": 40.53446183378157, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624", "VERLEN": 10, "_cm93_relation20_raw": 2254}}, {"feature_id": 606502, "source_record_index": 2002, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.55245070999536, "lat": 40.53446183378157, "attributes": {"COLOUR": [3], "HEIGHT": 11, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 2254}}]
71 693 2255 2 {"BCNSPP": 1, "LIGHTS": 1} True True ["BCNSPP"] 0.0 True [{"feature_id": 606478, "source_record_index": 1978, "object_class": "BCNSPP", "native_scale": 20000, "lon": 141.53411954126562, "lat": 40.53822878284375, "attributes": {"COLMAR": 5, "SORIND": "GB,UKHO,graph,LL M-6623.2", "VERLEN": 9, "_cm93_relation20_raw": 2255}}, {"feature_id": 606510, "source_record_index": 2010, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.53411954126562, "lat": 40.53822878284375, "attributes": {"COLOUR": [4], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 4, "_cm93_relation20_raw": 2255}}]
72 693 2256 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 606473, "source_record_index": 1973, "object_class": "BCNLAT", "native_scale": 20000, "lon": 141.54682521814877, "lat": 40.5377458524923, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6623", "VERLEN": 10, "_cm93_relation20_raw": 2256}}, {"feature_id": 606505, "source_record_index": 2005, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.54682521814877, "lat": 40.5377458524923, "attributes": {"COLOUR": [3], "HEIGHT": 14, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 4, "_cm93_relation20_raw": 2256}}]
73 693 2257 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606529, "source_record_index": 2029, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.47109979083245, "lat": 40.546926016675656, "attributes": {"CATLIT": 5, "_cm93_relation20_raw": 2257}}, {"feature_id": 606727, "source_record_index": 2227, "object_class": "_extgn", "native_scale": 20000, "lon": 141.47109979083245, "lat": 40.546926016675656, "attributes": {"_cm93_relation20_raw": 2257}}]
74 693 2258 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606498, "source_record_index": 1998, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52570164885506, "lat": 40.53382127886439, "attributes": {"COLOUR": [4], "HEIGHT": 4, "LITCHR": 7, "OBJNAM": "L2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.631", "VALNMR": 4, "_cm93_relation20_raw": 2258}}, {"feature_id": 606729, "source_record_index": 2229, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52570164885506, "lat": 40.53382127886439, "attributes": {"_cm93_relation20_raw": 2258}}]
75 693 2259 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606533, "source_record_index": 2033, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.49831170889684, "lat": 40.55619131837828, "attributes": {"STATUS": [8], "_cm93_relation20_raw": 2259}}, {"feature_id": 606737, "source_record_index": 2237, "object_class": "_extgn", "native_scale": 20000, "lon": 141.49831170889684, "lat": 40.55619131837828, "attributes": {"_cm93_relation20_raw": 2259}}]
76 693 2260 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606515, "source_record_index": 2015, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5075434156794, "lat": 40.549081088805, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2260}}, {"feature_id": 606720, "source_record_index": 2220, "object_class": "_extgn", "native_scale": 20000, "lon": 141.5075434156794, "lat": 40.549081088805, "attributes": {"_cm93_relation20_raw": 2260}}]
77 693 2261 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606524, "source_record_index": 2024, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52826516412694, "lat": 40.54623983528677, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2261}}, {"feature_id": 606733, "source_record_index": 2233, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52826516412694, "lat": 40.54623983528677, "attributes": {"_cm93_relation20_raw": 2261}}]
78 693 2262 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606516, "source_record_index": 2016, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.51800601669967, "lat": 40.54032821853955, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2262}}, {"feature_id": 606716, "source_record_index": 2216, "object_class": "_extgn", "native_scale": 20000, "lon": 141.51800601669967, "lat": 40.54032821853955, "attributes": {"_cm93_relation20_raw": 2262}}]
79 693 2263 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606495, "source_record_index": 1995, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52535069140714, "lat": 40.53333831674283, "attributes": {"COLOUR": [3], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "R1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.64", "VALNMR": 4, "_cm93_relation20_raw": 2263}}, {"feature_id": 606728, "source_record_index": 2228, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52535069140714, "lat": 40.53333831674283, "attributes": {"_cm93_relation20_raw": 2263}}]
80 693 2264 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606518, "source_record_index": 2018, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.56030401868534, "lat": 40.544648883984316, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2264}}, {"feature_id": 606717, "source_record_index": 2217, "object_class": "_extgn", "native_scale": 20000, "lon": 141.56030401868534, "lat": 40.544648883984316, "attributes": {"_cm93_relation20_raw": 2264}}]
81 693 2265 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606497, "source_record_index": 1997, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52588984342862, "lat": 40.53368910010344, "attributes": {"COLOUR": [4], "HEIGHT": 4, "LITCHR": 7, "OBJNAM": "L1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.63", "VALNMR": 4, "_cm93_relation20_raw": 2265}}, {"feature_id": 606735, "source_record_index": 2235, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52588984342862, "lat": 40.53368910010344, "attributes": {"_cm93_relation20_raw": 2265}}]
82 693 2266 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606493, "source_record_index": 1993, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52561518107802, "lat": 40.53350099910942, "attributes": {"COLOUR": [1], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "C1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.62", "VALNMR": 6, "_cm93_relation20_raw": 2266}}, {"feature_id": 606726, "source_record_index": 2226, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52561518107802, "lat": 40.53350099910942, "attributes": {"_cm93_relation20_raw": 2266}}]
83 693 2267 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606500, "source_record_index": 2000, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52294485266987, "lat": 40.53044047091052, "attributes": {"COLOUR": [1], "HEIGHT": 31, "LITCHR": 1, "OBJNAM": "C1", "SORIND": "GB,UKHO,graph,LL M-6624.5", "VALNMR": 6, "_cm93_relation20_raw": 2267}}, {"feature_id": 606730, "source_record_index": 2230, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52294485266987, "lat": 40.53044047091052, "attributes": {"_cm93_relation20_raw": 2267}}]
84 693 2268 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606521, "source_record_index": 2021, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52094592111857, "lat": 40.55528669920913, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2268}}, {"feature_id": 606732, "source_record_index": 2232, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52094592111857, "lat": 40.55528669920913, "attributes": {"_cm93_relation20_raw": 2268}}]
85 693 2269 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606522, "source_record_index": 2022, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.50160257076368, "lat": 40.552715074589145, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2269}}, {"feature_id": 606722, "source_record_index": 2222, "object_class": "_extgn", "native_scale": 20000, "lon": 141.50160257076368, "lat": 40.552715074589145, "attributes": {"_cm93_relation20_raw": 2269}}]
86 693 2270 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606494, "source_record_index": 1994, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5254269865045, "lat": 40.53363317824145, "attributes": {"COLOUR": [1], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "C2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.621", "VALNMR": 6, "_cm93_relation20_raw": 2270}}, {"feature_id": 606719, "source_record_index": 2219, "object_class": "_extgn", "native_scale": 20000, "lon": 141.5254269865045, "lat": 40.53363317824145, "attributes": {"_cm93_relation20_raw": 2270}}]
87 693 2271 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606513, "source_record_index": 2013, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.53291407872706, "lat": 40.54241742215959, "attributes": {"COLOUR": [3], "STATUS": [8], "_cm93_relation20_raw": 2271}}, {"feature_id": 606731, "source_record_index": 2231, "object_class": "_extgn", "native_scale": 20000, "lon": 141.53291407872706, "lat": 40.54241742215959, "attributes": {"_cm93_relation20_raw": 2271}}]
88 693 2272 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 606476, "source_record_index": 1976, "object_class": "BCNLAT", "native_scale": 20000, "lon": 141.52043728713608, "lat": 40.53762384848427, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624.7", "VERLEN": 9, "_cm93_relation20_raw": 2272}}, {"feature_id": 606503, "source_record_index": 2003, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52043728713608, "lat": 40.53762384848427, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 3, "_cm93_relation20_raw": 2272}}]
89 693 2273 2 {"BCNLAT": 1, "LIGHTS": 1} True True ["BCNLAT"] 0.0 True [{"feature_id": 606475, "source_record_index": 1975, "object_class": "BCNLAT", "native_scale": 20000, "lon": 141.53323451813606, "lat": 40.53630720776126, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6623.6", "VERLEN": 9, "_cm93_relation20_raw": 2273}}, {"feature_id": 606504, "source_record_index": 2004, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.53323451813606, "lat": 40.53630720776126, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 7, "_cm93_relation20_raw": 2273}}]
90 693 2274 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606514, "source_record_index": 2014, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.52411979716945, "lat": 40.545101266953736, "attributes": {"COLOUR": [4], "STATUS": [8], "_cm93_relation20_raw": 2274}}, {"feature_id": 606723, "source_record_index": 2223, "object_class": "_extgn", "native_scale": 20000, "lon": 141.52411979716945, "lat": 40.545101266953736, "attributes": {"_cm93_relation20_raw": 2274}}]
91 693 2275 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606512, "source_record_index": 2012, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.53280217925092, "lat": 40.535966605369474, "attributes": {"COLOUR": [3], "STATUS": [8], "_cm93_relation20_raw": 2275}}, {"feature_id": 606721, "source_record_index": 2221, "object_class": "_extgn", "native_scale": 20000, "lon": 141.53280217925092, "lat": 40.535966605369474, "attributes": {"_cm93_relation20_raw": 2275}}]
92 693 2276 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606496, "source_record_index": 1996, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.5251777558531, "lat": 40.5334501609123, "attributes": {"COLOUR": [3], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "R2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.641", "VALNMR": 4, "_cm93_relation20_raw": 2276}}, {"feature_id": 606725, "source_record_index": 2225, "object_class": "_extgn", "native_scale": 20000, "lon": 141.5251777558531, "lat": 40.5334501609123, "attributes": {"_cm93_relation20_raw": 2276}}]
93 693 2277 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606523, "source_record_index": 2023, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.4824321559628, "lat": 40.58365441116841, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2277}}, {"feature_id": 606724, "source_record_index": 2224, "object_class": "_extgn", "native_scale": 20000, "lon": 141.4824321559628, "lat": 40.58365441116841, "attributes": {"_cm93_relation20_raw": 2277}}]
94 693 2278 2 {"LIGHTS": 1, "_extgn": 1} True True ["_extgn"] 0.0 True [{"feature_id": 606520, "source_record_index": 2020, "object_class": "LIGHTS", "native_scale": 20000, "lon": 141.54953623727556, "lat": 40.549818066898325, "attributes": {"COLOUR": [6], "STATUS": [8], "_cm93_relation20_raw": 2278}}, {"feature_id": 606734, "source_record_index": 2234, "object_class": "_extgn", "native_scale": 20000, "lon": 141.54953623727556, "lat": 40.549818066898325, "attributes": {"_cm93_relation20_raw": 2278}}]

View File

@@ -0,0 +1,546 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 / CM93 助航名称候选审计 v1
目的
====
为 CM95→NavSea `navigation_marks.chart_label_text` 找到可审计的 CM95 自有名称来源,
不使用 NEWPEC/reference PBF 名称反灌。
默认检查第一测试 AOI:
z10/914/385
lon 141.328125 .. 141.6796875
lat 40.44694705960049 .. 40.71395582628604
默认重点比例尺:
1:200000
候选来源:
1. 助航组件自身 OBJNAM / NOBJNM;
2. 同 cell、同 native_scale 的 `_texto._texta.text`;
3. 同 native_scale、邻近 cell 的 `_texto._texta.text`,仅作为低置信参考。
关联原则:
- 助航组件仍然用 `(cell_id, _cm93_relation20_raw)` 合成;
- 本脚本只审计名称,不改变 relation20 合成规则;
- 不自动把最近文字当名称;
- 输出距离和来源,由下一步确定安全规则。
输出:
cm95_nav_name_candidates_v1.json
cm95_nav_name_candidates_v1.csv
cm95_nav_name_candidates_v1.txt
执行:
python .\tools\cm95_nav_name_candidate_audit_v1.py `
--host 127.0.0.1 `
--port 3306 `
--user root `
--database cm93_chart `
--dataset-id 1 `
--native-scale 200000
"""
from __future__ import annotations
import argparse
import csv
import getpass
import json
import math
from collections import defaultdict
from datetime import datetime
from pathlib import Path
from typing import Any
import pymysql
from pymysql.cursors import DictCursor
NAV_CLASSES = {
"LIGHTS",
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
"SISTAT",
"SISTAW",
}
DIRECT_NAME_KEYS = (
"OBJNAM",
"NOBJNM",
)
DEFAULT_BBOX = (
141.328125,
40.44694705960049,
141.6796875,
40.71395582628604,
)
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password", default=None)
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument("--native-scale", type=int, default=200000)
p.add_argument("--min-lon", type=float, default=DEFAULT_BBOX[0])
p.add_argument("--min-lat", type=float, default=DEFAULT_BBOX[1])
p.add_argument("--max-lon", type=float, default=DEFAULT_BBOX[2])
p.add_argument("--max-lat", type=float, default=DEFAULT_BBOX[3])
p.add_argument(
"--radius-m",
type=float,
default=800.0,
help="每个助航对象保存的文字候选搜索半径",
)
p.add_argument(
"--candidate-limit",
type=int,
default=12,
)
p.add_argument("--output-dir", default=".")
return p.parse_args()
def json_dict(value: Any) -> dict[str, Any]:
if value is None:
return {}
if isinstance(value, dict):
return value
if isinstance(value, (bytes, bytearray, memoryview)):
value = bytes(value).decode("utf-8", "replace")
try:
obj = json.loads(value)
except Exception:
return {}
return obj if isinstance(obj, dict) else {}
def relation20(attrs: dict[str, Any]):
value = attrs.get("_cm93_relation20_raw")
if value is None:
return None
try:
return int(value)
except Exception:
return str(value)
def texta(attrs: dict[str, Any]):
value = attrs.get("_texta")
if not isinstance(value, dict):
return None, None
text = value.get("text")
prefix = value.get("prefix")
if text is None:
return None, prefix
text = str(text).strip()
return (text or None), prefix
def direct_names(attrs: dict[str, Any]):
out = []
for key in DIRECT_NAME_KEYS:
value = attrs.get(key)
if isinstance(value, str) and value.strip():
out.append({
"field": key,
"text": value.strip(),
})
return out
def haversine_m(lon1, lat1, lon2, lat2):
r = 6371008.8
p1 = math.radians(lat1)
p2 = math.radians(lat2)
dp = p2 - p1
dl = math.radians(lon2 - lon1)
a = (
math.sin(dp / 2) ** 2
+ math.cos(p1) * math.cos(p2)
* math.sin(dl / 2) ** 2
)
return 2 * r * math.asin(min(1.0, math.sqrt(a)))
def write_csv(path: Path, rows):
rows = list(rows)
fields = [
"cell_id",
"source_relative_path",
"native_scale",
"relation20",
"lon",
"lat",
"component_classes",
"component_source_record_indices",
"direct_names",
"nearest_same_cell_text",
"nearest_same_cell_distance_m",
"nearest_any_cell_text",
"nearest_any_cell_distance_m",
"same_cell_candidate_count",
"all_candidate_count",
"candidate_summary",
]
with path.open("w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=fields)
w.writeheader()
for row in rows:
out = dict(row)
for key in (
"component_classes",
"component_source_record_indices",
"direct_names",
"candidate_summary",
):
out[key] = json.dumps(
out.get(key),
ensure_ascii=False,
separators=(",", ":"),
)
w.writerow(out)
def main():
a = parse_args()
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
outdir = Path(a.output_dir).resolve()
outdir.mkdir(parents=True, exist_ok=True)
conn = pymysql.connect(
host=a.host,
port=a.port,
user=a.user,
password=a.password,
database=a.database,
charset="utf8mb4",
cursorclass=DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
)
nav_rows = []
text_rows = []
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
try:
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
placeholders = ",".join(["%s"] * len(NAV_CLASSES))
cur.execute(
f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale=%s
AND f.geometry_type='POINT'
AND f.object_class IN ({placeholders})
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
a.native_scale,
*sorted(NAV_CLASSES),
a.min_lon,
a.max_lon,
a.min_lat,
a.max_lat,
),
)
nav_rows = list(cur.fetchall())
# 扩大少量边界,避免 tile 边缘的文字候选被切掉。
lat_pad = a.radius_m / 111320.0
mid_lat = (a.min_lat + a.max_lat) / 2.0
lon_pad = (
a.radius_m
/ max(1.0, 111320.0 * math.cos(math.radians(mid_lat)))
)
cur.execute(
"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale=%s
AND f.geometry_type='POINT'
AND f.object_class='_texto'
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
a.native_scale,
a.min_lon - lon_pad,
a.max_lon + lon_pad,
a.min_lat - lat_pad,
a.max_lat + lat_pad,
),
)
text_rows = list(cur.fetchall())
conn.rollback()
finally:
conn.close()
for row in nav_rows:
row["attributes"] = json_dict(row.pop("attributes_json"))
row["relation20"] = relation20(row["attributes"])
row["lon"] = float(row["lon"])
row["lat"] = float(row["lat"])
parsed_text = []
for row in text_rows:
attrs = json_dict(row.pop("attributes_json"))
text, prefix = texta(attrs)
if not text:
continue
parsed_text.append({
"feature_id": int(row["feature_id"]),
"cell_id": int(row["cell_id"]),
"source_relative_path": str(row["source_relative_path"]),
"source_record_index": int(row["source_record_index"]),
"native_scale": int(row["native_scale"]),
"lon": float(row["lon"]),
"lat": float(row["lat"]),
"text": text,
"prefix": prefix,
})
groups = defaultdict(list)
standalone = []
for row in nav_rows:
rel = row["relation20"]
if rel is None:
standalone.append([row])
else:
groups[(int(row["cell_id"]), rel)].append(row)
nav_groups = list(groups.values()) + standalone
results = []
for members in nav_groups:
# relation20 组成员已由上一步证明同址;
# standalone 则只有一条。
lon = sum(m["lon"] for m in members) / len(members)
lat = sum(m["lat"] for m in members) / len(members)
cell_id = int(members[0]["cell_id"])
source_path = str(members[0]["source_relative_path"])
rel = members[0]["relation20"]
strong_names = []
for m in members:
for n in direct_names(m["attributes"]):
strong_names.append({
"object_class": m["object_class"],
"source_record_index": m["source_record_index"],
**n,
})
candidates = []
for t in parsed_text:
distance = haversine_m(
lon,
lat,
t["lon"],
t["lat"],
)
if distance > a.radius_m:
continue
candidates.append({
**t,
"same_cell": t["cell_id"] == cell_id,
"distance_m": round(distance, 2),
})
candidates.sort(
key=lambda c: (
not c["same_cell"],
c["distance_m"],
c["text"],
)
)
same_cell = [
c for c in candidates if c["same_cell"]
]
nearest_same = same_cell[0] if same_cell else None
nearest_any = (
min(candidates, key=lambda c: c["distance_m"])
if candidates
else None
)
results.append({
"cell_id": cell_id,
"source_relative_path": source_path,
"native_scale": a.native_scale,
"relation20": rel,
"lon": lon,
"lat": lat,
"component_classes": [
m["object_class"] for m in members
],
"component_source_record_indices": [
int(m["source_record_index"]) for m in members
],
"direct_names": strong_names,
"nearest_same_cell_text": (
nearest_same["text"] if nearest_same else None
),
"nearest_same_cell_distance_m": (
nearest_same["distance_m"] if nearest_same else None
),
"nearest_any_cell_text": (
nearest_any["text"] if nearest_any else None
),
"nearest_any_cell_distance_m": (
nearest_any["distance_m"] if nearest_any else None
),
"same_cell_candidate_count": len(same_cell),
"all_candidate_count": len(candidates),
"candidate_summary": candidates[: a.candidate_limit],
})
results.sort(
key=lambda r: (
r["cell_id"],
-1 if r["relation20"] is None else r["relation20"],
r["lon"],
r["lat"],
)
)
direct_named = sum(
1 for r in results if r["direct_names"]
)
same_100 = sum(
1
for r in results
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 100.0
)
same_250 = sum(
1
for r in results
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 250.0
)
report = {
"schema": "navsea.cm95.nav-name-candidate-audit/v1",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"native_scale": a.native_scale,
"aoi_bbox": [
a.min_lon,
a.min_lat,
a.max_lon,
a.max_lat,
],
"search_radius_m": a.radius_m,
"counts": {
"nav_component_rows": len(nav_rows),
"nav_groups": len(results),
"texto_rows_with_text": len(parsed_text),
"groups_with_direct_OBJNAM_or_NOBJNM": direct_named,
"groups_with_same_cell_text_within_100m": same_100,
"groups_with_same_cell_text_within_250m": same_250,
},
"groups": results,
"decision": (
"DATA_READY_FOR_NAME_ASSOCIATION_REVIEW"
if results
else "NO_NAV_GROUPS"
),
}
json_path = outdir / "cm95_nav_name_candidates_v1.json"
csv_path = outdir / "cm95_nav_name_candidates_v1.csv"
txt_path = outdir / "cm95_nav_name_candidates_v1.txt"
json_path.write_text(
json.dumps(
report,
ensure_ascii=False,
indent=2,
default=str,
),
encoding="utf-8",
)
write_csv(csv_path, results)
lines = [
"CM95 / CM93 助航名称候选审计 v1",
"=" * 76,
f"Native scale : {a.native_scale}",
f"Nav component rows : {len(nav_rows)}",
f"Nav groups : {len(results)}",
f"_texto rows with text : {len(parsed_text)}",
f"Groups with direct OBJNAM/NOBJNM : {direct_named}",
f"Same-cell text <=100m : {same_100}",
f"Same-cell text <=250m : {same_250}",
"",
"注意:最近文字只是候选,不代表自动确定为助航名称。",
"下一步由映射审计决定哪些关系可安全写入 chart_label_text。",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
print("")
print(json_path)
print(csv_path)
print(txt_path)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,18 @@
cell_id,source_relative_path,native_scale,relation20,lon,lat,component_classes,component_source_record_indices,direct_names,nearest_same_cell_text,nearest_same_cell_distance_m,nearest_any_cell_text,nearest_any_cell_distance_m,same_cell_candidate_count,all_candidate_count,candidate_summary
40,03900420\C\03900420.C,200000,,141.65804316559033,40.467367860055134,"[""LIGHTS""]",[4877],[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6486,141.53481130881366,40.56513638820441,"[""TOWERS"",""LIGHTS""]","[4300,4741]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6501,141.43965605140164,40.68046315791786,"[""TOWERS"",""LIGHTS""]","[4325,4781]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6510,141.6269147619469,40.49949414054503,"[""TOWERS"",""LIGHTS""]","[4291,4747]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6521,141.5676487228532,40.541909757522724,"[""TOWERS"",""LIGHTS""]","[4246,4842]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6528,141.67305804264188,40.454613089799984,"[""TOWERS"",""LIGHTS""]","[4304,4777]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6548,141.53481130881366,40.56201499793302,"[""TOWERS"",""LIGHTS""]","[4364,4830]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6558,141.51424214797476,40.55215044794532,"[""TOWERS"",""LIGHTS""]","[4259,4598]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6567,141.5765599913472,40.53922443934611,"[""TOWERS"",""LIGHTS""]","[4274,4619]",[],Same Kado,528.84,Same Kado,528.84,1,1,"[{""feature_id"":361674,""cell_id"":40,""source_relative_path"":""03900420\\C\\03900420.C"",""source_record_index"":6002,""native_scale"":200000,""lon"":141.58071044516635,""lat"":40.54278402393275,""text"":""Same Kado"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":528.84}]"
40,03900420\C\03900420.C,200000,6602,141.52785319505807,40.55864373294613,"[""BCNLAT"",""LIGHTS""]","[4439,4737]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6620,141.3592715266989,40.68775404209214,"[""BCNSPP"",""LIGHTS""]","[4540,4584]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6632,141.54707956201432,40.53735089780069,"[""BCNLAT"",""LIGHTS""]","[4422,4714]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6640,141.6516343766049,40.472369069669675,"[""BCNLAT"",""LIGHTS""]","[4460,4646]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6657,141.5203457565323,40.53735089780069,"[""BCNLAT"",""LIGHTS""]","[4492,4673]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6663,141.53426198404347,40.53797541747083,"[""BCNSPP"",""LIGHTS""]","[4538,4784]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6691,141.55232866537378,40.533978390984394,"[""BCNLAT"",""LIGHTS""]","[4500,4670]",[],,,,,0,0,[]
40,03900420\C\03900420.C,200000,6720,141.47084549113066,40.54653075073066,"[""BCNSPP"",""LIGHTS""]","[4539,4839]",[],,,,,0,0,[]
1 cell_id source_relative_path native_scale relation20 lon lat component_classes component_source_record_indices direct_names nearest_same_cell_text nearest_same_cell_distance_m nearest_any_cell_text nearest_any_cell_distance_m same_cell_candidate_count all_candidate_count candidate_summary
2 40 03900420\C\03900420.C 200000 141.65804316559033 40.467367860055134 ["LIGHTS"] [4877] [] 0 0 []
3 40 03900420\C\03900420.C 200000 6486 141.53481130881366 40.56513638820441 ["TOWERS","LIGHTS"] [4300,4741] [] 0 0 []
4 40 03900420\C\03900420.C 200000 6501 141.43965605140164 40.68046315791786 ["TOWERS","LIGHTS"] [4325,4781] [] 0 0 []
5 40 03900420\C\03900420.C 200000 6510 141.6269147619469 40.49949414054503 ["TOWERS","LIGHTS"] [4291,4747] [] 0 0 []
6 40 03900420\C\03900420.C 200000 6521 141.5676487228532 40.541909757522724 ["TOWERS","LIGHTS"] [4246,4842] [] 0 0 []
7 40 03900420\C\03900420.C 200000 6528 141.67305804264188 40.454613089799984 ["TOWERS","LIGHTS"] [4304,4777] [] 0 0 []
8 40 03900420\C\03900420.C 200000 6548 141.53481130881366 40.56201499793302 ["TOWERS","LIGHTS"] [4364,4830] [] 0 0 []
9 40 03900420\C\03900420.C 200000 6558 141.51424214797476 40.55215044794532 ["TOWERS","LIGHTS"] [4259,4598] [] 0 0 []
10 40 03900420\C\03900420.C 200000 6567 141.5765599913472 40.53922443934611 ["TOWERS","LIGHTS"] [4274,4619] [] Same Kado 528.84 Same Kado 528.84 1 1 [{"feature_id":361674,"cell_id":40,"source_relative_path":"03900420\\C\\03900420.C","source_record_index":6002,"native_scale":200000,"lon":141.58071044516635,"lat":40.54278402393275,"text":"Same Kado","prefix":[0,12,0],"same_cell":true,"distance_m":528.84}]
11 40 03900420\C\03900420.C 200000 6602 141.52785319505807 40.55864373294613 ["BCNLAT","LIGHTS"] [4439,4737] [] 0 0 []
12 40 03900420\C\03900420.C 200000 6620 141.3592715266989 40.68775404209214 ["BCNSPP","LIGHTS"] [4540,4584] [] 0 0 []
13 40 03900420\C\03900420.C 200000 6632 141.54707956201432 40.53735089780069 ["BCNLAT","LIGHTS"] [4422,4714] [] 0 0 []
14 40 03900420\C\03900420.C 200000 6640 141.6516343766049 40.472369069669675 ["BCNLAT","LIGHTS"] [4460,4646] [] 0 0 []
15 40 03900420\C\03900420.C 200000 6657 141.5203457565323 40.53735089780069 ["BCNLAT","LIGHTS"] [4492,4673] [] 0 0 []
16 40 03900420\C\03900420.C 200000 6663 141.53426198404347 40.53797541747083 ["BCNSPP","LIGHTS"] [4538,4784] [] 0 0 []
17 40 03900420\C\03900420.C 200000 6691 141.55232866537378 40.533978390984394 ["BCNLAT","LIGHTS"] [4500,4670] [] 0 0 []
18 40 03900420\C\03900420.C 200000 6720 141.47084549113066 40.54653075073066 ["BCNSPP","LIGHTS"] [4539,4839] [] 0 0 []

View File

@@ -0,0 +1,448 @@
{
"schema": "navsea.cm95.nav-name-candidate-audit/v1",
"generated_at": "2026-09-03T11:04:47",
"dataset_id": 1,
"native_scale": 200000,
"aoi_bbox": [
141.328125,
40.44694705960049,
141.6796875,
40.71395582628604
],
"search_radius_m": 800.0,
"counts": {
"nav_component_rows": 33,
"nav_groups": 17,
"texto_rows_with_text": 16,
"groups_with_direct_OBJNAM_or_NOBJNM": 0,
"groups_with_same_cell_text_within_100m": 0,
"groups_with_same_cell_text_within_250m": 0
},
"groups": [
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": null,
"lon": 141.65804316559033,
"lat": 40.467367860055134,
"component_classes": [
"LIGHTS"
],
"component_source_record_indices": [
4877
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6486,
"lon": 141.53481130881366,
"lat": 40.56513638820441,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4300,
4741
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6501,
"lon": 141.43965605140164,
"lat": 40.68046315791786,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4325,
4781
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6510,
"lon": 141.6269147619469,
"lat": 40.49949414054503,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4291,
4747
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6521,
"lon": 141.5676487228532,
"lat": 40.541909757522724,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4246,
4842
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6528,
"lon": 141.67305804264188,
"lat": 40.454613089799984,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4304,
4777
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6548,
"lon": 141.53481130881366,
"lat": 40.56201499793302,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4364,
4830
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6558,
"lon": 141.51424214797476,
"lat": 40.55215044794532,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4259,
4598
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6567,
"lon": 141.5765599913472,
"lat": 40.53922443934611,
"component_classes": [
"TOWERS",
"LIGHTS"
],
"component_source_record_indices": [
4274,
4619
],
"direct_names": [],
"nearest_same_cell_text": "Same Kado",
"nearest_same_cell_distance_m": 528.84,
"nearest_any_cell_text": "Same Kado",
"nearest_any_cell_distance_m": 528.84,
"same_cell_candidate_count": 1,
"all_candidate_count": 1,
"candidate_summary": [
{
"feature_id": 361674,
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"source_record_index": 6002,
"native_scale": 200000,
"lon": 141.58071044516635,
"lat": 40.54278402393275,
"text": "Same Kado",
"prefix": [
0,
12,
0
],
"same_cell": true,
"distance_m": 528.84
}
]
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6602,
"lon": 141.52785319505807,
"lat": 40.55864373294613,
"component_classes": [
"BCNLAT",
"LIGHTS"
],
"component_source_record_indices": [
4439,
4737
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6620,
"lon": 141.3592715266989,
"lat": 40.68775404209214,
"component_classes": [
"BCNSPP",
"LIGHTS"
],
"component_source_record_indices": [
4540,
4584
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6632,
"lon": 141.54707956201432,
"lat": 40.53735089780069,
"component_classes": [
"BCNLAT",
"LIGHTS"
],
"component_source_record_indices": [
4422,
4714
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6640,
"lon": 141.6516343766049,
"lat": 40.472369069669675,
"component_classes": [
"BCNLAT",
"LIGHTS"
],
"component_source_record_indices": [
4460,
4646
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6657,
"lon": 141.5203457565323,
"lat": 40.53735089780069,
"component_classes": [
"BCNLAT",
"LIGHTS"
],
"component_source_record_indices": [
4492,
4673
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6663,
"lon": 141.53426198404347,
"lat": 40.53797541747083,
"component_classes": [
"BCNSPP",
"LIGHTS"
],
"component_source_record_indices": [
4538,
4784
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6691,
"lon": 141.55232866537378,
"lat": 40.533978390984394,
"component_classes": [
"BCNLAT",
"LIGHTS"
],
"component_source_record_indices": [
4500,
4670
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
},
{
"cell_id": 40,
"source_relative_path": "03900420\\C\\03900420.C",
"native_scale": 200000,
"relation20": 6720,
"lon": 141.47084549113066,
"lat": 40.54653075073066,
"component_classes": [
"BCNSPP",
"LIGHTS"
],
"component_source_record_indices": [
4539,
4839
],
"direct_names": [],
"nearest_same_cell_text": null,
"nearest_same_cell_distance_m": null,
"nearest_any_cell_text": null,
"nearest_any_cell_distance_m": null,
"same_cell_candidate_count": 0,
"all_candidate_count": 0,
"candidate_summary": []
}
],
"decision": "DATA_READY_FOR_NAME_ASSOCIATION_REVIEW"
}

View File

@@ -0,0 +1,12 @@
CM95 / CM93 助航名称候选审计 v1
============================================================================
Native scale : 200000
Nav component rows : 33
Nav groups : 17
_texto rows with text : 16
Groups with direct OBJNAM/NOBJNM : 0
Same-cell text <=100m : 0
Same-cell text <=250m : 0
注意:最近文字只是候选,不代表自动确定为助航名称。
下一步由映射审计决定哪些关系可安全写入 chart_label_text。

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
CM95 / CM93 助航名称多尺度与显式关系审计 v2
==================================================================================
Dataset ID : 1
Scales : 20000,50000,200000
Nav component rows : 227
Nav groups : 136
_texto rows : 110
1:20000
groups : 62
direct names : 7
explicit text relation: 0
same-cell <= 50m : 0
same-cell <= 100m : 0
same-cell <= 250m : 15
1:50000
groups : 57
direct names : 0
explicit text relation: 0
same-cell <= 50m : 0
same-cell <= 100m : 2
same-cell <= 250m : 10
1:200000
groups : 17
direct names : 0
explicit text relation: 0
same-cell <= 50m : 0
same-cell <= 100m : 0
same-cell <= 250m : 0
注意:
- 显式关系候选优先于距离候选。
- 最近文字仍不会被脚本自动写入 chart_label_text。
- 若 20k/50k/200k 都无安全来源,则该数据源的助航名称保持为空,不从 NEWPEC 反灌。

View File

@@ -0,0 +1,137 @@
native_scale,cell_id,source_relative_path,relation20,lon,lat,component_classes,component_source_record_indices,direct_names,nav_relation_fields,explicit_text_candidates,nearest_same_cell_text,nearest_same_cell_distance_m,same_cell_candidate_count,all_candidate_count,candidate_summary
20000,693,03900420\F\03910424.F,,141.487254006117,40.55602869111419,"[""TOWERS""]",[1959],[],{},[],Kitanuma,730.41,1,1,"[{""feature_id"":606700,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2200,""native_scale"":20000,""lon"":141.4815623918527,""lat"":40.56097339975906,""text"":""Kitanuma"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":730.41,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.487370991933,40.55682149529551,"[""TOWERS""]",[1960],[],{},[],Kitanuma,673.74,1,1,"[{""feature_id"":606700,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2200,""native_scale"":20000,""lon"":141.4815623918527,""lat"":40.56097339975906,""text"":""Kitanuma"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":673.74,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.48809833852798,40.556491161360874,"[""TOWERS""]",[1958],[],{},[],Kitanuma,743.83,1,1,"[{""feature_id"":606700,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2200,""native_scale"":20000,""lon"":141.4815623918527,""lat"":40.56097339975906,""text"":""Kitanuma"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":743.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.48819497898467,40.55577458522323,"[""TOWERS""]",[1961],[],{},[],Hamana-Yachi,765.61,1,1,"[{""feature_id"":606692,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2192,""native_scale"":20000,""lon"":141.4941968599783,""lat"":40.550616027137096,""text"":""Hamana-Yachi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":765.61,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.49735547700973,40.52981512984462,"[""TOWERS""]",[1970],[],{},[],Toyama-Shinden,517.72,3,3,"[{""feature_id"":606712,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2212,""native_scale"":20000,""lon"":141.50044288528355,""lat"":40.53383653024312,""text"":""Toyama-Shinden"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":517.72,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606702,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2202,""native_scale"":20000,""lon"":141.49126712823906,""lat"":40.529042342579885,""text"":""Numadate"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":521.69,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606652,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2152,""native_scale"":20000,""lon"":141.5038354739469,""lat"":40.5271713470344,""text"":""Area 3 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":621.58,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5000054600586,40.535127801051665,"[""TOWERS""]",[1966],[],{},[],Toyama-Shinden,148.27,4,4,"[{""feature_id"":606712,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2212,""native_scale"":20000,""lon"":141.50044288528355,""lat"":40.53383653024312,""text"":""Toyama-Shinden"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":148.27,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606683,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2183,""native_scale"":20000,""lon"":141.4964857128996,""lat"":40.53749167722482,""text"":""Mabechi Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":396.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606710,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2210,""native_scale"":20000,""lon"":141.5023960397764,""lat"":40.538406703674674,""text"":""Tate"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":416.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606699,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2199,""native_scale"":20000,""lon"":141.50835214371162,""lat"":40.53415680839427,""text"":""Kawaragi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":713.59,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5003564175065,40.53742559149734,"[""TOWERS""]",[1964],[],{},[],Tate,203.98,5,5,"[{""feature_id"":606710,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2210,""native_scale"":20000,""lon"":141.5023960397764,""lat"":40.538406703674674,""text"":""Tate"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":203.98,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606683,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2183,""native_scale"":20000,""lon"":141.4964857128996,""lat"":40.53749167722482,""text"":""Mabechi Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":327.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606712,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2212,""native_scale"":20000,""lon"":141.50044288528355,""lat"":40.53383653024312,""text"":""Toyama-Shinden"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":399.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606695,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2195,""native_scale"":20000,""lon"":141.49386116154983,""lat"":40.54159903142414,""text"":""Hattaro"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":718.76,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606699,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2199,""native_scale"":20000,""lon"":141.50835214371162,""lat"":40.53415680839427,""text"":""Kawaragi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":767.26,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.51061556493377,40.53027778111349,"[""BCNSPP""]",[1980],[],{},[],Kawaragi,471.84,4,4,"[{""feature_id"":606699,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2199,""native_scale"":20000,""lon"":141.50835214371162,""lat"":40.53415680839427,""text"":""Kawaragi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":471.84,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606653,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2153,""native_scale"":20000,""lon"":141.51512206201883,""lat"":40.52610363595054,""text"":""Area 4 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":600.42,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":618.09,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606652,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2152,""native_scale"":20000,""lon"":141.5038354739469,""lat"":40.5271713470344,""text"":""Area 3 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":669.09,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5108444502259,40.531909745248655,"[""BCNSPP""]",[1979],[],{},[],Kawaragi,326.8,5,5,"[{""feature_id"":606699,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2199,""native_scale"":20000,""lon"":141.50835214371162,""lat"":40.53415680839427,""text"":""Kawaragi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":326.8,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":568.37,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606653,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2153,""native_scale"":20000,""lon"":141.51512206201883,""lat"":40.52610363595054,""text"":""Area 4 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":739.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606663,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2163,""native_scale"":20000,""lon"":141.51672934540358,""lat"":40.53728325278595,""text"":""Service Co., Inc."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":777.4,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606652,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2152,""native_scale"":20000,""lon"":141.5038354739469,""lat"":40.5271713470344,""text"":""Area 3 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":792.79,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5214392960816,40.52781196552014,"[""TOWERS""]",[1962],[],{},[],Tate Hana,111.99,9,9,"[{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":111.99,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":192.38,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606674,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2174,""native_scale"":20000,""lon"":141.51944036453034,""lat"":40.52694255323407,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":194.65,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606669,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2169,""native_scale"":20000,""lon"":141.51948105524897,""lat"":40.52654597546327,""text"":""(Konakano)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":217.28,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606685,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2185,""native_scale"":20000,""lon"":141.52122058346913,""lat"":40.52476643093591,""text"":""Niida Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":339.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":514.47,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606714,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2214,""native_scale"":20000,""lon"":141.525121806115,""lat"":40.52382579545554,""text"":""Uenoyama"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":541.61,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606653,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2153,""native_scale"":20000,""lon"":141.51512206201883,""lat"":40.52610363595054,""text"":""Area 4 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":566.71,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":569.22,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5214392960816,40.52813227246671,"[""SISTAT""]",[2046],[],{},[],Tate Hana,109.72,9,9,"[{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":109.72,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606674,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2174,""native_scale"":20000,""lon"":141.51944036453034,""lat"":40.52694255323407,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":214.58,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":219.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606669,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2169,""native_scale"":20000,""lon"":141.51948105524897,""lat"":40.52654597546327,""text"":""(Konakano)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":241.88,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606685,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2185,""native_scale"":20000,""lon"":141.52122058346913,""lat"":40.52476643093591,""text"":""Niida Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":374.72,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":525.02,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":540.46,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606714,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2214,""native_scale"":20000,""lon"":141.525121806115,""lat"":40.52382579545554,""text"":""Uenoyama"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":571.12,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606653,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2153,""native_scale"":20000,""lon"":141.51512206201883,""lat"":40.52610363595054,""text"":""Area 4 Koyo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":579.62,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.52367219926484,40.52990155944516,"[""SISTAT""]",[2047],[],{},[],Tate Hana,363.04,10,10,"[{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":363.04,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":377.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":479.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606674,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2174,""native_scale"":20000,""lon"":141.51944036453034,""lat"":40.52694255323407,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":485.99,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606669,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2169,""native_scale"":20000,""lon"":141.51948105524897,""lat"":40.52654597546327,""text"":""(Konakano)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":514.49,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":566.22,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606685,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2185,""native_scale"":20000,""lon"":141.52122058346913,""lat"":40.52476643093591,""text"":""Niida Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":607.44,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606714,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2214,""native_scale"":20000,""lon"":141.525121806115,""lat"":40.52382579545554,""text"":""Uenoyama"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":686.61,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":696.11,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":700.69,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.54550785613407,40.549177658809995,"[""LIGHTS""]",[2027],[],{},[],,,0,0,[]
20000,693,03900420\F\03910424.F,,141.55333573312492,40.526886625741874,"[""TOWERS""]",[1967],[],{},[],Sunamori,163.04,5,5,"[{""feature_id"":606709,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2209,""native_scale"":20000,""lon"":141.55269485430696,""lat"":40.525503676544034,""text"":""Sunamori"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":163.04,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606654,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2154,""native_scale"":20000,""lon"":141.54897165355496,""lat"":40.52447661492469,""text"":""Area 5 Shirogane"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":455.93,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":498.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":639.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":655.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.55378333102954,40.527262864335846,"[""TOWERS""]",[1968],[],{},[],Sunamori,216.17,5,5,"[{""feature_id"":606709,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2209,""native_scale"":20000,""lon"":141.55269485430696,""lat"":40.525503676544034,""text"":""Sunamori"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":216.17,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606654,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2154,""native_scale"":20000,""lon"":141.54897165355496,""lat"":40.52447661492469,""text"":""Area 5 Shirogane"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":511.25,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":518.62,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":587.75,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":614.98,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.553798590049,40.526698505652824,"[""TOWERS""]",[1963],[],{},[],Sunamori,162.34,5,5,"[{""feature_id"":606709,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2209,""native_scale"":20000,""lon"":141.55269485430696,""lat"":40.525503676544034,""text"":""Sunamori"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":162.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606654,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2154,""native_scale"":20000,""lon"":141.54897165355496,""lat"":40.52447661492469,""text"":""Area 5 Shirogane"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":476.96,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":542.4,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":647.61,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":677.71,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.55411902945798,40.52698322774454,"[""TOWERS""]",[1972],[],{},[],Sunamori,203.85,5,5,"[{""feature_id"":606709,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2209,""native_scale"":20000,""lon"":141.55269485430696,""lat"":40.525503676544034,""text"":""Sunamori"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":203.85,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606654,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2154,""native_scale"":20000,""lon"":141.54897165355496,""lat"":40.52447661492469,""text"":""Area 5 Shirogane"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":516.69,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":555.57,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":610.12,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":648.21,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.55427670599258,40.53193516493641,"[""TOWERS""]",[1971],[],{},[],Hachinohe Fishing Harbour (Same),122.06,6,6,"[{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":122.06,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":138.85,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":520.1,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":645.07,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":720.32,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606709,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2209,""native_scale"":20000,""lon"":141.55269485430696,""lat"":40.525503676544034,""text"":""Sunamori"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":727.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.5546683541591,40.532753673727576,"[""TOWERS""]",[1969],[],{},[],Hachinohe Fishing Harbour (Same),110.53,6,6,"[{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":110.53,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":110.81,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":433.57,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":624.98,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":725.58,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":746.97,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.55547708219132,40.535127801051665,"[""SISTAW""]",[2048],[],{},[],Kami-Same,261.54,6,6,"[{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":261.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":314.7,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":316.05,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":371.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":475.79,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606705,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2205,""native_scale"":20000,""lon"":141.56257761258715,""lat"":40.537257835127086,""text"":""Shimo-Matsunaeba"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":645.1,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.55552285924972,40.53378060850419,"[""TOWERS""]",[1965],[],{},[],Hinode,165.6,6,6,"[{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":165.6,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":213.66,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":307.02,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":489.93,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":616.07,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606705,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2205,""native_scale"":20000,""lon"":141.56257761258715,""lat"":40.537257835127086,""text"":""Shimo-Matsunaeba"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":710.59,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,,141.57670746462134,40.53993171998525,"[""BCNSPP""]",[1981],[],{},[],Same Kado,178.61,9,9,"[{""feature_id"":606661,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2161,""native_scale"":20000,""lon"":141.5748967276436,""lat"":40.54076029762526,""text"":""Same Kado"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":178.61,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606667,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2167,""native_scale"":20000,""lon"":141.5763209027946,""lat"":40.543855935677584,""text"":""Todo Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":437.57,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606687,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2187,""native_scale"":20000,""lon"":141.5735793656289,""lat"":40.54424224499966,""text"":""Okitonda"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":547.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606688,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2188,""native_scale"":20000,""lon"":141.58198199901997,""lat"":40.543093476529926,""text"":""Saku Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":567.67,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606704,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2204,""native_scale"":20000,""lon"":141.5761581399202,""lat"":40.53474143916679,""text"":""Senzogakubo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":579.0,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606680,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2180,""native_scale"":20000,""lon"":141.58295348992658,""lat"":40.54273765929082,""text"":""Kankitsu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":613.12,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606690,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2190,""native_scale"":20000,""lon"":141.58495242147782,""lat"":40.53972330313749,""text"":""Yahazukomone"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":697.11,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606677,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2177,""native_scale"":20000,""lon"":141.58476422690433,""lat"":40.53782210488448,""text"":""Hon-Karimata"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":720.11,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606706,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2206,""native_scale"":20000,""lon"":141.56734859934312,""lat"":40.53952505236351,""text"":""Shimo-Mekurakubo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":792.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2239,141.51452696025927,40.55241521469589,"[""TOWERS"",""LIGHTS""]","[1954,1999]",[],"{""1954"":{""_cm93_relation20_raw"":2239},""1999"":{""_cm93_relation20_raw"":2239}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2240,141.56767921143177,40.54238692330532,"[""TOWERS"",""LIGHTS""]","[1953,2011]",[],"{""1953"":{""_cm93_relation20_raw"":2240},""2011"":{""_cm93_relation20_raw"":2240}}",[],O Saki,166.43,10,10,"[{""feature_id"":606659,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2159,""native_scale"":20000,""lon"":141.56571079791942,""lat"":40.54243775472137,""text"":""O Saki"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":166.43,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606672,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2172,""native_scale"":20000,""lon"":141.5649122425669,""lat"":40.541878607023406,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":240.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606668,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2168,""native_scale"":20000,""lon"":141.5648969835474,""lat"":40.54151261691194,""text"":""(Ebisuhama)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":254.41,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606706,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2206,""native_scale"":20000,""lon"":141.56734859934312,""lat"":40.53952505236351,""text"":""Shimo-Mekurakubo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":319.45,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606666,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2166,""native_scale"":20000,""lon"":141.56636184941704,""lat"":40.546072100989115,""text"":""Hinode Iwa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":424.62,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606687,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2187,""native_scale"":20000,""lon"":141.5735793656289,""lat"":40.54424224499966,""text"":""Okitonda"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":539.55,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606686,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2186,""native_scale"":20000,""lon"":141.56839129900726,""lat"":40.547607108287096,""text"":""Ogomune"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":583.57,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606661,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2161,""native_scale"":20000,""lon"":141.5748967276436,""lat"":40.54076029762526,""text"":""Same Kado"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":636.14,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606705,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2205,""native_scale"":20000,""lon"":141.56257761258715,""lat"":40.537257835127086,""text"":""Shimo-Matsunaeba"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":714.93,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606667,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2167,""native_scale"":20000,""lon"":141.5763209027946,""lat"":40.543855935677584,""text"":""Todo Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":748.26,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2241,141.5759546863272,40.53986563666468,"[""TOWERS"",""LIGHTS""]","[1955,2001]",[],"{""1955"":{""_cm93_relation20_raw"":2241},""2001"":{""_cm93_relation20_raw"":2241}}",[],Same Kado,133.75,9,9,"[{""feature_id"":606661,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2161,""native_scale"":20000,""lon"":141.5748967276436,""lat"":40.54076029762526,""text"":""Same Kado"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":133.75,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606667,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2167,""native_scale"":20000,""lon"":141.5763209027946,""lat"":40.543855935677584,""text"":""Todo Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":444.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606687,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2187,""native_scale"":20000,""lon"":141.5735793656289,""lat"":40.54424224499966,""text"":""Okitonda"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":526.42,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606704,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2204,""native_scale"":20000,""lon"":141.5761581399202,""lat"":40.53474143916679,""text"":""Senzogakubo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":570.04,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606688,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2188,""native_scale"":20000,""lon"":141.58198199901997,""lat"":40.543093476529926,""text"":""Saku Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":623.08,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606680,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2180,""native_scale"":20000,""lon"":141.58295348992658,""lat"":40.54273765929082,""text"":""Kankitsu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":672.12,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606706,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2206,""native_scale"":20000,""lon"":141.56734859934312,""lat"":40.53952505236351,""text"":""Shimo-Mekurakubo"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":728.23,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606690,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2190,""native_scale"":20000,""lon"":141.58495242147782,""lat"":40.53972330313749,""text"":""Yahazukomone"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":760.5,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606677,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2177,""native_scale"":20000,""lon"":141.58476422690433,""lat"":40.53782210488448,""text"":""Hon-Karimata"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":778.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2242,141.5350198234147,40.56587201094555,"[""TOWERS"",""LIGHTS""]","[1956,2007]",[],"{""1956"":{""_cm93_relation20_raw"":2242},""2007"":{""_cm93_relation20_raw"":2242}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2243,141.54813240748382,40.53939288485493,"[""TOWERS"",""LIGHTS""]","[1952,2009]",[],"{""1952"":{""_cm93_relation20_raw"":2243},""2009"":{""_cm93_relation20_raw"":2243}}",[],Ko Ne,682.88,1,1,"[{""feature_id"":606682,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2182,""native_scale"":20000,""lon"":141.5536409135144,""lat"":40.54388643386297,""text"":""Ko Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":682.88,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2244,141.55521767886023,40.536297040550764,"[""TOWERS"",""LIGHTS""]","[1957,2008]",[],"{""1957"":{""_cm93_relation20_raw"":2244},""2008"":{""_cm93_relation20_raw"":2244}}",[],Kami-Same,304.17,6,6,"[{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":304.17,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":309.02,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":370.06,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":420.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":446.33,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606705,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2205,""native_scale"":20000,""lon"":141.56257761258715,""lat"":40.537257835127086,""text"":""Shimo-Matsunaeba"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":631.08,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2245,141.54756782376322,40.54819670438723,"[""BOYSPP"",""LIGHTS""]","[1987,2032]",[],"{""1987"":{""_cm93_relation20_raw"":2245},""2032"":{""_cm93_relation20_raw"":2245}}",[],Ko Ne,702.16,1,1,"[{""feature_id"":606682,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2182,""native_scale"":20000,""lon"":141.5536409135144,""lat"":40.54388643386297,""text"":""Ko Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":702.16,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2246,141.51764488657207,40.545787460007524,"[""BOYSPP"",""LIGHTS""]","[1984,2028]",[],"{""1984"":{""_cm93_relation20_raw"":2246},""2028"":{""_cm93_relation20_raw"":2246}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2247,141.55372738129145,40.53761368147356,"[""BOYSPP"",""LIGHTS""]","[1985,2031]",[],"{""1985"":{""_cm93_relation20_raw"":2247},""2031"":{""_cm93_relation20_raw"":2247}}",[],Kabu Shima,365.74,7,7,"[{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":365.74,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":400.19,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":483.56,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":537.91,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":616.11,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606682,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2182,""native_scale"":20000,""lon"":141.5536409135144,""lat"":40.54388643386297,""text"":""Ko Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":697.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606705,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2205,""native_scale"":20000,""lon"":141.56257761258715,""lat"":40.537257835127086,""text"":""Shimo-Matsunaeba"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":748.95,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2248,141.51602234416788,40.54453705850963,"[""BOYSPP"",""LIGHTS""]","[1982,2026]",[],"{""1982"":{""_cm93_relation20_raw"":2248},""2026"":{""_cm93_relation20_raw"":2248}}",[],Toyosu,681.35,2,2,"[{""feature_id"":606713,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2213,""native_scale"":20000,""lon"":141.51138360224738,""lat"":40.53952505236351,""text"":""Toyosu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":681.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606660,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2160,""native_scale"":20000,""lon"":141.51662761860706,""lat"":40.5377102680129,""text"":""Pier for Tohoku Port"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":760.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2249,141.5144252334628,40.54336796282291,"[""BOYSPP"",""LIGHTS""]","[1983,2030]",[],"{""1983"":{""_cm93_relation20_raw"":2249},""2030"":{""_cm93_relation20_raw"":2249}}",[],Toyosu,498.65,3,3,"[{""feature_id"":606713,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2213,""native_scale"":20000,""lon"":141.51138360224738,""lat"":40.53952505236351,""text"":""Toyosu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":498.65,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606660,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2160,""native_scale"":20000,""lon"":141.51662761860706,""lat"":40.5377102680129,""text"":""Pier for Tohoku Port"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":656.06,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606663,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2163,""native_scale"":20000,""lon"":141.51672934540358,""lat"":40.53728325278595,""text"":""Service Co., Inc."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":704.05,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2250,141.54760851448182,40.55077866754792,"[""BOYSPP"",""LIGHTS""]","[1986,2025]",[],"{""1986"":{""_cm93_relation20_raw"":2250},""2025"":{""_cm93_relation20_raw"":2250}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2251,141.5279752427569,40.55872215426594,"[""BCNLAT"",""LIGHTS""]","[1974,2006]",[],"{""1974"":{""_cm93_relation20_raw"":2251},""2006"":{""_cm93_relation20_raw"":2251}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2252,141.47915655311542,40.58768781797142,"[""LIGHTS"",""_extgn""]","[2017,2218]",[],"{""2017"":{""_cm93_relation20_raw"":2252},""2218"":{""_cm93_relation20_raw"":2252}}",[],Ichikawa Basin,334.87,1,1,"[{""feature_id"":606678,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2178,""native_scale"":20000,""lon"":141.47547404308204,""lat"":40.586570273697056,""text"":""Ichikawa Basin"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":334.87,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2253,141.50487817361105,40.55268966278586,"[""LIGHTS"",""_extgn""]","[2019,2236]",[],"{""2019"":{""_cm93_relation20_raw"":2253},""2236"":{""_cm93_relation20_raw"":2253}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2254,141.55245070999536,40.53446183378157,"[""BCNLAT"",""LIGHTS""]","[1977,2002]",[],"{""1977"":{""_cm93_relation20_raw"":2254},""2002"":{""_cm93_relation20_raw"":2254}}",[],Hachinohe Fishing Harbour (Same),201.79,6,6,"[{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":201.79,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606697,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2197,""native_scale"":20000,""lon"":141.55584329865871,""lat"":40.532311375187646,""text"":""Hinode"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":373.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606698,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2198,""native_scale"":20000,""lon"":141.55856449046513,""lat"":40.53529047907352,""text"":""Kami-Same"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":524.82,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606655,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2155,""native_scale"":20000,""lon"":141.55846276366864,""lat"":40.53757809692398,""text"":""Kabu Island Marine Park"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":614.98,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":673.81,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606651,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2151,""native_scale"":20000,""lon"":141.54794421291032,""lat"":40.52869661907635,""text"":""Area 2 Chikkogai"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":745.67,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2255,141.53411954126562,40.53822878284375,"[""BCNSPP"",""LIGHTS""]","[1978,2010]",[],"{""1978"":{""_cm93_relation20_raw"":2255},""2010"":{""_cm93_relation20_raw"":2255}}",[],Kawaragi No 1 Wharf [Port Island],634.57,1,1,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":634.57,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2256,141.54682521814877,40.5377458524923,"[""BCNLAT"",""LIGHTS""]","[1973,2005]",[],"{""1973"":{""_cm93_relation20_raw"":2256},""2005"":{""_cm93_relation20_raw"":2256}}",[],Hachinohe Fishing Harbour (Same),780.69,1,1,"[{""feature_id"":606671,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2171,""native_scale"":20000,""lon"":141.55336116482405,""lat"":40.53278417696755,""text"":""Hachinohe Fishing Harbour (Same)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":780.69,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2257,141.47109979083245,40.546926016675656,"[""LIGHTS"",""_extgn""]","[2029,2227]",[],"{""2029"":{""_cm93_relation20_raw"":2257},""2227"":{""_cm93_relation20_raw"":2257}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2258,141.52570164885506,40.53382127886439,"[""LIGHTS"",""_extgn""]","[1998,2229]","[{""object_class"":""LIGHTS"",""source_record_index"":1998,""field"":""OBJNAM"",""text"":""L2""}]","{""1998"":{""_cm93_relation20_raw"":2258},""2229"":{""_cm93_relation20_raw"":2258}}",[],Kawaragi No 1 Wharf [Port Island],438.58,5,5,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":438.58,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":699.99,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":716.51,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":723.25,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":796.38,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2259,141.49831170889684,40.55619131837828,"[""LIGHTS"",""_extgn""]","[2033,2237]",[],"{""2033"":{""_cm93_relation20_raw"":2259},""2237"":{""_cm93_relation20_raw"":2259}}",[],Hamana-Yachi,710.77,1,1,"[{""feature_id"":606692,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2192,""native_scale"":20000,""lon"":141.4941968599783,""lat"":40.550616027137096,""text"":""Hamana-Yachi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":710.77,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2260,141.5075434156794,40.549081088805,"[""LIGHTS"",""_extgn""]","[2015,2220]",[],"{""2015"":{""_cm93_relation20_raw"":2260},""2220"":{""_cm93_relation20_raw"":2260}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2261,141.52826516412694,40.54623983528677,"[""LIGHTS"",""_extgn""]","[2024,2233]",[],"{""2024"":{""_cm93_relation20_raw"":2261},""2233"":{""_cm93_relation20_raw"":2261}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2262,141.51800601669967,40.54032821853955,"[""LIGHTS"",""_extgn""]","[2016,2216]",[],"{""2016"":{""_cm93_relation20_raw"":2262},""2216"":{""_cm93_relation20_raw"":2262}}",[],Pier for Tohoku Port,313.54,4,4,"[{""feature_id"":606660,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2160,""native_scale"":20000,""lon"":141.51662761860706,""lat"":40.5377102680129,""text"":""Pier for Tohoku Port"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":313.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606663,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2163,""native_scale"":20000,""lon"":141.51672934540358,""lat"":40.53728325278595,""text"":""Service Co., Inc."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":355.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606713,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2213,""native_scale"":20000,""lon"":141.51138360224738,""lat"":40.53952505236351,""text"":""Toyosu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":566.7,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":786.16,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2263,141.52535069140714,40.53333831674283,"[""LIGHTS"",""_extgn""]","[1995,2228]","[{""object_class"":""LIGHTS"",""source_record_index"":1995,""field"":""OBJNAM"",""text"":""R1""}]","{""1995"":{""_cm93_relation20_raw"":2263},""2228"":{""_cm93_relation20_raw"":2263}}",[],Kawaragi No 1 Wharf [Port Island],497.15,7,7,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":497.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":674.28,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":689.19,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":710.52,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":735.56,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":768.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":781.17,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2264,141.56030401868534,40.544648883984316,"[""LIGHTS"",""_extgn""]","[2018,2217]",[],"{""2018"":{""_cm93_relation20_raw"":2264},""2217"":{""_cm93_relation20_raw"":2264}}",[],Hachinohe Fishing Harbour,496.5,7,7,"[{""feature_id"":606672,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2172,""native_scale"":20000,""lon"":141.5649122425669,""lat"":40.541878607023406,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":496.5,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606659,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2159,""native_scale"":20000,""lon"":141.56571079791942,""lat"":40.54243775472137,""text"":""O Saki"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":518.82,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606668,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2168,""native_scale"":20000,""lon"":141.5648969835474,""lat"":40.54151261691194,""text"":""(Ebisuhama)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":521.77,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606666,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2166,""native_scale"":20000,""lon"":141.56636184941704,""lat"":40.546072100989115,""text"":""Hinode Iwa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":535.77,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606682,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2182,""native_scale"":20000,""lon"":141.5536409135144,""lat"":40.54388643386297,""text"":""Ko Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":569.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606656,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2156,""native_scale"":20000,""lon"":141.55759299955852,""lat"":40.5390929653105,""text"":""Kabu Shima"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":658.9,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606686,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2186,""native_scale"":20000,""lon"":141.56839129900726,""lat"":40.547607108287096,""text"":""Ogomune"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":758.39,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2265,141.52588984342862,40.53368910010344,"[""LIGHTS"",""_extgn""]","[1997,2235]","[{""object_class"":""LIGHTS"",""source_record_index"":1997,""field"":""OBJNAM"",""text"":""L1""}]","{""1997"":{""_cm93_relation20_raw"":2265},""2235"":{""_cm93_relation20_raw"":2265}}",[],Kawaragi No 1 Wharf [Port Island],450.52,6,6,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":450.52,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":678.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":701.59,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":727.86,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":794.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":798.81,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2266,141.52561518107802,40.53350099910942,"[""LIGHTS"",""_extgn""]","[1993,2226]","[{""object_class"":""LIGHTS"",""source_record_index"":1993,""field"":""OBJNAM"",""text"":""C1""}]","{""1993"":{""_cm93_relation20_raw"":2266},""2226"":{""_cm93_relation20_raw"":2266}}",[],Kawaragi No 1 Wharf [Port Island],474.92,6,6,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":474.92,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":682.58,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":700.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":704.84,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":763.46,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":782.05,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2267,141.52294485266987,40.53044047091052,"[""LIGHTS"",""_extgn""]","[2000,2230]","[{""object_class"":""LIGHTS"",""source_record_index"":2000,""field"":""OBJNAM"",""text"":""C1""}]","{""2000"":{""_cm93_relation20_raw"":2267},""2230"":{""_cm93_relation20_raw"":2267}}",[],Tate Hana,356.94,10,10,"[{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":356.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":433.07,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":486.39,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606674,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2174,""native_scale"":20000,""lon"":141.51944036453034,""lat"":40.52694255323407,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":488.89,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606669,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2169,""native_scale"":20000,""lon"":141.51948105524897,""lat"":40.52654597546327,""text"":""(Konakano)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":522.72,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":565.4,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606685,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2185,""native_scale"":20000,""lon"":141.52122058346913,""lat"":40.52476643093591,""text"":""Niida Kawa"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":647.54,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606714,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2214,""native_scale"":20000,""lon"":141.525121806115,""lat"":40.52382579545554,""text"":""Uenoyama"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":758.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":762.13,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":768.99,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2268,141.52094592111857,40.55528669920913,"[""LIGHTS"",""_extgn""]","[2021,2232]",[],"{""2021"":{""_cm93_relation20_raw"":2268},""2232"":{""_cm93_relation20_raw"":2268}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2269,141.50160257076368,40.552715074589145,"[""LIGHTS"",""_extgn""]","[2022,2222]",[],"{""2022"":{""_cm93_relation20_raw"":2269},""2222"":{""_cm93_relation20_raw"":2269}}",[],Hamana-Yachi,667.81,1,1,"[{""feature_id"":606692,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2192,""native_scale"":20000,""lon"":141.4941968599783,""lat"":40.550616027137096,""text"":""Hamana-Yachi"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":667.81,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2270,141.5254269865045,40.53363317824145,"[""LIGHTS"",""_extgn""]","[1994,2219]","[{""object_class"":""LIGHTS"",""source_record_index"":1994,""field"":""OBJNAM"",""text"":""C2""}]","{""1994"":{""_cm93_relation20_raw"":2270},""2219"":{""_cm93_relation20_raw"":2270}}",[],Kawaragi No 1 Wharf [Port Island],463.74,6,6,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":463.74,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":688.47,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":704.19,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":726.48,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":765.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":799.52,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2271,141.53291407872706,40.54241742215959,"[""LIGHTS"",""_extgn""]","[2013,2231]",[],"{""2013"":{""_cm93_relation20_raw"":2271},""2231"":{""_cm93_relation20_raw"":2271}}",[],Kawaragi No 1 Wharf [Port Island],745.65,1,1,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":745.65,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2272,141.52043728713608,40.53762384848427,"[""BCNLAT"",""LIGHTS""]","[1976,2003]",[],"{""1976"":{""_cm93_relation20_raw"":2272},""2003"":{""_cm93_relation20_raw"":2272}}",[],"Service Co., Inc.",315.62,5,5,"[{""feature_id"":606663,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2163,""native_scale"":20000,""lon"":141.51672934540358,""lat"":40.53728325278595,""text"":""Service Co., Inc."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":315.62,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606660,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2160,""native_scale"":20000,""lon"":141.51662761860706,""lat"":40.5377102680129,""text"":""Pier for Tohoku Port"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":322.08,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":524.46,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":670.56,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606713,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2213,""native_scale"":20000,""lon"":141.51138360224738,""lat"":40.53952505236351,""text"":""Toyosu"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":793.75,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2273,141.53323451813606,40.53630720776126,"[""BCNLAT"",""LIGHTS""]","[1975,2004]",[],"{""1975"":{""_cm93_relation20_raw"":2273},""2004"":{""_cm93_relation20_raw"":2273}}",[],Kawaragi No 1 Wharf [Port Island],578.19,3,3,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":578.19,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":749.06,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":780.0,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2274,141.52411979716945,40.545101266953736,"[""LIGHTS"",""_extgn""]","[2014,2223]",[],"{""2014"":{""_cm93_relation20_raw"":2274},""2223"":{""_cm93_relation20_raw"":2274}}",[],,,0,0,[]
20000,693,03900420\F\03910424.F,2275,141.53280217925092,40.535966605369474,"[""LIGHTS"",""_extgn""]","[2012,2221]",[],"{""2012"":{""_cm93_relation20_raw"":2275},""2221"":{""_cm93_relation20_raw"":2275}}",[],Kawaragi No 1 Wharf [Port Island],555.07,3,3,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":555.07,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":706.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":738.0,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2276,141.5251777558531,40.5334501609123,"[""LIGHTS"",""_extgn""]","[1996,2225]","[{""object_class"":""LIGHTS"",""source_record_index"":1996,""field"":""OBJNAM"",""text"":""R2""}]","{""1996"":{""_cm93_relation20_raw"":2276},""2225"":{""_cm93_relation20_raw"":2276}}",[],Kawaragi No 1 Wharf [Port Island],488.52,7,7,"[{""feature_id"":606657,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2157,""native_scale"":20000,""lon"":141.52664262172271,""lat"":40.53770010101532,""text"":""Kawaragi No 1 Wharf [Port Island]"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":488.52,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606715,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2215,""native_scale"":20000,""lon"":141.5175685914747,""lat"":40.53200125607943,""text"":""Uheikawara"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":662.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606673,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2173,""native_scale"":20000,""lon"":141.5319018971019,""lat"":40.52964735441949,""text"":""Hachinohe Fishing Harbour"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":708.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606670,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2170,""native_scale"":20000,""lon"":141.53193241514083,""lat"":40.529362643645946,""text"":""(Tatehana)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":729.7,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606665,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2165,""native_scale"":20000,""lon"":141.52014736576604,""lat"":40.52803567212025,""text"":""Tate Hana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":737.04,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606708,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2208,""native_scale"":20000,""lon"":141.5273089322398,""lat"":40.52658665021444,""text"":""Shinminato"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":784.16,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":606711,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2211,""native_scale"":20000,""lon"":141.5229906297283,""lat"":40.52654597546327,""text"":""Tatehana"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":789.65,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2277,141.4824321559628,40.58365441116841,"[""LIGHTS"",""_extgn""]","[2023,2224]",[],"{""2023"":{""_cm93_relation20_raw"":2277},""2224"":{""_cm93_relation20_raw"":2277}}",[],Ichikawa Basin,671.1,1,1,"[{""feature_id"":606678,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2178,""native_scale"":20000,""lon"":141.47547404308204,""lat"":40.586570273697056,""text"":""Ichikawa Basin"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":671.1,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
20000,693,03900420\F\03910424.F,2278,141.54953623727556,40.549818066898325,"[""LIGHTS"",""_extgn""]","[2020,2234]",[],"{""2020"":{""_cm93_relation20_raw"":2278},""2234"":{""_cm93_relation20_raw"":2278}}",[],Ko Ne,745.2,1,1,"[{""feature_id"":606682,""cell_id"":693,""source_relative_path"":""03900420\\F\\03910424.F"",""source_record_index"":2182,""native_scale"":20000,""lon"":141.5536409135144,""lat"":40.54388643386297,""text"":""Ko Ne"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":745.2,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.48717605911006,40.55602965032755,"[""TOWERS""]",[847],[],{},[],HACHINOHE,533.7,5,5,"[{""feature_id"":513876,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":946,""native_scale"":50000,""lon"":141.48158617070516,""lat"":40.558265740394994,""text"":""HACHINOHE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":533.7,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513897,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":967,""native_scale"":50000,""lon"":141.48120469515436,""lat"":40.55764065910144,""text"":""STEEL JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":535.33,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513875,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":945,""native_scale"":50000,""lon"":141.48103684591197,""lat"":40.55301589260543,""text"":""H A C H I T A R O"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":617.51,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513885,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":955,""native_scale"":50000,""lon"":141.48523307697113,""lat"":40.561558755232554,""text"":""MITSUBUSHI JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":636.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513889,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":959,""native_scale"":50000,""lon"":141.4954515353928,""lat"":40.55533848010609,""text"":""No 1 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":703.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.48734390835241,40.556837700583436,"[""TOWERS""]",[843],[],{},[],HACHINOHE,511.68,5,5,"[{""feature_id"":513876,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":946,""native_scale"":50000,""lon"":141.48158617070516,""lat"":40.558265740394994,""text"":""HACHINOHE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":511.68,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513897,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":967,""native_scale"":50000,""lon"":141.48120469515436,""lat"":40.55764065910144,""text"":""STEEL JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":526.28,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513885,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":955,""native_scale"":50000,""lon"":141.48523307697113,""lat"":40.561558755232554,""text"":""MITSUBUSHI JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":554.42,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513875,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":945,""native_scale"":50000,""lon"":141.48103684591197,""lat"":40.55301589260543,""text"":""H A C H I T A R O"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":681.56,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513889,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":959,""native_scale"":50000,""lon"":141.4954515353928,""lat"":40.55533848010609,""text"":""No 1 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":704.95,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.48806616872866,40.55652769503456,"[""TOWERS""]",[836],[],{},[],HACHINOHE,580.55,5,5,"[{""feature_id"":513876,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":946,""native_scale"":50000,""lon"":141.48158617070516,""lat"":40.558265740394994,""text"":""HACHINOHE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":580.55,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513897,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":967,""native_scale"":50000,""lon"":141.48120469515436,""lat"":40.55764065910144,""text"":""STEEL JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":592.73,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513885,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":955,""native_scale"":50000,""lon"":141.48523307697113,""lat"":40.561558755232554,""text"":""MITSUBUSHI JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":608.48,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513889,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":959,""native_scale"":50000,""lon"":141.4954515353928,""lat"":40.55533848010609,""text"":""No 1 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":637.8,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513875,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":945,""native_scale"":50000,""lon"":141.48103684591197,""lat"":40.55301589260543,""text"":""H A C H I T A R O"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":710.75,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.48813737749816,40.55581111933769,"[""TOWERS""]",[835],[],{},[],HACHINOHE,617.1,5,5,"[{""feature_id"":513876,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":946,""native_scale"":50000,""lon"":141.48158617070516,""lat"":40.558265740394994,""text"":""HACHINOHE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":617.1,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513897,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":967,""native_scale"":50000,""lon"":141.48120469515436,""lat"":40.55764065910144,""text"":""STEEL JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":620.01,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513889,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":959,""native_scale"":50000,""lon"":141.4954515353928,""lat"":40.55533848010609,""text"":""No 1 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":620.16,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513875,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":945,""native_scale"":50000,""lon"":141.48103684591197,""lat"":40.55301589260543,""text"":""H A C H I T A R O"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":675.63,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513885,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":955,""native_scale"":50000,""lon"":141.48523307697113,""lat"":40.561558755232554,""text"":""MITSUBUSHI JETTY"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":684.59,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.4973487404656,40.52984659582941,"[""TOWERS""]",[837],[],{},[],MABECHI KAWA,724.41,2,2,"[{""feature_id"":513884,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":954,""native_scale"":50000,""lon"":141.49523790908432,""lat"":40.536160743936016,""text"":""MABECHI KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":724.41,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513880,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":950,""native_scale"":50000,""lon"":141.5020485192519,""lat"":40.53586589358092,""text"":""K A W A R A G I"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":778.29,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.49998855127737,40.535169431555296,"[""TOWERS""]",[838],[],{},[],K A W A R A G I,190.53,2,2,"[{""feature_id"":513880,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":950,""native_scale"":50000,""lon"":141.5020485192519,""lat"":40.53586589358092,""text"":""K A W A R A G I"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":190.53,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513884,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":954,""native_scale"":50000,""lon"":141.49523790908432,""lat"":40.536160743936016,""text"":""MABECHI KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":416.33,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.5003496814655,40.5374977215057,"[""TOWERS""]",[840],[],{},[],K A W A R A G I,231.38,2,2,"[{""feature_id"":513880,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":950,""native_scale"":50000,""lon"":141.5020485192519,""lat"":40.53586589358092,""text"":""K A W A R A G I"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":231.38,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513884,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":954,""native_scale"":50000,""lon"":141.49523790908432,""lat"":40.536160743936016,""text"":""MABECHI KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":456.85,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.51056813988717,40.53031941496734,"[""BCNSPP""]",[857],[],{},[],TANKS,620.33,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":620.33,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.510807197899,40.53193104223212,"[""BCNSPP""]",[858],[],{},[],TANKS,580.3,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":580.3,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.52138678650883,40.52817899202388,"[""SISTAT""]",[914],[],{},[],TATE HANA,164.96,3,3,"[{""feature_id"":513899,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":969,""native_scale"":50000,""lon"":141.52025761887836,""lat"":40.526968936454345,""text"":""TATE HANA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":164.96,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513888,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":958,""native_scale"":50000,""lon"":141.52083237537494,""lat"":40.52605375386633,""text"":""NIIDA KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":240.92,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":504.88,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.52366546713245,40.529897436757,"[""SISTAT""]",[915],[],{},[],TATE HANA,434.74,3,3,"[{""feature_id"":513899,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":969,""native_scale"":50000,""lon"":141.52025761887836,""lat"":40.526968936454345,""text"":""TATE HANA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":434.74,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513888,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":958,""native_scale"":50000,""lon"":141.52083237537494,""lat"":40.52605375386633,""text"":""NIIDA KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":489.9,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":546.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.5467930581943,40.52788410654553,"[""TOWERS""]",[846],[],{},[],SHIROGANE WHARF,102.45,3,3,"[{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":102.45,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":497.0,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":508.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.54746445516378,40.527868853813075,"[""TOWERS""]",[844],[],{},[],SHIROGANE WHARF,146.94,3,3,"[{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":146.94,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":460.82,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":470.32,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.54755600929602,40.52753837709095,"[""TOWERS""]",[850],[],{},[],SHIROGANE WHARF,175.32,3,3,"[{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":175.32,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":426.6,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":493.43,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.5533900420534,40.526968936454345,"[""TOWERS""]",[845],[],{},[],HACHINOHE,362.95,3,3,"[{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":362.95,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":487.15,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":649.83,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55384272637372,40.52673505764836,"[""TOWERS""]",[849],[],{},[],HACHINOHE,370.79,3,3,"[{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":370.79,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":526.44,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":693.93,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55386815807714,40.527284163118864,"[""TOWERS""]",[851],[],{},[],HACHINOHE,415.91,3,3,"[{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":415.91,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":472.97,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":680.48,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55415807949575,40.52702486387398,"[""TOWERS""]",[848],[],{},[],HACHINOHE,412.25,3,3,"[{""feature_id"":513877,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":947,""native_scale"":50000,""lon"":141.55060781370267,""lat"":40.524482661283564,""text"":""HACHINOHE"",""prefix"":[16,12,0],""same_cell"":true,""distance_m"":412.25,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":510.09,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513895,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":965,""native_scale"":50000,""lon"":141.5459995890486,""lat"":40.52858064429507,""text"":""SHIROGANE WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":710.91,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55434627410082,40.5319869655108,"[""TOWERS""]",[841],[],{},[],SILOS,288.35,1,1,"[{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":288.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55470740428896,40.53283089295858,"[""TOWERS""]",[839],[],{},[],SILOS,359.82,1,1,"[{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":359.82,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.55557208220415,40.533908664364674,"[""TOWERS""]",[842],[],{},[],SILOS,491.0,2,2,"[{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":491.0,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513882,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":952,""native_scale"":50000,""lon"":141.55808982083965,""lat"":40.54033426236749,""text"":""KABU SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":745.5,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.57267744590357,40.5397649304665,"[""RTPBCN""]",[913],[],{},[],SAME KADO,92.49,4,4,"[{""feature_id"":513894,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":964,""native_scale"":50000,""lon"":141.5729622809815,""lat"":40.540568093710775,""text"":""SAME KADO"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":92.49,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513886,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":956,""native_scale"":50000,""lon"":141.57202639429678,""lat"":40.5385550841112,""text"":""MONOMIWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":145.34,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513900,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":970,""native_scale"":50000,""lon"":141.57416265738146,""lat"":40.5442127071797,""text"":""TODO SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":510.25,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513892,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":962,""native_scale"":50000,""lon"":141.5659329581648,""lat"":40.54184906832527,""text"":""O SAKI"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":615.24,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,,141.57687367696272,40.54005976366212,"[""BCNSPP""]",[859],[],{},[],SAME KADO,335.32,3,3,"[{""feature_id"":513894,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":964,""native_scale"":50000,""lon"":141.5729622809815,""lat"":40.540568093710775,""text"":""SAME KADO"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":335.32,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513886,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":956,""native_scale"":50000,""lon"":141.57202639429678,""lat"":40.5385550841112,""text"":""MONOMIWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":442.47,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513900,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":970,""native_scale"":50000,""lon"":141.57416265738146,""lat"":40.5442127071797,""text"":""TODO SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":515.49,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,992,141.51457109000057,40.552446668497204,"[""TOWERS"",""LIGHTS""]","[831,864]",[],"{""831"":{""_cm93_relation20_raw"":992},""864"":{""_cm93_relation20_raw"":992}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,993,141.55525672908215,40.53632341943859,"[""TOWERS"",""LIGHTS""]","[833,870]",[],"{""833"":{""_cm93_relation20_raw"":993},""870"":{""_cm93_relation20_raw"":993}}",[],KABU SH.,506.18,3,3,"[{""feature_id"":513882,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":952,""native_scale"":50000,""lon"":141.55808982083965,""lat"":40.54033426236749,""text"":""KABU SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":506.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513887,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":957,""native_scale"":50000,""lon"":141.54777472194513,""lat"":40.538041655314935,""text"":""N. BREAKWATER"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":660.51,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":683.26,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,994,141.54818162919935,40.53947009597325,"[""TOWERS"",""LIGHTS""]","[830,871]",[],"{""830"":{""_cm93_relation20_raw"":994},""871"":{""_cm93_relation20_raw"":994}}",[],N. BREAKWATER,162.51,2,2,"[{""feature_id"":513887,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":957,""native_scale"":50000,""lon"":141.54777472194513,""lat"":40.538041655314935,""text"":""N. BREAKWATER"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":162.51,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513883,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":953,""native_scale"":50000,""lon"":141.55228630612632,""lat"":40.54426862020725,""text"":""KO NE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":636.4,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,995,141.53501309318457,40.562163473376586,"[""TOWERS"",""LIGHTS""]","[834,873]",[],"{""834"":{""_cm93_relation20_raw"":995},""873"":{""_cm93_relation20_raw"":995}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,996,141.57615650292712,40.539856430562644,"[""TOWERS"",""LIGHTS""]","[832,865]",[],"{""832"":{""_cm93_relation20_raw"":996},""865"":{""_cm93_relation20_raw"":996}}",[],SAME KADO,281.28,3,3,"[{""feature_id"":513894,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":964,""native_scale"":50000,""lon"":141.5729622809815,""lat"":40.540568093710775,""text"":""SAME KADO"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":281.28,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513886,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":956,""native_scale"":50000,""lon"":141.57202639429678,""lat"":40.5385550841112,""text"":""MONOMIWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":377.82,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513900,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":970,""native_scale"":50000,""lon"":141.57416265738146,""lat"":40.5442127071797,""text"":""TODO SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":512.86,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,997,141.5340263430931,40.538229743548484,"[""TOWERS"",""LIGHTS""]","[828,872]",[],"{""828"":{""_cm93_relation20_raw"":997},""872"":{""_cm93_relation20_raw"":997}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,998,141.56775895446813,40.5424742970387,"[""TOWERS"",""LIGHTS"",""LIGHTS""]","[829,874,883]",[],"{""829"":{""_cm93_relation20_raw"":998},""874"":{""_cm93_relation20_raw"":998},""883"":{""_cm93_relation20_raw"":998}}",[],O SAKI,169.24,7,7,"[{""feature_id"":513892,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":962,""native_scale"":50000,""lon"":141.5659329581648,""lat"":40.54184906832527,""text"":""O SAKI"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":169.24,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513878,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":948,""native_scale"":50000,""lon"":141.56686884484952,""lat"":40.54589516057982,""text"":""HINODE IWA(ILLUM)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":387.75,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513894,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":964,""native_scale"":50000,""lon"":141.5729622809815,""lat"":40.540568093710775,""text"":""SAME KADO"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":488.11,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513893,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":963,""native_scale"":50000,""lon"":141.5689796762308,""lat"":40.54747083389779,""text"":""OGOMUNE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":565.08,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513886,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":956,""native_scale"":50000,""lon"":141.57202639429678,""lat"":40.5385550841112,""text"":""MONOMIWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":565.65,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513900,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":970,""native_scale"":50000,""lon"":141.57416265738146,""lat"":40.5442127071797,""text"":""TODO SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":574.6,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513881,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":951,""native_scale"":50000,""lon"":141.57125835685446,""lat"":40.54915320545376,""text"":""KABAYAMA NE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":799.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,999,141.5684761285037,40.56065929040829,"[""BOYSPP"",""LIGHTS""]","[860,896]",[],"{""860"":{""_cm93_relation20_raw"":999},""896"":{""_cm93_relation20_raw"":999}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1000,141.51750082223097,40.5455495240557,"[""BOYSPP"",""LIGHTS""]","[861,897]",[],"{""861"":{""_cm93_relation20_raw"":1000},""897"":{""_cm93_relation20_raw"":1000}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1001,141.52584750728323,40.53372564780069,"[""LIGHTS"",""_extgn""]","[879,977]",[],"{""879"":{""_cm93_relation20_raw"":1001},""977"":{""_cm93_relation20_raw"":1001}}",[],TANKS,725.86,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":725.86,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1002,141.52560844927135,40.533562965990825,"[""LIGHTS"",""_extgn""]","[875,975]",[],"{""875"":{""_cm93_relation20_raw"":1002},""975"":{""_cm93_relation20_raw"":1002}}",[],TANKS,701.19,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":701.19,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1003,141.52294320675622,40.530431264167966,"[""LIGHTS"",""_extgn""]","[881,986]",[],"{""881"":{""_cm93_relation20_raw"":1003},""986"":{""_cm93_relation20_raw"":1003}}",[],TATE HANA,446.92,3,3,"[{""feature_id"":513899,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":969,""native_scale"":50000,""lon"":141.52025761887836,""lat"":40.526968936454345,""text"":""TATE HANA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":446.92,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":468.68,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513888,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":958,""native_scale"":50000,""lon"":141.52083237537494,""lat"":40.52605375386633,""text"":""NIIDA KAWA"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":518.42,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1004,141.54681340355705,40.537767147215504,"[""BCNLAT"",""LIGHTS""]","[852,869]",[],"{""852"":{""_cm93_relation20_raw"":1004},""869"":{""_cm93_relation20_raw"":1004}}",[],N. BREAKWATER,86.78,1,1,"[{""feature_id"":513887,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":957,""native_scale"":50000,""lon"":141.54777472194513,""lat"":40.538041655314935,""text"":""N. BREAKWATER"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":86.78,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1005,141.5349622297778,40.56547154065089,"[""LIGHTS"",""_extgn""]","[895,989]",[],"{""895"":{""_cm93_relation20_raw"":1005},""989"":{""_cm93_relation20_raw"":1005}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1006,141.53273441256093,40.53599298441033,"[""LIGHTS"",""_extgn""]","[885,982]",[],"{""885"":{""_cm93_relation20_raw"":1006},""982"":{""_cm93_relation20_raw"":1006}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1007,141.5524745007314,40.53454921840199,"[""BCNLAT"",""LIGHTS""]","[856,866]",[],"{""856"":{""_cm93_relation20_raw"":1007},""866"":{""_cm93_relation20_raw"":1007}}",[],SILOS,407.77,3,3,"[{""feature_id"":513896,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":966,""native_scale"":50000,""lon"":141.55118257019924,""lat"":40.531015927405434,""text"":""SILOS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":407.77,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513887,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":957,""native_scale"":50000,""lon"":141.54777472194513,""lat"":40.538041655314935,""text"":""N. BREAKWATER"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":555.47,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513882,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":952,""native_scale"":50000,""lon"":141.55808982083965,""lat"":40.54033426236749,""text"":""KABU SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":799.36,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1008,141.52035425935122,40.53766039376199,"[""BCNLAT"",""LIGHTS""]","[855,867]",[],"{""855"":{""_cm93_relation20_raw"":1008},""867"":{""_cm93_relation20_raw"":1008}}",[],TANKS,697.1,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":697.1,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1009,141.52412323779345,40.545107310019546,"[""LIGHTS"",""_extgn""]","[886,974]",[],"{""886"":{""_cm93_relation20_raw"":1009},""974"":{""_cm93_relation20_raw"":1009}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1010,141.5310508337966,40.54428386920667,"[""LIGHTS"",""_extgn""]","[888,978]",[],"{""888"":{""_cm93_relation20_raw"":1010},""978"":{""_cm93_relation20_raw"":1010}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1011,141.5495244231383,40.54752166145216,"[""LIGHTS"",""_extgn""]","[892,972]",[],"{""892"":{""_cm93_relation20_raw"":1011},""972"":{""_cm93_relation20_raw"":1011}}",[],KO NE,430.47,1,1,"[{""feature_id"":513883,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":953,""native_scale"":50000,""lon"":141.55228630612632,""lat"":40.54426862020725,""text"":""KO NE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":430.47,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1012,141.51802980166147,40.54034951226258,"[""LIGHTS"",""_extgn""]","[894,976]",[],"{""894"":{""_cm93_relation20_raw"":1012},""976"":{""_cm93_relation20_raw"":1012}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1013,141.53316675151854,40.53632341943859,"[""BCNLAT"",""LIGHTS""]","[853,868]",[],"{""853"":{""_cm93_relation20_raw"":1013},""868"":{""_cm93_relation20_raw"":1013}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1014,141.52822282837974,40.54622554676639,"[""LIGHTS"",""_extgn""]","[891,983]",[],"{""891"":{""_cm93_relation20_raw"":1014},""983"":{""_cm93_relation20_raw"":1014}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1015,141.52565422633748,40.53388832921558,"[""LIGHTS"",""_extgn""]","[880,987]",[],"{""880"":{""_cm93_relation20_raw"":1015},""987"":{""_cm93_relation20_raw"":1015}}",[],TANKS,716.18,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":716.18,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1016,141.52510490154427,40.53350704402745,"[""LIGHTS"",""_extgn""]","[878,990]",[],"{""878"":{""_cm93_relation20_raw"":1016},""990"":{""_cm93_relation20_raw"":1016}}",[],TANKS,658.69,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":658.69,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1017,141.54959563190778,40.54994100842045,"[""LIGHTS"",""_extgn""]","[889,981]",[],"{""889"":{""_cm93_relation20_raw"":1017},""981"":{""_cm93_relation20_raw"":1017}}",[],KO NE,670.46,1,1,"[{""feature_id"":513883,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":953,""native_scale"":50000,""lon"":141.55228630612632,""lat"":40.54426862020725,""text"":""KO NE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":670.46,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1018,141.5280092020713,40.558667212294104,"[""BCNLAT"",""LIGHTS""]","[854,863]",[],"{""854"":{""_cm93_relation20_raw"":1018},""863"":{""_cm93_relation20_raw"":1018}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1019,141.54412781567916,40.549463245146605,"[""LIGHTS"",""_extgn""]","[890,979]",[],"{""890"":{""_cm93_relation20_raw"":1019},""979"":{""_cm93_relation20_raw"":1019}}",[],,,0,0,[]
50000,351,03900420\E\03910424.E,1020,141.55782533112443,40.545163222300296,"[""LIGHTS"",""_extgn""]","[893,988]",[],"{""893"":{""_cm93_relation20_raw"":1020},""988"":{""_cm93_relation20_raw"":1020}}",[],KO NE,478.49,4,4,"[{""feature_id"":513883,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":953,""native_scale"":50000,""lon"":141.55228630612632,""lat"":40.54426862020725,""text"":""KO NE"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":478.49,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513882,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":952,""native_scale"":50000,""lon"":141.55808982083965,""lat"":40.54033426236749,""text"":""KABU SH."",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":537.42,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513878,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":948,""native_scale"":50000,""lon"":141.56686884484952,""lat"":40.54589516057982,""text"":""HINODE IWA(ILLUM)"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":768.46,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513892,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":962,""native_scale"":50000,""lon"":141.5659329581648,""lat"":40.54184906832527,""text"":""O SAKI"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":777.91,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1021,141.52536939125952,40.533395199960694,"[""LIGHTS"",""_extgn""]","[877,980]",[],"{""877"":{""_cm93_relation20_raw"":1021},""980"":{""_cm93_relation20_raw"":1021}}",[],TANKS,676.55,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":676.55,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1022,141.5254151683256,40.53372564780069,"[""LIGHTS"",""_extgn""]","[876,985]",[],"{""876"":{""_cm93_relation20_raw"":1022},""985"":{""_cm93_relation20_raw"":1022}}",[],TANKS,691.16,1,1,"[{""feature_id"":513898,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":968,""native_scale"":50000,""lon"":141.51766867147336,""lat"":40.53173276841354,""text"":""TANKS"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":691.16,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1023,141.49825919544693,40.55623293432891,"[""LIGHTS"",""_extgn""]","[884,984]",[],"{""884"":{""_cm93_relation20_raw"":1023},""984"":{""_cm93_relation20_raw"":1023}}",[],No 1 WHARF,257.21,2,2,"[{""feature_id"":513889,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":959,""native_scale"":50000,""lon"":141.4954515353928,""lat"":40.55533848010609,""text"":""No 1 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":257.21,""explicit_relation_overlap"":[],""text_relation_fields"":{}},{""feature_id"":513890,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":960,""native_scale"":50000,""lon"":141.49809134620457,""lat"":40.55028662228105,""text"":""No 2 WHARF"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":661.35,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1024,141.50759263059066,40.53502708806053,"[""LIGHTS"",""_extgn""]","[882,971]",[],"{""882"":{""_cm93_relation20_raw"":1024},""971"":{""_cm93_relation20_raw"":1024}}",[],K A W A R A G I,477.72,1,1,"[{""feature_id"":513880,""cell_id"":351,""source_relative_path"":""03900420\\E\\03910424.E"",""source_record_index"":950,""native_scale"":50000,""lon"":141.5020485192519,""lat"":40.53586589358092,""text"":""K A W A R A G I"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":477.72,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
50000,351,03900420\E\03910424.E,1025,141.52097987925458,40.555318151462146,"[""LIGHTS"",""_extgn""]","[887,973]",[],"{""887"":{""_cm93_relation20_raw"":1025},""973"":{""_cm93_relation20_raw"":1025}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,,141.65804316559033,40.467367860055134,"[""LIGHTS""]",[4877],[],{},[],,,0,0,[]
200000,40,03900420\C\03900420.C,6486,141.53481130881366,40.56513638820441,"[""TOWERS"",""LIGHTS""]","[4300,4741]",[],"{""4300"":{""_cm93_relation20_raw"":6486},""4741"":{""_cm93_relation20_raw"":6486}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6501,141.43965605140164,40.68046315791786,"[""TOWERS"",""LIGHTS""]","[4325,4781]",[],"{""4325"":{""_cm93_relation20_raw"":6501},""4781"":{""_cm93_relation20_raw"":6501}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6510,141.6269147619469,40.49949414054503,"[""TOWERS"",""LIGHTS""]","[4291,4747]",[],"{""4291"":{""_cm93_relation20_raw"":6510},""4747"":{""_cm93_relation20_raw"":6510}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6521,141.5676487228532,40.541909757522724,"[""TOWERS"",""LIGHTS""]","[4246,4842]",[],"{""4246"":{""_cm93_relation20_raw"":6521},""4842"":{""_cm93_relation20_raw"":6521}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6528,141.67305804264188,40.454613089799984,"[""TOWERS"",""LIGHTS""]","[4304,4777]",[],"{""4304"":{""_cm93_relation20_raw"":6528},""4777"":{""_cm93_relation20_raw"":6528}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6548,141.53481130881366,40.56201499793302,"[""TOWERS"",""LIGHTS""]","[4364,4830]",[],"{""4364"":{""_cm93_relation20_raw"":6548},""4830"":{""_cm93_relation20_raw"":6548}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6558,141.51424214797476,40.55215044794532,"[""TOWERS"",""LIGHTS""]","[4259,4598]",[],"{""4259"":{""_cm93_relation20_raw"":6558},""4598"":{""_cm93_relation20_raw"":6558}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6567,141.5765599913472,40.53922443934611,"[""TOWERS"",""LIGHTS""]","[4274,4619]",[],"{""4274"":{""_cm93_relation20_raw"":6567},""4619"":{""_cm93_relation20_raw"":6567}}",[],Same Kado,528.84,1,1,"[{""feature_id"":361674,""cell_id"":40,""source_relative_path"":""03900420\\C\\03900420.C"",""source_record_index"":6002,""native_scale"":200000,""lon"":141.58071044516635,""lat"":40.54278402393275,""text"":""Same Kado"",""prefix"":[0,12,0],""same_cell"":true,""distance_m"":528.84,""explicit_relation_overlap"":[],""text_relation_fields"":{}}]"
200000,40,03900420\C\03900420.C,6602,141.52785319505807,40.55864373294613,"[""BCNLAT"",""LIGHTS""]","[4439,4737]",[],"{""4439"":{""_cm93_relation20_raw"":6602},""4737"":{""_cm93_relation20_raw"":6602}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6620,141.3592715266989,40.68775404209214,"[""BCNSPP"",""LIGHTS""]","[4540,4584]",[],"{""4540"":{""_cm93_relation20_raw"":6620},""4584"":{""_cm93_relation20_raw"":6620}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6632,141.54707956201432,40.53735089780069,"[""BCNLAT"",""LIGHTS""]","[4422,4714]",[],"{""4422"":{""_cm93_relation20_raw"":6632},""4714"":{""_cm93_relation20_raw"":6632}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6640,141.6516343766049,40.472369069669675,"[""BCNLAT"",""LIGHTS""]","[4460,4646]",[],"{""4460"":{""_cm93_relation20_raw"":6640},""4646"":{""_cm93_relation20_raw"":6640}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6657,141.5203457565323,40.53735089780069,"[""BCNLAT"",""LIGHTS""]","[4492,4673]",[],"{""4492"":{""_cm93_relation20_raw"":6657},""4673"":{""_cm93_relation20_raw"":6657}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6663,141.53426198404347,40.53797541747083,"[""BCNSPP"",""LIGHTS""]","[4538,4784]",[],"{""4538"":{""_cm93_relation20_raw"":6663},""4784"":{""_cm93_relation20_raw"":6663}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6691,141.55232866537378,40.533978390984394,"[""BCNLAT"",""LIGHTS""]","[4500,4670]",[],"{""4500"":{""_cm93_relation20_raw"":6691},""4670"":{""_cm93_relation20_raw"":6691}}",[],,,0,0,[]
200000,40,03900420\C\03900420.C,6720,141.47084549113066,40.54653075073066,"[""BCNSPP"",""LIGHTS""]","[4539,4839]",[],"{""4539"":{""_cm93_relation20_raw"":6720},""4839"":{""_cm93_relation20_raw"":6720}}",[],,,0,0,[]
1 native_scale cell_id source_relative_path relation20 lon lat component_classes component_source_record_indices direct_names nav_relation_fields explicit_text_candidates nearest_same_cell_text nearest_same_cell_distance_m same_cell_candidate_count all_candidate_count candidate_summary
2 20000 693 03900420\F\03910424.F 141.487254006117 40.55602869111419 ["TOWERS"] [1959] [] {} [] Kitanuma 730.41 1 1 [{"feature_id":606700,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2200,"native_scale":20000,"lon":141.4815623918527,"lat":40.56097339975906,"text":"Kitanuma","prefix":[0,12,0],"same_cell":true,"distance_m":730.41,"explicit_relation_overlap":[],"text_relation_fields":{}}]
3 20000 693 03900420\F\03910424.F 141.487370991933 40.55682149529551 ["TOWERS"] [1960] [] {} [] Kitanuma 673.74 1 1 [{"feature_id":606700,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2200,"native_scale":20000,"lon":141.4815623918527,"lat":40.56097339975906,"text":"Kitanuma","prefix":[0,12,0],"same_cell":true,"distance_m":673.74,"explicit_relation_overlap":[],"text_relation_fields":{}}]
4 20000 693 03900420\F\03910424.F 141.48809833852798 40.556491161360874 ["TOWERS"] [1958] [] {} [] Kitanuma 743.83 1 1 [{"feature_id":606700,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2200,"native_scale":20000,"lon":141.4815623918527,"lat":40.56097339975906,"text":"Kitanuma","prefix":[0,12,0],"same_cell":true,"distance_m":743.83,"explicit_relation_overlap":[],"text_relation_fields":{}}]
5 20000 693 03900420\F\03910424.F 141.48819497898467 40.55577458522323 ["TOWERS"] [1961] [] {} [] Hamana-Yachi 765.61 1 1 [{"feature_id":606692,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2192,"native_scale":20000,"lon":141.4941968599783,"lat":40.550616027137096,"text":"Hamana-Yachi","prefix":[0,12,0],"same_cell":true,"distance_m":765.61,"explicit_relation_overlap":[],"text_relation_fields":{}}]
6 20000 693 03900420\F\03910424.F 141.49735547700973 40.52981512984462 ["TOWERS"] [1970] [] {} [] Toyama-Shinden 517.72 3 3 [{"feature_id":606712,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2212,"native_scale":20000,"lon":141.50044288528355,"lat":40.53383653024312,"text":"Toyama-Shinden","prefix":[0,12,0],"same_cell":true,"distance_m":517.72,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606702,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2202,"native_scale":20000,"lon":141.49126712823906,"lat":40.529042342579885,"text":"Numadate","prefix":[0,12,0],"same_cell":true,"distance_m":521.69,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606652,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2152,"native_scale":20000,"lon":141.5038354739469,"lat":40.5271713470344,"text":"Area 3 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":621.58,"explicit_relation_overlap":[],"text_relation_fields":{}}]
7 20000 693 03900420\F\03910424.F 141.5000054600586 40.535127801051665 ["TOWERS"] [1966] [] {} [] Toyama-Shinden 148.27 4 4 [{"feature_id":606712,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2212,"native_scale":20000,"lon":141.50044288528355,"lat":40.53383653024312,"text":"Toyama-Shinden","prefix":[0,12,0],"same_cell":true,"distance_m":148.27,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606683,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2183,"native_scale":20000,"lon":141.4964857128996,"lat":40.53749167722482,"text":"Mabechi Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":396.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606710,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2210,"native_scale":20000,"lon":141.5023960397764,"lat":40.538406703674674,"text":"Tate","prefix":[0,12,0],"same_cell":true,"distance_m":416.83,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606699,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2199,"native_scale":20000,"lon":141.50835214371162,"lat":40.53415680839427,"text":"Kawaragi","prefix":[0,12,0],"same_cell":true,"distance_m":713.59,"explicit_relation_overlap":[],"text_relation_fields":{}}]
8 20000 693 03900420\F\03910424.F 141.5003564175065 40.53742559149734 ["TOWERS"] [1964] [] {} [] Tate 203.98 5 5 [{"feature_id":606710,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2210,"native_scale":20000,"lon":141.5023960397764,"lat":40.538406703674674,"text":"Tate","prefix":[0,12,0],"same_cell":true,"distance_m":203.98,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606683,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2183,"native_scale":20000,"lon":141.4964857128996,"lat":40.53749167722482,"text":"Mabechi Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":327.18,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606712,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2212,"native_scale":20000,"lon":141.50044288528355,"lat":40.53383653024312,"text":"Toyama-Shinden","prefix":[0,12,0],"same_cell":true,"distance_m":399.15,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606695,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2195,"native_scale":20000,"lon":141.49386116154983,"lat":40.54159903142414,"text":"Hattaro","prefix":[0,12,0],"same_cell":true,"distance_m":718.76,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606699,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2199,"native_scale":20000,"lon":141.50835214371162,"lat":40.53415680839427,"text":"Kawaragi","prefix":[0,12,0],"same_cell":true,"distance_m":767.26,"explicit_relation_overlap":[],"text_relation_fields":{}}]
9 20000 693 03900420\F\03910424.F 141.51061556493377 40.53027778111349 ["BCNSPP"] [1980] [] {} [] Kawaragi 471.84 4 4 [{"feature_id":606699,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2199,"native_scale":20000,"lon":141.50835214371162,"lat":40.53415680839427,"text":"Kawaragi","prefix":[0,12,0],"same_cell":true,"distance_m":471.84,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606653,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2153,"native_scale":20000,"lon":141.51512206201883,"lat":40.52610363595054,"text":"Area 4 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":600.42,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":618.09,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606652,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2152,"native_scale":20000,"lon":141.5038354739469,"lat":40.5271713470344,"text":"Area 3 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":669.09,"explicit_relation_overlap":[],"text_relation_fields":{}}]
10 20000 693 03900420\F\03910424.F 141.5108444502259 40.531909745248655 ["BCNSPP"] [1979] [] {} [] Kawaragi 326.8 5 5 [{"feature_id":606699,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2199,"native_scale":20000,"lon":141.50835214371162,"lat":40.53415680839427,"text":"Kawaragi","prefix":[0,12,0],"same_cell":true,"distance_m":326.8,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":568.37,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606653,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2153,"native_scale":20000,"lon":141.51512206201883,"lat":40.52610363595054,"text":"Area 4 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":739.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606663,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2163,"native_scale":20000,"lon":141.51672934540358,"lat":40.53728325278595,"text":"Service Co., Inc.","prefix":[0,12,0],"same_cell":true,"distance_m":777.4,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606652,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2152,"native_scale":20000,"lon":141.5038354739469,"lat":40.5271713470344,"text":"Area 3 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":792.79,"explicit_relation_overlap":[],"text_relation_fields":{}}]
11 20000 693 03900420\F\03910424.F 141.5214392960816 40.52781196552014 ["TOWERS"] [1962] [] {} [] Tate Hana 111.99 9 9 [{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":111.99,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":192.38,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606674,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2174,"native_scale":20000,"lon":141.51944036453034,"lat":40.52694255323407,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":194.65,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606669,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2169,"native_scale":20000,"lon":141.51948105524897,"lat":40.52654597546327,"text":"(Konakano)","prefix":[0,12,0],"same_cell":true,"distance_m":217.28,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606685,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2185,"native_scale":20000,"lon":141.52122058346913,"lat":40.52476643093591,"text":"Niida Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":339.15,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":514.47,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606714,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2214,"native_scale":20000,"lon":141.525121806115,"lat":40.52382579545554,"text":"Uenoyama","prefix":[0,12,0],"same_cell":true,"distance_m":541.61,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606653,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2153,"native_scale":20000,"lon":141.51512206201883,"lat":40.52610363595054,"text":"Area 4 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":566.71,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":569.22,"explicit_relation_overlap":[],"text_relation_fields":{}}]
12 20000 693 03900420\F\03910424.F 141.5214392960816 40.52813227246671 ["SISTAT"] [2046] [] {} [] Tate Hana 109.72 9 9 [{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":109.72,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606674,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2174,"native_scale":20000,"lon":141.51944036453034,"lat":40.52694255323407,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":214.58,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":219.78,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606669,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2169,"native_scale":20000,"lon":141.51948105524897,"lat":40.52654597546327,"text":"(Konakano)","prefix":[0,12,0],"same_cell":true,"distance_m":241.88,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606685,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2185,"native_scale":20000,"lon":141.52122058346913,"lat":40.52476643093591,"text":"Niida Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":374.72,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":525.02,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":540.46,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606714,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2214,"native_scale":20000,"lon":141.525121806115,"lat":40.52382579545554,"text":"Uenoyama","prefix":[0,12,0],"same_cell":true,"distance_m":571.12,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606653,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2153,"native_scale":20000,"lon":141.51512206201883,"lat":40.52610363595054,"text":"Area 4 Koyo","prefix":[0,12,0],"same_cell":true,"distance_m":579.62,"explicit_relation_overlap":[],"text_relation_fields":{}}]
13 20000 693 03900420\F\03910424.F 141.52367219926484 40.52990155944516 ["SISTAT"] [2047] [] {} [] Tate Hana 363.04 10 10 [{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":363.04,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":377.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":479.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606674,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2174,"native_scale":20000,"lon":141.51944036453034,"lat":40.52694255323407,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":485.99,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606669,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2169,"native_scale":20000,"lon":141.51948105524897,"lat":40.52654597546327,"text":"(Konakano)","prefix":[0,12,0],"same_cell":true,"distance_m":514.49,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":566.22,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606685,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2185,"native_scale":20000,"lon":141.52122058346913,"lat":40.52476643093591,"text":"Niida Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":607.44,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606714,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2214,"native_scale":20000,"lon":141.525121806115,"lat":40.52382579545554,"text":"Uenoyama","prefix":[0,12,0],"same_cell":true,"distance_m":686.61,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":696.11,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":700.69,"explicit_relation_overlap":[],"text_relation_fields":{}}]
14 20000 693 03900420\F\03910424.F 141.54550785613407 40.549177658809995 ["LIGHTS"] [2027] [] {} [] 0 0 []
15 20000 693 03900420\F\03910424.F 141.55333573312492 40.526886625741874 ["TOWERS"] [1967] [] {} [] Sunamori 163.04 5 5 [{"feature_id":606709,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2209,"native_scale":20000,"lon":141.55269485430696,"lat":40.525503676544034,"text":"Sunamori","prefix":[0,12,0],"same_cell":true,"distance_m":163.04,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606654,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2154,"native_scale":20000,"lon":141.54897165355496,"lat":40.52447661492469,"text":"Area 5 Shirogane","prefix":[0,12,0],"same_cell":true,"distance_m":455.93,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":498.15,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":639.35,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":655.78,"explicit_relation_overlap":[],"text_relation_fields":{}}]
16 20000 693 03900420\F\03910424.F 141.55378333102954 40.527262864335846 ["TOWERS"] [1968] [] {} [] Sunamori 216.17 5 5 [{"feature_id":606709,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2209,"native_scale":20000,"lon":141.55269485430696,"lat":40.525503676544034,"text":"Sunamori","prefix":[0,12,0],"same_cell":true,"distance_m":216.17,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606654,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2154,"native_scale":20000,"lon":141.54897165355496,"lat":40.52447661492469,"text":"Area 5 Shirogane","prefix":[0,12,0],"same_cell":true,"distance_m":511.25,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":518.62,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":587.75,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":614.98,"explicit_relation_overlap":[],"text_relation_fields":{}}]
17 20000 693 03900420\F\03910424.F 141.553798590049 40.526698505652824 ["TOWERS"] [1963] [] {} [] Sunamori 162.34 5 5 [{"feature_id":606709,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2209,"native_scale":20000,"lon":141.55269485430696,"lat":40.525503676544034,"text":"Sunamori","prefix":[0,12,0],"same_cell":true,"distance_m":162.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606654,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2154,"native_scale":20000,"lon":141.54897165355496,"lat":40.52447661492469,"text":"Area 5 Shirogane","prefix":[0,12,0],"same_cell":true,"distance_m":476.96,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":542.4,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":647.61,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":677.71,"explicit_relation_overlap":[],"text_relation_fields":{}}]
18 20000 693 03900420\F\03910424.F 141.55411902945798 40.52698322774454 ["TOWERS"] [1972] [] {} [] Sunamori 203.85 5 5 [{"feature_id":606709,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2209,"native_scale":20000,"lon":141.55269485430696,"lat":40.525503676544034,"text":"Sunamori","prefix":[0,12,0],"same_cell":true,"distance_m":203.85,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606654,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2154,"native_scale":20000,"lon":141.54897165355496,"lat":40.52447661492469,"text":"Area 5 Shirogane","prefix":[0,12,0],"same_cell":true,"distance_m":516.69,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":555.57,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":610.12,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":648.21,"explicit_relation_overlap":[],"text_relation_fields":{}}]
19 20000 693 03900420\F\03910424.F 141.55427670599258 40.53193516493641 ["TOWERS"] [1971] [] {} [] Hachinohe Fishing Harbour (Same) 122.06 6 6 [{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":122.06,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":138.85,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":520.1,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":645.07,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":720.32,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606709,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2209,"native_scale":20000,"lon":141.55269485430696,"lat":40.525503676544034,"text":"Sunamori","prefix":[0,12,0],"same_cell":true,"distance_m":727.54,"explicit_relation_overlap":[],"text_relation_fields":{}}]
20 20000 693 03900420\F\03910424.F 141.5546683541591 40.532753673727576 ["TOWERS"] [1969] [] {} [] Hachinohe Fishing Harbour (Same) 110.53 6 6 [{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":110.53,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":110.81,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":433.57,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":624.98,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":725.58,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":746.97,"explicit_relation_overlap":[],"text_relation_fields":{}}]
21 20000 693 03900420\F\03910424.F 141.55547708219132 40.535127801051665 ["SISTAW"] [2048] [] {} [] Kami-Same 261.54 6 6 [{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":261.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":314.7,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":316.05,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":371.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":475.79,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606705,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2205,"native_scale":20000,"lon":141.56257761258715,"lat":40.537257835127086,"text":"Shimo-Matsunaeba","prefix":[0,12,0],"same_cell":true,"distance_m":645.1,"explicit_relation_overlap":[],"text_relation_fields":{}}]
22 20000 693 03900420\F\03910424.F 141.55552285924972 40.53378060850419 ["TOWERS"] [1965] [] {} [] Hinode 165.6 6 6 [{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":165.6,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":213.66,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":307.02,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":489.93,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":616.07,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606705,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2205,"native_scale":20000,"lon":141.56257761258715,"lat":40.537257835127086,"text":"Shimo-Matsunaeba","prefix":[0,12,0],"same_cell":true,"distance_m":710.59,"explicit_relation_overlap":[],"text_relation_fields":{}}]
23 20000 693 03900420\F\03910424.F 141.57670746462134 40.53993171998525 ["BCNSPP"] [1981] [] {} [] Same Kado 178.61 9 9 [{"feature_id":606661,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2161,"native_scale":20000,"lon":141.5748967276436,"lat":40.54076029762526,"text":"Same Kado","prefix":[0,12,0],"same_cell":true,"distance_m":178.61,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606667,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2167,"native_scale":20000,"lon":141.5763209027946,"lat":40.543855935677584,"text":"Todo Shima","prefix":[0,12,0],"same_cell":true,"distance_m":437.57,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606687,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2187,"native_scale":20000,"lon":141.5735793656289,"lat":40.54424224499966,"text":"Okitonda","prefix":[0,12,0],"same_cell":true,"distance_m":547.36,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606688,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2188,"native_scale":20000,"lon":141.58198199901997,"lat":40.543093476529926,"text":"Saku Ne","prefix":[0,12,0],"same_cell":true,"distance_m":567.67,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606704,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2204,"native_scale":20000,"lon":141.5761581399202,"lat":40.53474143916679,"text":"Senzogakubo","prefix":[0,12,0],"same_cell":true,"distance_m":579.0,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606680,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2180,"native_scale":20000,"lon":141.58295348992658,"lat":40.54273765929082,"text":"Kankitsu","prefix":[0,12,0],"same_cell":true,"distance_m":613.12,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606690,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2190,"native_scale":20000,"lon":141.58495242147782,"lat":40.53972330313749,"text":"Yahazukomone","prefix":[0,12,0],"same_cell":true,"distance_m":697.11,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606677,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2177,"native_scale":20000,"lon":141.58476422690433,"lat":40.53782210488448,"text":"Hon-Karimata","prefix":[0,12,0],"same_cell":true,"distance_m":720.11,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606706,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2206,"native_scale":20000,"lon":141.56734859934312,"lat":40.53952505236351,"text":"Shimo-Mekurakubo","prefix":[0,12,0],"same_cell":true,"distance_m":792.15,"explicit_relation_overlap":[],"text_relation_fields":{}}]
24 20000 693 03900420\F\03910424.F 2239 141.51452696025927 40.55241521469589 ["TOWERS","LIGHTS"] [1954,1999] [] {"1954":{"_cm93_relation20_raw":2239},"1999":{"_cm93_relation20_raw":2239}} [] 0 0 []
25 20000 693 03900420\F\03910424.F 2240 141.56767921143177 40.54238692330532 ["TOWERS","LIGHTS"] [1953,2011] [] {"1953":{"_cm93_relation20_raw":2240},"2011":{"_cm93_relation20_raw":2240}} [] O Saki 166.43 10 10 [{"feature_id":606659,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2159,"native_scale":20000,"lon":141.56571079791942,"lat":40.54243775472137,"text":"O Saki","prefix":[0,12,0],"same_cell":true,"distance_m":166.43,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606672,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2172,"native_scale":20000,"lon":141.5649122425669,"lat":40.541878607023406,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":240.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606668,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2168,"native_scale":20000,"lon":141.5648969835474,"lat":40.54151261691194,"text":"(Ebisuhama)","prefix":[0,12,0],"same_cell":true,"distance_m":254.41,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606706,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2206,"native_scale":20000,"lon":141.56734859934312,"lat":40.53952505236351,"text":"Shimo-Mekurakubo","prefix":[0,12,0],"same_cell":true,"distance_m":319.45,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606666,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2166,"native_scale":20000,"lon":141.56636184941704,"lat":40.546072100989115,"text":"Hinode Iwa","prefix":[0,12,0],"same_cell":true,"distance_m":424.62,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606687,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2187,"native_scale":20000,"lon":141.5735793656289,"lat":40.54424224499966,"text":"Okitonda","prefix":[0,12,0],"same_cell":true,"distance_m":539.55,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606686,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2186,"native_scale":20000,"lon":141.56839129900726,"lat":40.547607108287096,"text":"Ogomune","prefix":[0,12,0],"same_cell":true,"distance_m":583.57,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606661,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2161,"native_scale":20000,"lon":141.5748967276436,"lat":40.54076029762526,"text":"Same Kado","prefix":[0,12,0],"same_cell":true,"distance_m":636.14,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606705,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2205,"native_scale":20000,"lon":141.56257761258715,"lat":40.537257835127086,"text":"Shimo-Matsunaeba","prefix":[0,12,0],"same_cell":true,"distance_m":714.93,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606667,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2167,"native_scale":20000,"lon":141.5763209027946,"lat":40.543855935677584,"text":"Todo Shima","prefix":[0,12,0],"same_cell":true,"distance_m":748.26,"explicit_relation_overlap":[],"text_relation_fields":{}}]
26 20000 693 03900420\F\03910424.F 2241 141.5759546863272 40.53986563666468 ["TOWERS","LIGHTS"] [1955,2001] [] {"1955":{"_cm93_relation20_raw":2241},"2001":{"_cm93_relation20_raw":2241}} [] Same Kado 133.75 9 9 [{"feature_id":606661,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2161,"native_scale":20000,"lon":141.5748967276436,"lat":40.54076029762526,"text":"Same Kado","prefix":[0,12,0],"same_cell":true,"distance_m":133.75,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606667,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2167,"native_scale":20000,"lon":141.5763209027946,"lat":40.543855935677584,"text":"Todo Shima","prefix":[0,12,0],"same_cell":true,"distance_m":444.78,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606687,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2187,"native_scale":20000,"lon":141.5735793656289,"lat":40.54424224499966,"text":"Okitonda","prefix":[0,12,0],"same_cell":true,"distance_m":526.42,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606704,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2204,"native_scale":20000,"lon":141.5761581399202,"lat":40.53474143916679,"text":"Senzogakubo","prefix":[0,12,0],"same_cell":true,"distance_m":570.04,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606688,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2188,"native_scale":20000,"lon":141.58198199901997,"lat":40.543093476529926,"text":"Saku Ne","prefix":[0,12,0],"same_cell":true,"distance_m":623.08,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606680,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2180,"native_scale":20000,"lon":141.58295348992658,"lat":40.54273765929082,"text":"Kankitsu","prefix":[0,12,0],"same_cell":true,"distance_m":672.12,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606706,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2206,"native_scale":20000,"lon":141.56734859934312,"lat":40.53952505236351,"text":"Shimo-Mekurakubo","prefix":[0,12,0],"same_cell":true,"distance_m":728.23,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606690,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2190,"native_scale":20000,"lon":141.58495242147782,"lat":40.53972330313749,"text":"Yahazukomone","prefix":[0,12,0],"same_cell":true,"distance_m":760.5,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606677,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2177,"native_scale":20000,"lon":141.58476422690433,"lat":40.53782210488448,"text":"Hon-Karimata","prefix":[0,12,0],"same_cell":true,"distance_m":778.35,"explicit_relation_overlap":[],"text_relation_fields":{}}]
27 20000 693 03900420\F\03910424.F 2242 141.5350198234147 40.56587201094555 ["TOWERS","LIGHTS"] [1956,2007] [] {"1956":{"_cm93_relation20_raw":2242},"2007":{"_cm93_relation20_raw":2242}} [] 0 0 []
28 20000 693 03900420\F\03910424.F 2243 141.54813240748382 40.53939288485493 ["TOWERS","LIGHTS"] [1952,2009] [] {"1952":{"_cm93_relation20_raw":2243},"2009":{"_cm93_relation20_raw":2243}} [] Ko Ne 682.88 1 1 [{"feature_id":606682,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2182,"native_scale":20000,"lon":141.5536409135144,"lat":40.54388643386297,"text":"Ko Ne","prefix":[0,12,0],"same_cell":true,"distance_m":682.88,"explicit_relation_overlap":[],"text_relation_fields":{}}]
29 20000 693 03900420\F\03910424.F 2244 141.55521767886023 40.536297040550764 ["TOWERS","LIGHTS"] [1957,2008] [] {"1957":{"_cm93_relation20_raw":2244},"2008":{"_cm93_relation20_raw":2244}} [] Kami-Same 304.17 6 6 [{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":304.17,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":309.02,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":370.06,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":420.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":446.33,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606705,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2205,"native_scale":20000,"lon":141.56257761258715,"lat":40.537257835127086,"text":"Shimo-Matsunaeba","prefix":[0,12,0],"same_cell":true,"distance_m":631.08,"explicit_relation_overlap":[],"text_relation_fields":{}}]
30 20000 693 03900420\F\03910424.F 2245 141.54756782376322 40.54819670438723 ["BOYSPP","LIGHTS"] [1987,2032] [] {"1987":{"_cm93_relation20_raw":2245},"2032":{"_cm93_relation20_raw":2245}} [] Ko Ne 702.16 1 1 [{"feature_id":606682,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2182,"native_scale":20000,"lon":141.5536409135144,"lat":40.54388643386297,"text":"Ko Ne","prefix":[0,12,0],"same_cell":true,"distance_m":702.16,"explicit_relation_overlap":[],"text_relation_fields":{}}]
31 20000 693 03900420\F\03910424.F 2246 141.51764488657207 40.545787460007524 ["BOYSPP","LIGHTS"] [1984,2028] [] {"1984":{"_cm93_relation20_raw":2246},"2028":{"_cm93_relation20_raw":2246}} [] 0 0 []
32 20000 693 03900420\F\03910424.F 2247 141.55372738129145 40.53761368147356 ["BOYSPP","LIGHTS"] [1985,2031] [] {"1985":{"_cm93_relation20_raw":2247},"2031":{"_cm93_relation20_raw":2247}} [] Kabu Shima 365.74 7 7 [{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":365.74,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":400.19,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":483.56,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":537.91,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":616.11,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606682,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2182,"native_scale":20000,"lon":141.5536409135144,"lat":40.54388643386297,"text":"Ko Ne","prefix":[0,12,0],"same_cell":true,"distance_m":697.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606705,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2205,"native_scale":20000,"lon":141.56257761258715,"lat":40.537257835127086,"text":"Shimo-Matsunaeba","prefix":[0,12,0],"same_cell":true,"distance_m":748.95,"explicit_relation_overlap":[],"text_relation_fields":{}}]
33 20000 693 03900420\F\03910424.F 2248 141.51602234416788 40.54453705850963 ["BOYSPP","LIGHTS"] [1982,2026] [] {"1982":{"_cm93_relation20_raw":2248},"2026":{"_cm93_relation20_raw":2248}} [] Toyosu 681.35 2 2 [{"feature_id":606713,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2213,"native_scale":20000,"lon":141.51138360224738,"lat":40.53952505236351,"text":"Toyosu","prefix":[0,12,0],"same_cell":true,"distance_m":681.35,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606660,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2160,"native_scale":20000,"lon":141.51662761860706,"lat":40.5377102680129,"text":"Pier for Tohoku Port","prefix":[0,12,0],"same_cell":true,"distance_m":760.83,"explicit_relation_overlap":[],"text_relation_fields":{}}]
34 20000 693 03900420\F\03910424.F 2249 141.5144252334628 40.54336796282291 ["BOYSPP","LIGHTS"] [1983,2030] [] {"1983":{"_cm93_relation20_raw":2249},"2030":{"_cm93_relation20_raw":2249}} [] Toyosu 498.65 3 3 [{"feature_id":606713,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2213,"native_scale":20000,"lon":141.51138360224738,"lat":40.53952505236351,"text":"Toyosu","prefix":[0,12,0],"same_cell":true,"distance_m":498.65,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606660,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2160,"native_scale":20000,"lon":141.51662761860706,"lat":40.5377102680129,"text":"Pier for Tohoku Port","prefix":[0,12,0],"same_cell":true,"distance_m":656.06,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606663,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2163,"native_scale":20000,"lon":141.51672934540358,"lat":40.53728325278595,"text":"Service Co., Inc.","prefix":[0,12,0],"same_cell":true,"distance_m":704.05,"explicit_relation_overlap":[],"text_relation_fields":{}}]
35 20000 693 03900420\F\03910424.F 2250 141.54760851448182 40.55077866754792 ["BOYSPP","LIGHTS"] [1986,2025] [] {"1986":{"_cm93_relation20_raw":2250},"2025":{"_cm93_relation20_raw":2250}} [] 0 0 []
36 20000 693 03900420\F\03910424.F 2251 141.5279752427569 40.55872215426594 ["BCNLAT","LIGHTS"] [1974,2006] [] {"1974":{"_cm93_relation20_raw":2251},"2006":{"_cm93_relation20_raw":2251}} [] 0 0 []
37 20000 693 03900420\F\03910424.F 2252 141.47915655311542 40.58768781797142 ["LIGHTS","_extgn"] [2017,2218] [] {"2017":{"_cm93_relation20_raw":2252},"2218":{"_cm93_relation20_raw":2252}} [] Ichikawa Basin 334.87 1 1 [{"feature_id":606678,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2178,"native_scale":20000,"lon":141.47547404308204,"lat":40.586570273697056,"text":"Ichikawa Basin","prefix":[0,12,0],"same_cell":true,"distance_m":334.87,"explicit_relation_overlap":[],"text_relation_fields":{}}]
38 20000 693 03900420\F\03910424.F 2253 141.50487817361105 40.55268966278586 ["LIGHTS","_extgn"] [2019,2236] [] {"2019":{"_cm93_relation20_raw":2253},"2236":{"_cm93_relation20_raw":2253}} [] 0 0 []
39 20000 693 03900420\F\03910424.F 2254 141.55245070999536 40.53446183378157 ["BCNLAT","LIGHTS"] [1977,2002] [] {"1977":{"_cm93_relation20_raw":2254},"2002":{"_cm93_relation20_raw":2254}} [] Hachinohe Fishing Harbour (Same) 201.79 6 6 [{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":201.79,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606697,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2197,"native_scale":20000,"lon":141.55584329865871,"lat":40.532311375187646,"text":"Hinode","prefix":[0,12,0],"same_cell":true,"distance_m":373.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606698,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2198,"native_scale":20000,"lon":141.55856449046513,"lat":40.53529047907352,"text":"Kami-Same","prefix":[0,12,0],"same_cell":true,"distance_m":524.82,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606655,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2155,"native_scale":20000,"lon":141.55846276366864,"lat":40.53757809692398,"text":"Kabu Island Marine Park","prefix":[0,12,0],"same_cell":true,"distance_m":614.98,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":673.81,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606651,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2151,"native_scale":20000,"lon":141.54794421291032,"lat":40.52869661907635,"text":"Area 2 Chikkogai","prefix":[0,12,0],"same_cell":true,"distance_m":745.67,"explicit_relation_overlap":[],"text_relation_fields":{}}]
40 20000 693 03900420\F\03910424.F 2255 141.53411954126562 40.53822878284375 ["BCNSPP","LIGHTS"] [1978,2010] [] {"1978":{"_cm93_relation20_raw":2255},"2010":{"_cm93_relation20_raw":2255}} [] Kawaragi No 1 Wharf [Port Island] 634.57 1 1 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":634.57,"explicit_relation_overlap":[],"text_relation_fields":{}}]
41 20000 693 03900420\F\03910424.F 2256 141.54682521814877 40.5377458524923 ["BCNLAT","LIGHTS"] [1973,2005] [] {"1973":{"_cm93_relation20_raw":2256},"2005":{"_cm93_relation20_raw":2256}} [] Hachinohe Fishing Harbour (Same) 780.69 1 1 [{"feature_id":606671,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2171,"native_scale":20000,"lon":141.55336116482405,"lat":40.53278417696755,"text":"Hachinohe Fishing Harbour (Same)","prefix":[0,12,0],"same_cell":true,"distance_m":780.69,"explicit_relation_overlap":[],"text_relation_fields":{}}]
42 20000 693 03900420\F\03910424.F 2257 141.47109979083245 40.546926016675656 ["LIGHTS","_extgn"] [2029,2227] [] {"2029":{"_cm93_relation20_raw":2257},"2227":{"_cm93_relation20_raw":2257}} [] 0 0 []
43 20000 693 03900420\F\03910424.F 2258 141.52570164885506 40.53382127886439 ["LIGHTS","_extgn"] [1998,2229] [{"object_class":"LIGHTS","source_record_index":1998,"field":"OBJNAM","text":"L2"}] {"1998":{"_cm93_relation20_raw":2258},"2229":{"_cm93_relation20_raw":2258}} [] Kawaragi No 1 Wharf [Port Island] 438.58 5 5 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":438.58,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":699.99,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":716.51,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":723.25,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":796.38,"explicit_relation_overlap":[],"text_relation_fields":{}}]
44 20000 693 03900420\F\03910424.F 2259 141.49831170889684 40.55619131837828 ["LIGHTS","_extgn"] [2033,2237] [] {"2033":{"_cm93_relation20_raw":2259},"2237":{"_cm93_relation20_raw":2259}} [] Hamana-Yachi 710.77 1 1 [{"feature_id":606692,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2192,"native_scale":20000,"lon":141.4941968599783,"lat":40.550616027137096,"text":"Hamana-Yachi","prefix":[0,12,0],"same_cell":true,"distance_m":710.77,"explicit_relation_overlap":[],"text_relation_fields":{}}]
45 20000 693 03900420\F\03910424.F 2260 141.5075434156794 40.549081088805 ["LIGHTS","_extgn"] [2015,2220] [] {"2015":{"_cm93_relation20_raw":2260},"2220":{"_cm93_relation20_raw":2260}} [] 0 0 []
46 20000 693 03900420\F\03910424.F 2261 141.52826516412694 40.54623983528677 ["LIGHTS","_extgn"] [2024,2233] [] {"2024":{"_cm93_relation20_raw":2261},"2233":{"_cm93_relation20_raw":2261}} [] 0 0 []
47 20000 693 03900420\F\03910424.F 2262 141.51800601669967 40.54032821853955 ["LIGHTS","_extgn"] [2016,2216] [] {"2016":{"_cm93_relation20_raw":2262},"2216":{"_cm93_relation20_raw":2262}} [] Pier for Tohoku Port 313.54 4 4 [{"feature_id":606660,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2160,"native_scale":20000,"lon":141.51662761860706,"lat":40.5377102680129,"text":"Pier for Tohoku Port","prefix":[0,12,0],"same_cell":true,"distance_m":313.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606663,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2163,"native_scale":20000,"lon":141.51672934540358,"lat":40.53728325278595,"text":"Service Co., Inc.","prefix":[0,12,0],"same_cell":true,"distance_m":355.36,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606713,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2213,"native_scale":20000,"lon":141.51138360224738,"lat":40.53952505236351,"text":"Toyosu","prefix":[0,12,0],"same_cell":true,"distance_m":566.7,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":786.16,"explicit_relation_overlap":[],"text_relation_fields":{}}]
48 20000 693 03900420\F\03910424.F 2263 141.52535069140714 40.53333831674283 ["LIGHTS","_extgn"] [1995,2228] [{"object_class":"LIGHTS","source_record_index":1995,"field":"OBJNAM","text":"R1"}] {"1995":{"_cm93_relation20_raw":2263},"2228":{"_cm93_relation20_raw":2263}} [] Kawaragi No 1 Wharf [Port Island] 497.15 7 7 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":497.15,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":674.28,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":689.19,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":710.52,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":735.56,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":768.78,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":781.17,"explicit_relation_overlap":[],"text_relation_fields":{}}]
49 20000 693 03900420\F\03910424.F 2264 141.56030401868534 40.544648883984316 ["LIGHTS","_extgn"] [2018,2217] [] {"2018":{"_cm93_relation20_raw":2264},"2217":{"_cm93_relation20_raw":2264}} [] Hachinohe Fishing Harbour 496.5 7 7 [{"feature_id":606672,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2172,"native_scale":20000,"lon":141.5649122425669,"lat":40.541878607023406,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":496.5,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606659,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2159,"native_scale":20000,"lon":141.56571079791942,"lat":40.54243775472137,"text":"O Saki","prefix":[0,12,0],"same_cell":true,"distance_m":518.82,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606668,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2168,"native_scale":20000,"lon":141.5648969835474,"lat":40.54151261691194,"text":"(Ebisuhama)","prefix":[0,12,0],"same_cell":true,"distance_m":521.77,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606666,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2166,"native_scale":20000,"lon":141.56636184941704,"lat":40.546072100989115,"text":"Hinode Iwa","prefix":[0,12,0],"same_cell":true,"distance_m":535.77,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606682,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2182,"native_scale":20000,"lon":141.5536409135144,"lat":40.54388643386297,"text":"Ko Ne","prefix":[0,12,0],"same_cell":true,"distance_m":569.36,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606656,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2156,"native_scale":20000,"lon":141.55759299955852,"lat":40.5390929653105,"text":"Kabu Shima","prefix":[0,12,0],"same_cell":true,"distance_m":658.9,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606686,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2186,"native_scale":20000,"lon":141.56839129900726,"lat":40.547607108287096,"text":"Ogomune","prefix":[0,12,0],"same_cell":true,"distance_m":758.39,"explicit_relation_overlap":[],"text_relation_fields":{}}]
50 20000 693 03900420\F\03910424.F 2265 141.52588984342862 40.53368910010344 ["LIGHTS","_extgn"] [1997,2235] [{"object_class":"LIGHTS","source_record_index":1997,"field":"OBJNAM","text":"L1"}] {"1997":{"_cm93_relation20_raw":2265},"2235":{"_cm93_relation20_raw":2265}} [] Kawaragi No 1 Wharf [Port Island] 450.52 6 6 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":450.52,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":678.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":701.59,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":727.86,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":794.18,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":798.81,"explicit_relation_overlap":[],"text_relation_fields":{}}]
51 20000 693 03900420\F\03910424.F 2266 141.52561518107802 40.53350099910942 ["LIGHTS","_extgn"] [1993,2226] [{"object_class":"LIGHTS","source_record_index":1993,"field":"OBJNAM","text":"C1"}] {"1993":{"_cm93_relation20_raw":2266},"2226":{"_cm93_relation20_raw":2266}} [] Kawaragi No 1 Wharf [Port Island] 474.92 6 6 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":474.92,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":682.58,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":700.18,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":704.84,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":763.46,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":782.05,"explicit_relation_overlap":[],"text_relation_fields":{}}]
52 20000 693 03900420\F\03910424.F 2267 141.52294485266987 40.53044047091052 ["LIGHTS","_extgn"] [2000,2230] [{"object_class":"LIGHTS","source_record_index":2000,"field":"OBJNAM","text":"C1"}] {"2000":{"_cm93_relation20_raw":2267},"2230":{"_cm93_relation20_raw":2267}} [] Tate Hana 356.94 10 10 [{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":356.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":433.07,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":486.39,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606674,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2174,"native_scale":20000,"lon":141.51944036453034,"lat":40.52694255323407,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":488.89,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606669,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2169,"native_scale":20000,"lon":141.51948105524897,"lat":40.52654597546327,"text":"(Konakano)","prefix":[0,12,0],"same_cell":true,"distance_m":522.72,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":565.4,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606685,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2185,"native_scale":20000,"lon":141.52122058346913,"lat":40.52476643093591,"text":"Niida Kawa","prefix":[0,12,0],"same_cell":true,"distance_m":647.54,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606714,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2214,"native_scale":20000,"lon":141.525121806115,"lat":40.52382579545554,"text":"Uenoyama","prefix":[0,12,0],"same_cell":true,"distance_m":758.18,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":762.13,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":768.99,"explicit_relation_overlap":[],"text_relation_fields":{}}]
53 20000 693 03900420\F\03910424.F 2268 141.52094592111857 40.55528669920913 ["LIGHTS","_extgn"] [2021,2232] [] {"2021":{"_cm93_relation20_raw":2268},"2232":{"_cm93_relation20_raw":2268}} [] 0 0 []
54 20000 693 03900420\F\03910424.F 2269 141.50160257076368 40.552715074589145 ["LIGHTS","_extgn"] [2022,2222] [] {"2022":{"_cm93_relation20_raw":2269},"2222":{"_cm93_relation20_raw":2269}} [] Hamana-Yachi 667.81 1 1 [{"feature_id":606692,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2192,"native_scale":20000,"lon":141.4941968599783,"lat":40.550616027137096,"text":"Hamana-Yachi","prefix":[0,12,0],"same_cell":true,"distance_m":667.81,"explicit_relation_overlap":[],"text_relation_fields":{}}]
55 20000 693 03900420\F\03910424.F 2270 141.5254269865045 40.53363317824145 ["LIGHTS","_extgn"] [1994,2219] [{"object_class":"LIGHTS","source_record_index":1994,"field":"OBJNAM","text":"C2"}] {"1994":{"_cm93_relation20_raw":2270},"2219":{"_cm93_relation20_raw":2270}} [] Kawaragi No 1 Wharf [Port Island] 463.74 6 6 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":463.74,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":688.47,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":704.19,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":726.48,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":765.83,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":799.52,"explicit_relation_overlap":[],"text_relation_fields":{}}]
56 20000 693 03900420\F\03910424.F 2271 141.53291407872706 40.54241742215959 ["LIGHTS","_extgn"] [2013,2231] [] {"2013":{"_cm93_relation20_raw":2271},"2231":{"_cm93_relation20_raw":2271}} [] Kawaragi No 1 Wharf [Port Island] 745.65 1 1 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":745.65,"explicit_relation_overlap":[],"text_relation_fields":{}}]
57 20000 693 03900420\F\03910424.F 2272 141.52043728713608 40.53762384848427 ["BCNLAT","LIGHTS"] [1976,2003] [] {"1976":{"_cm93_relation20_raw":2272},"2003":{"_cm93_relation20_raw":2272}} [] Service Co., Inc. 315.62 5 5 [{"feature_id":606663,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2163,"native_scale":20000,"lon":141.51672934540358,"lat":40.53728325278595,"text":"Service Co., Inc.","prefix":[0,12,0],"same_cell":true,"distance_m":315.62,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606660,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2160,"native_scale":20000,"lon":141.51662761860706,"lat":40.5377102680129,"text":"Pier for Tohoku Port","prefix":[0,12,0],"same_cell":true,"distance_m":322.08,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":524.46,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":670.56,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606713,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2213,"native_scale":20000,"lon":141.51138360224738,"lat":40.53952505236351,"text":"Toyosu","prefix":[0,12,0],"same_cell":true,"distance_m":793.75,"explicit_relation_overlap":[],"text_relation_fields":{}}]
58 20000 693 03900420\F\03910424.F 2273 141.53323451813606 40.53630720776126 ["BCNLAT","LIGHTS"] [1975,2004] [] {"1975":{"_cm93_relation20_raw":2273},"2004":{"_cm93_relation20_raw":2273}} [] Kawaragi No 1 Wharf [Port Island] 578.19 3 3 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":578.19,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":749.06,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":780.0,"explicit_relation_overlap":[],"text_relation_fields":{}}]
59 20000 693 03900420\F\03910424.F 2274 141.52411979716945 40.545101266953736 ["LIGHTS","_extgn"] [2014,2223] [] {"2014":{"_cm93_relation20_raw":2274},"2223":{"_cm93_relation20_raw":2274}} [] 0 0 []
60 20000 693 03900420\F\03910424.F 2275 141.53280217925092 40.535966605369474 ["LIGHTS","_extgn"] [2012,2221] [] {"2012":{"_cm93_relation20_raw":2275},"2221":{"_cm93_relation20_raw":2275}} [] Kawaragi No 1 Wharf [Port Island] 555.07 3 3 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":555.07,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":706.78,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":738.0,"explicit_relation_overlap":[],"text_relation_fields":{}}]
61 20000 693 03900420\F\03910424.F 2276 141.5251777558531 40.5334501609123 ["LIGHTS","_extgn"] [1996,2225] [{"object_class":"LIGHTS","source_record_index":1996,"field":"OBJNAM","text":"R2"}] {"1996":{"_cm93_relation20_raw":2276},"2225":{"_cm93_relation20_raw":2276}} [] Kawaragi No 1 Wharf [Port Island] 488.52 7 7 [{"feature_id":606657,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2157,"native_scale":20000,"lon":141.52664262172271,"lat":40.53770010101532,"text":"Kawaragi No 1 Wharf [Port Island]","prefix":[0,12,0],"same_cell":true,"distance_m":488.52,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606715,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2215,"native_scale":20000,"lon":141.5175685914747,"lat":40.53200125607943,"text":"Uheikawara","prefix":[0,12,0],"same_cell":true,"distance_m":662.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606673,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2173,"native_scale":20000,"lon":141.5319018971019,"lat":40.52964735441949,"text":"Hachinohe Fishing Harbour","prefix":[0,12,0],"same_cell":true,"distance_m":708.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606670,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2170,"native_scale":20000,"lon":141.53193241514083,"lat":40.529362643645946,"text":"(Tatehana)","prefix":[0,12,0],"same_cell":true,"distance_m":729.7,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606665,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2165,"native_scale":20000,"lon":141.52014736576604,"lat":40.52803567212025,"text":"Tate Hana","prefix":[0,12,0],"same_cell":true,"distance_m":737.04,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606708,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2208,"native_scale":20000,"lon":141.5273089322398,"lat":40.52658665021444,"text":"Shinminato","prefix":[0,12,0],"same_cell":true,"distance_m":784.16,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":606711,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2211,"native_scale":20000,"lon":141.5229906297283,"lat":40.52654597546327,"text":"Tatehana","prefix":[0,12,0],"same_cell":true,"distance_m":789.65,"explicit_relation_overlap":[],"text_relation_fields":{}}]
62 20000 693 03900420\F\03910424.F 2277 141.4824321559628 40.58365441116841 ["LIGHTS","_extgn"] [2023,2224] [] {"2023":{"_cm93_relation20_raw":2277},"2224":{"_cm93_relation20_raw":2277}} [] Ichikawa Basin 671.1 1 1 [{"feature_id":606678,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2178,"native_scale":20000,"lon":141.47547404308204,"lat":40.586570273697056,"text":"Ichikawa Basin","prefix":[0,12,0],"same_cell":true,"distance_m":671.1,"explicit_relation_overlap":[],"text_relation_fields":{}}]
63 20000 693 03900420\F\03910424.F 2278 141.54953623727556 40.549818066898325 ["LIGHTS","_extgn"] [2020,2234] [] {"2020":{"_cm93_relation20_raw":2278},"2234":{"_cm93_relation20_raw":2278}} [] Ko Ne 745.2 1 1 [{"feature_id":606682,"cell_id":693,"source_relative_path":"03900420\\F\\03910424.F","source_record_index":2182,"native_scale":20000,"lon":141.5536409135144,"lat":40.54388643386297,"text":"Ko Ne","prefix":[0,12,0],"same_cell":true,"distance_m":745.2,"explicit_relation_overlap":[],"text_relation_fields":{}}]
64 50000 351 03900420\E\03910424.E 141.48717605911006 40.55602965032755 ["TOWERS"] [847] [] {} [] HACHINOHE 533.7 5 5 [{"feature_id":513876,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":946,"native_scale":50000,"lon":141.48158617070516,"lat":40.558265740394994,"text":"HACHINOHE","prefix":[0,12,0],"same_cell":true,"distance_m":533.7,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513897,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":967,"native_scale":50000,"lon":141.48120469515436,"lat":40.55764065910144,"text":"STEEL JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":535.33,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513875,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":945,"native_scale":50000,"lon":141.48103684591197,"lat":40.55301589260543,"text":"H A C H I T A R O","prefix":[0,12,0],"same_cell":true,"distance_m":617.51,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513885,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":955,"native_scale":50000,"lon":141.48523307697113,"lat":40.561558755232554,"text":"MITSUBUSHI JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":636.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513889,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":959,"native_scale":50000,"lon":141.4954515353928,"lat":40.55533848010609,"text":"No 1 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":703.35,"explicit_relation_overlap":[],"text_relation_fields":{}}]
65 50000 351 03900420\E\03910424.E 141.48734390835241 40.556837700583436 ["TOWERS"] [843] [] {} [] HACHINOHE 511.68 5 5 [{"feature_id":513876,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":946,"native_scale":50000,"lon":141.48158617070516,"lat":40.558265740394994,"text":"HACHINOHE","prefix":[0,12,0],"same_cell":true,"distance_m":511.68,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513897,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":967,"native_scale":50000,"lon":141.48120469515436,"lat":40.55764065910144,"text":"STEEL JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":526.28,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513885,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":955,"native_scale":50000,"lon":141.48523307697113,"lat":40.561558755232554,"text":"MITSUBUSHI JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":554.42,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513875,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":945,"native_scale":50000,"lon":141.48103684591197,"lat":40.55301589260543,"text":"H A C H I T A R O","prefix":[0,12,0],"same_cell":true,"distance_m":681.56,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513889,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":959,"native_scale":50000,"lon":141.4954515353928,"lat":40.55533848010609,"text":"No 1 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":704.95,"explicit_relation_overlap":[],"text_relation_fields":{}}]
66 50000 351 03900420\E\03910424.E 141.48806616872866 40.55652769503456 ["TOWERS"] [836] [] {} [] HACHINOHE 580.55 5 5 [{"feature_id":513876,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":946,"native_scale":50000,"lon":141.48158617070516,"lat":40.558265740394994,"text":"HACHINOHE","prefix":[0,12,0],"same_cell":true,"distance_m":580.55,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513897,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":967,"native_scale":50000,"lon":141.48120469515436,"lat":40.55764065910144,"text":"STEEL JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":592.73,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513885,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":955,"native_scale":50000,"lon":141.48523307697113,"lat":40.561558755232554,"text":"MITSUBUSHI JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":608.48,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513889,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":959,"native_scale":50000,"lon":141.4954515353928,"lat":40.55533848010609,"text":"No 1 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":637.8,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513875,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":945,"native_scale":50000,"lon":141.48103684591197,"lat":40.55301589260543,"text":"H A C H I T A R O","prefix":[0,12,0],"same_cell":true,"distance_m":710.75,"explicit_relation_overlap":[],"text_relation_fields":{}}]
67 50000 351 03900420\E\03910424.E 141.48813737749816 40.55581111933769 ["TOWERS"] [835] [] {} [] HACHINOHE 617.1 5 5 [{"feature_id":513876,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":946,"native_scale":50000,"lon":141.48158617070516,"lat":40.558265740394994,"text":"HACHINOHE","prefix":[0,12,0],"same_cell":true,"distance_m":617.1,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513897,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":967,"native_scale":50000,"lon":141.48120469515436,"lat":40.55764065910144,"text":"STEEL JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":620.01,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513889,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":959,"native_scale":50000,"lon":141.4954515353928,"lat":40.55533848010609,"text":"No 1 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":620.16,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513875,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":945,"native_scale":50000,"lon":141.48103684591197,"lat":40.55301589260543,"text":"H A C H I T A R O","prefix":[0,12,0],"same_cell":true,"distance_m":675.63,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513885,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":955,"native_scale":50000,"lon":141.48523307697113,"lat":40.561558755232554,"text":"MITSUBUSHI JETTY","prefix":[0,12,0],"same_cell":true,"distance_m":684.59,"explicit_relation_overlap":[],"text_relation_fields":{}}]
68 50000 351 03900420\E\03910424.E 141.4973487404656 40.52984659582941 ["TOWERS"] [837] [] {} [] MABECHI KAWA 724.41 2 2 [{"feature_id":513884,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":954,"native_scale":50000,"lon":141.49523790908432,"lat":40.536160743936016,"text":"MABECHI KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":724.41,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513880,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":950,"native_scale":50000,"lon":141.5020485192519,"lat":40.53586589358092,"text":"K A W A R A G I","prefix":[0,12,0],"same_cell":true,"distance_m":778.29,"explicit_relation_overlap":[],"text_relation_fields":{}}]
69 50000 351 03900420\E\03910424.E 141.49998855127737 40.535169431555296 ["TOWERS"] [838] [] {} [] K A W A R A G I 190.53 2 2 [{"feature_id":513880,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":950,"native_scale":50000,"lon":141.5020485192519,"lat":40.53586589358092,"text":"K A W A R A G I","prefix":[0,12,0],"same_cell":true,"distance_m":190.53,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513884,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":954,"native_scale":50000,"lon":141.49523790908432,"lat":40.536160743936016,"text":"MABECHI KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":416.33,"explicit_relation_overlap":[],"text_relation_fields":{}}]
70 50000 351 03900420\E\03910424.E 141.5003496814655 40.5374977215057 ["TOWERS"] [840] [] {} [] K A W A R A G I 231.38 2 2 [{"feature_id":513880,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":950,"native_scale":50000,"lon":141.5020485192519,"lat":40.53586589358092,"text":"K A W A R A G I","prefix":[0,12,0],"same_cell":true,"distance_m":231.38,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513884,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":954,"native_scale":50000,"lon":141.49523790908432,"lat":40.536160743936016,"text":"MABECHI KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":456.85,"explicit_relation_overlap":[],"text_relation_fields":{}}]
71 50000 351 03900420\E\03910424.E 141.51056813988717 40.53031941496734 ["BCNSPP"] [857] [] {} [] TANKS 620.33 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":620.33,"explicit_relation_overlap":[],"text_relation_fields":{}}]
72 50000 351 03900420\E\03910424.E 141.510807197899 40.53193104223212 ["BCNSPP"] [858] [] {} [] TANKS 580.3 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":580.3,"explicit_relation_overlap":[],"text_relation_fields":{}}]
73 50000 351 03900420\E\03910424.E 141.52138678650883 40.52817899202388 ["SISTAT"] [914] [] {} [] TATE HANA 164.96 3 3 [{"feature_id":513899,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":969,"native_scale":50000,"lon":141.52025761887836,"lat":40.526968936454345,"text":"TATE HANA","prefix":[0,12,0],"same_cell":true,"distance_m":164.96,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513888,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":958,"native_scale":50000,"lon":141.52083237537494,"lat":40.52605375386633,"text":"NIIDA KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":240.92,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":504.88,"explicit_relation_overlap":[],"text_relation_fields":{}}]
74 50000 351 03900420\E\03910424.E 141.52366546713245 40.529897436757 ["SISTAT"] [915] [] {} [] TATE HANA 434.74 3 3 [{"feature_id":513899,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":969,"native_scale":50000,"lon":141.52025761887836,"lat":40.526968936454345,"text":"TATE HANA","prefix":[0,12,0],"same_cell":true,"distance_m":434.74,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513888,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":958,"native_scale":50000,"lon":141.52083237537494,"lat":40.52605375386633,"text":"NIIDA KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":489.9,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":546.36,"explicit_relation_overlap":[],"text_relation_fields":{}}]
75 50000 351 03900420\E\03910424.E 141.5467930581943 40.52788410654553 ["TOWERS"] [846] [] {} [] SHIROGANE WHARF 102.45 3 3 [{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":102.45,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":497.0,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":508.83,"explicit_relation_overlap":[],"text_relation_fields":{}}]
76 50000 351 03900420\E\03910424.E 141.54746445516378 40.527868853813075 ["TOWERS"] [844] [] {} [] SHIROGANE WHARF 146.94 3 3 [{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":146.94,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":460.82,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":470.32,"explicit_relation_overlap":[],"text_relation_fields":{}}]
77 50000 351 03900420\E\03910424.E 141.54755600929602 40.52753837709095 ["TOWERS"] [850] [] {} [] SHIROGANE WHARF 175.32 3 3 [{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":175.32,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":426.6,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":493.43,"explicit_relation_overlap":[],"text_relation_fields":{}}]
78 50000 351 03900420\E\03910424.E 141.5533900420534 40.526968936454345 ["TOWERS"] [845] [] {} [] HACHINOHE 362.95 3 3 [{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":362.95,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":487.15,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":649.83,"explicit_relation_overlap":[],"text_relation_fields":{}}]
79 50000 351 03900420\E\03910424.E 141.55384272637372 40.52673505764836 ["TOWERS"] [849] [] {} [] HACHINOHE 370.79 3 3 [{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":370.79,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":526.44,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":693.93,"explicit_relation_overlap":[],"text_relation_fields":{}}]
80 50000 351 03900420\E\03910424.E 141.55386815807714 40.527284163118864 ["TOWERS"] [851] [] {} [] HACHINOHE 415.91 3 3 [{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":415.91,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":472.97,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":680.48,"explicit_relation_overlap":[],"text_relation_fields":{}}]
81 50000 351 03900420\E\03910424.E 141.55415807949575 40.52702486387398 ["TOWERS"] [848] [] {} [] HACHINOHE 412.25 3 3 [{"feature_id":513877,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":947,"native_scale":50000,"lon":141.55060781370267,"lat":40.524482661283564,"text":"HACHINOHE","prefix":[16,12,0],"same_cell":true,"distance_m":412.25,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":510.09,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513895,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":965,"native_scale":50000,"lon":141.5459995890486,"lat":40.52858064429507,"text":"SHIROGANE WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":710.91,"explicit_relation_overlap":[],"text_relation_fields":{}}]
82 50000 351 03900420\E\03910424.E 141.55434627410082 40.5319869655108 ["TOWERS"] [841] [] {} [] SILOS 288.35 1 1 [{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":288.35,"explicit_relation_overlap":[],"text_relation_fields":{}}]
83 50000 351 03900420\E\03910424.E 141.55470740428896 40.53283089295858 ["TOWERS"] [839] [] {} [] SILOS 359.82 1 1 [{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":359.82,"explicit_relation_overlap":[],"text_relation_fields":{}}]
84 50000 351 03900420\E\03910424.E 141.55557208220415 40.533908664364674 ["TOWERS"] [842] [] {} [] SILOS 491.0 2 2 [{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":491.0,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513882,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":952,"native_scale":50000,"lon":141.55808982083965,"lat":40.54033426236749,"text":"KABU SH.","prefix":[0,12,0],"same_cell":true,"distance_m":745.5,"explicit_relation_overlap":[],"text_relation_fields":{}}]
85 50000 351 03900420\E\03910424.E 141.57267744590357 40.5397649304665 ["RTPBCN"] [913] [] {} [] SAME KADO 92.49 4 4 [{"feature_id":513894,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":964,"native_scale":50000,"lon":141.5729622809815,"lat":40.540568093710775,"text":"SAME KADO","prefix":[0,12,0],"same_cell":true,"distance_m":92.49,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513886,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":956,"native_scale":50000,"lon":141.57202639429678,"lat":40.5385550841112,"text":"MONOMIWA","prefix":[0,12,0],"same_cell":true,"distance_m":145.34,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513900,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":970,"native_scale":50000,"lon":141.57416265738146,"lat":40.5442127071797,"text":"TODO SH.","prefix":[0,12,0],"same_cell":true,"distance_m":510.25,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513892,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":962,"native_scale":50000,"lon":141.5659329581648,"lat":40.54184906832527,"text":"O SAKI","prefix":[0,12,0],"same_cell":true,"distance_m":615.24,"explicit_relation_overlap":[],"text_relation_fields":{}}]
86 50000 351 03900420\E\03910424.E 141.57687367696272 40.54005976366212 ["BCNSPP"] [859] [] {} [] SAME KADO 335.32 3 3 [{"feature_id":513894,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":964,"native_scale":50000,"lon":141.5729622809815,"lat":40.540568093710775,"text":"SAME KADO","prefix":[0,12,0],"same_cell":true,"distance_m":335.32,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513886,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":956,"native_scale":50000,"lon":141.57202639429678,"lat":40.5385550841112,"text":"MONOMIWA","prefix":[0,12,0],"same_cell":true,"distance_m":442.47,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513900,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":970,"native_scale":50000,"lon":141.57416265738146,"lat":40.5442127071797,"text":"TODO SH.","prefix":[0,12,0],"same_cell":true,"distance_m":515.49,"explicit_relation_overlap":[],"text_relation_fields":{}}]
87 50000 351 03900420\E\03910424.E 992 141.51457109000057 40.552446668497204 ["TOWERS","LIGHTS"] [831,864] [] {"831":{"_cm93_relation20_raw":992},"864":{"_cm93_relation20_raw":992}} [] 0 0 []
88 50000 351 03900420\E\03910424.E 993 141.55525672908215 40.53632341943859 ["TOWERS","LIGHTS"] [833,870] [] {"833":{"_cm93_relation20_raw":993},"870":{"_cm93_relation20_raw":993}} [] KABU SH. 506.18 3 3 [{"feature_id":513882,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":952,"native_scale":50000,"lon":141.55808982083965,"lat":40.54033426236749,"text":"KABU SH.","prefix":[0,12,0],"same_cell":true,"distance_m":506.18,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513887,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":957,"native_scale":50000,"lon":141.54777472194513,"lat":40.538041655314935,"text":"N. BREAKWATER","prefix":[0,12,0],"same_cell":true,"distance_m":660.51,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":683.26,"explicit_relation_overlap":[],"text_relation_fields":{}}]
89 50000 351 03900420\E\03910424.E 994 141.54818162919935 40.53947009597325 ["TOWERS","LIGHTS"] [830,871] [] {"830":{"_cm93_relation20_raw":994},"871":{"_cm93_relation20_raw":994}} [] N. BREAKWATER 162.51 2 2 [{"feature_id":513887,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":957,"native_scale":50000,"lon":141.54777472194513,"lat":40.538041655314935,"text":"N. BREAKWATER","prefix":[0,12,0],"same_cell":true,"distance_m":162.51,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513883,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":953,"native_scale":50000,"lon":141.55228630612632,"lat":40.54426862020725,"text":"KO NE","prefix":[0,12,0],"same_cell":true,"distance_m":636.4,"explicit_relation_overlap":[],"text_relation_fields":{}}]
90 50000 351 03900420\E\03910424.E 995 141.53501309318457 40.562163473376586 ["TOWERS","LIGHTS"] [834,873] [] {"834":{"_cm93_relation20_raw":995},"873":{"_cm93_relation20_raw":995}} [] 0 0 []
91 50000 351 03900420\E\03910424.E 996 141.57615650292712 40.539856430562644 ["TOWERS","LIGHTS"] [832,865] [] {"832":{"_cm93_relation20_raw":996},"865":{"_cm93_relation20_raw":996}} [] SAME KADO 281.28 3 3 [{"feature_id":513894,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":964,"native_scale":50000,"lon":141.5729622809815,"lat":40.540568093710775,"text":"SAME KADO","prefix":[0,12,0],"same_cell":true,"distance_m":281.28,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513886,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":956,"native_scale":50000,"lon":141.57202639429678,"lat":40.5385550841112,"text":"MONOMIWA","prefix":[0,12,0],"same_cell":true,"distance_m":377.82,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513900,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":970,"native_scale":50000,"lon":141.57416265738146,"lat":40.5442127071797,"text":"TODO SH.","prefix":[0,12,0],"same_cell":true,"distance_m":512.86,"explicit_relation_overlap":[],"text_relation_fields":{}}]
92 50000 351 03900420\E\03910424.E 997 141.5340263430931 40.538229743548484 ["TOWERS","LIGHTS"] [828,872] [] {"828":{"_cm93_relation20_raw":997},"872":{"_cm93_relation20_raw":997}} [] 0 0 []
93 50000 351 03900420\E\03910424.E 998 141.56775895446813 40.5424742970387 ["TOWERS","LIGHTS","LIGHTS"] [829,874,883] [] {"829":{"_cm93_relation20_raw":998},"874":{"_cm93_relation20_raw":998},"883":{"_cm93_relation20_raw":998}} [] O SAKI 169.24 7 7 [{"feature_id":513892,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":962,"native_scale":50000,"lon":141.5659329581648,"lat":40.54184906832527,"text":"O SAKI","prefix":[0,12,0],"same_cell":true,"distance_m":169.24,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513878,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":948,"native_scale":50000,"lon":141.56686884484952,"lat":40.54589516057982,"text":"HINODE IWA(ILLUM)","prefix":[0,12,0],"same_cell":true,"distance_m":387.75,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513894,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":964,"native_scale":50000,"lon":141.5729622809815,"lat":40.540568093710775,"text":"SAME KADO","prefix":[0,12,0],"same_cell":true,"distance_m":488.11,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513893,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":963,"native_scale":50000,"lon":141.5689796762308,"lat":40.54747083389779,"text":"OGOMUNE","prefix":[0,12,0],"same_cell":true,"distance_m":565.08,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513886,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":956,"native_scale":50000,"lon":141.57202639429678,"lat":40.5385550841112,"text":"MONOMIWA","prefix":[0,12,0],"same_cell":true,"distance_m":565.65,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513900,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":970,"native_scale":50000,"lon":141.57416265738146,"lat":40.5442127071797,"text":"TODO SH.","prefix":[0,12,0],"same_cell":true,"distance_m":574.6,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513881,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":951,"native_scale":50000,"lon":141.57125835685446,"lat":40.54915320545376,"text":"KABAYAMA NE","prefix":[0,12,0],"same_cell":true,"distance_m":799.36,"explicit_relation_overlap":[],"text_relation_fields":{}}]
94 50000 351 03900420\E\03910424.E 999 141.5684761285037 40.56065929040829 ["BOYSPP","LIGHTS"] [860,896] [] {"860":{"_cm93_relation20_raw":999},"896":{"_cm93_relation20_raw":999}} [] 0 0 []
95 50000 351 03900420\E\03910424.E 1000 141.51750082223097 40.5455495240557 ["BOYSPP","LIGHTS"] [861,897] [] {"861":{"_cm93_relation20_raw":1000},"897":{"_cm93_relation20_raw":1000}} [] 0 0 []
96 50000 351 03900420\E\03910424.E 1001 141.52584750728323 40.53372564780069 ["LIGHTS","_extgn"] [879,977] [] {"879":{"_cm93_relation20_raw":1001},"977":{"_cm93_relation20_raw":1001}} [] TANKS 725.86 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":725.86,"explicit_relation_overlap":[],"text_relation_fields":{}}]
97 50000 351 03900420\E\03910424.E 1002 141.52560844927135 40.533562965990825 ["LIGHTS","_extgn"] [875,975] [] {"875":{"_cm93_relation20_raw":1002},"975":{"_cm93_relation20_raw":1002}} [] TANKS 701.19 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":701.19,"explicit_relation_overlap":[],"text_relation_fields":{}}]
98 50000 351 03900420\E\03910424.E 1003 141.52294320675622 40.530431264167966 ["LIGHTS","_extgn"] [881,986] [] {"881":{"_cm93_relation20_raw":1003},"986":{"_cm93_relation20_raw":1003}} [] TATE HANA 446.92 3 3 [{"feature_id":513899,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":969,"native_scale":50000,"lon":141.52025761887836,"lat":40.526968936454345,"text":"TATE HANA","prefix":[0,12,0],"same_cell":true,"distance_m":446.92,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":468.68,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513888,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":958,"native_scale":50000,"lon":141.52083237537494,"lat":40.52605375386633,"text":"NIIDA KAWA","prefix":[0,12,0],"same_cell":true,"distance_m":518.42,"explicit_relation_overlap":[],"text_relation_fields":{}}]
99 50000 351 03900420\E\03910424.E 1004 141.54681340355705 40.537767147215504 ["BCNLAT","LIGHTS"] [852,869] [] {"852":{"_cm93_relation20_raw":1004},"869":{"_cm93_relation20_raw":1004}} [] N. BREAKWATER 86.78 1 1 [{"feature_id":513887,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":957,"native_scale":50000,"lon":141.54777472194513,"lat":40.538041655314935,"text":"N. BREAKWATER","prefix":[0,12,0],"same_cell":true,"distance_m":86.78,"explicit_relation_overlap":[],"text_relation_fields":{}}]
100 50000 351 03900420\E\03910424.E 1005 141.5349622297778 40.56547154065089 ["LIGHTS","_extgn"] [895,989] [] {"895":{"_cm93_relation20_raw":1005},"989":{"_cm93_relation20_raw":1005}} [] 0 0 []
101 50000 351 03900420\E\03910424.E 1006 141.53273441256093 40.53599298441033 ["LIGHTS","_extgn"] [885,982] [] {"885":{"_cm93_relation20_raw":1006},"982":{"_cm93_relation20_raw":1006}} [] 0 0 []
102 50000 351 03900420\E\03910424.E 1007 141.5524745007314 40.53454921840199 ["BCNLAT","LIGHTS"] [856,866] [] {"856":{"_cm93_relation20_raw":1007},"866":{"_cm93_relation20_raw":1007}} [] SILOS 407.77 3 3 [{"feature_id":513896,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":966,"native_scale":50000,"lon":141.55118257019924,"lat":40.531015927405434,"text":"SILOS","prefix":[0,12,0],"same_cell":true,"distance_m":407.77,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513887,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":957,"native_scale":50000,"lon":141.54777472194513,"lat":40.538041655314935,"text":"N. BREAKWATER","prefix":[0,12,0],"same_cell":true,"distance_m":555.47,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513882,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":952,"native_scale":50000,"lon":141.55808982083965,"lat":40.54033426236749,"text":"KABU SH.","prefix":[0,12,0],"same_cell":true,"distance_m":799.36,"explicit_relation_overlap":[],"text_relation_fields":{}}]
103 50000 351 03900420\E\03910424.E 1008 141.52035425935122 40.53766039376199 ["BCNLAT","LIGHTS"] [855,867] [] {"855":{"_cm93_relation20_raw":1008},"867":{"_cm93_relation20_raw":1008}} [] TANKS 697.1 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":697.1,"explicit_relation_overlap":[],"text_relation_fields":{}}]
104 50000 351 03900420\E\03910424.E 1009 141.52412323779345 40.545107310019546 ["LIGHTS","_extgn"] [886,974] [] {"886":{"_cm93_relation20_raw":1009},"974":{"_cm93_relation20_raw":1009}} [] 0 0 []
105 50000 351 03900420\E\03910424.E 1010 141.5310508337966 40.54428386920667 ["LIGHTS","_extgn"] [888,978] [] {"888":{"_cm93_relation20_raw":1010},"978":{"_cm93_relation20_raw":1010}} [] 0 0 []
106 50000 351 03900420\E\03910424.E 1011 141.5495244231383 40.54752166145216 ["LIGHTS","_extgn"] [892,972] [] {"892":{"_cm93_relation20_raw":1011},"972":{"_cm93_relation20_raw":1011}} [] KO NE 430.47 1 1 [{"feature_id":513883,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":953,"native_scale":50000,"lon":141.55228630612632,"lat":40.54426862020725,"text":"KO NE","prefix":[0,12,0],"same_cell":true,"distance_m":430.47,"explicit_relation_overlap":[],"text_relation_fields":{}}]
107 50000 351 03900420\E\03910424.E 1012 141.51802980166147 40.54034951226258 ["LIGHTS","_extgn"] [894,976] [] {"894":{"_cm93_relation20_raw":1012},"976":{"_cm93_relation20_raw":1012}} [] 0 0 []
108 50000 351 03900420\E\03910424.E 1013 141.53316675151854 40.53632341943859 ["BCNLAT","LIGHTS"] [853,868] [] {"853":{"_cm93_relation20_raw":1013},"868":{"_cm93_relation20_raw":1013}} [] 0 0 []
109 50000 351 03900420\E\03910424.E 1014 141.52822282837974 40.54622554676639 ["LIGHTS","_extgn"] [891,983] [] {"891":{"_cm93_relation20_raw":1014},"983":{"_cm93_relation20_raw":1014}} [] 0 0 []
110 50000 351 03900420\E\03910424.E 1015 141.52565422633748 40.53388832921558 ["LIGHTS","_extgn"] [880,987] [] {"880":{"_cm93_relation20_raw":1015},"987":{"_cm93_relation20_raw":1015}} [] TANKS 716.18 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":716.18,"explicit_relation_overlap":[],"text_relation_fields":{}}]
111 50000 351 03900420\E\03910424.E 1016 141.52510490154427 40.53350704402745 ["LIGHTS","_extgn"] [878,990] [] {"878":{"_cm93_relation20_raw":1016},"990":{"_cm93_relation20_raw":1016}} [] TANKS 658.69 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":658.69,"explicit_relation_overlap":[],"text_relation_fields":{}}]
112 50000 351 03900420\E\03910424.E 1017 141.54959563190778 40.54994100842045 ["LIGHTS","_extgn"] [889,981] [] {"889":{"_cm93_relation20_raw":1017},"981":{"_cm93_relation20_raw":1017}} [] KO NE 670.46 1 1 [{"feature_id":513883,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":953,"native_scale":50000,"lon":141.55228630612632,"lat":40.54426862020725,"text":"KO NE","prefix":[0,12,0],"same_cell":true,"distance_m":670.46,"explicit_relation_overlap":[],"text_relation_fields":{}}]
113 50000 351 03900420\E\03910424.E 1018 141.5280092020713 40.558667212294104 ["BCNLAT","LIGHTS"] [854,863] [] {"854":{"_cm93_relation20_raw":1018},"863":{"_cm93_relation20_raw":1018}} [] 0 0 []
114 50000 351 03900420\E\03910424.E 1019 141.54412781567916 40.549463245146605 ["LIGHTS","_extgn"] [890,979] [] {"890":{"_cm93_relation20_raw":1019},"979":{"_cm93_relation20_raw":1019}} [] 0 0 []
115 50000 351 03900420\E\03910424.E 1020 141.55782533112443 40.545163222300296 ["LIGHTS","_extgn"] [893,988] [] {"893":{"_cm93_relation20_raw":1020},"988":{"_cm93_relation20_raw":1020}} [] KO NE 478.49 4 4 [{"feature_id":513883,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":953,"native_scale":50000,"lon":141.55228630612632,"lat":40.54426862020725,"text":"KO NE","prefix":[0,12,0],"same_cell":true,"distance_m":478.49,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513882,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":952,"native_scale":50000,"lon":141.55808982083965,"lat":40.54033426236749,"text":"KABU SH.","prefix":[0,12,0],"same_cell":true,"distance_m":537.42,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513878,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":948,"native_scale":50000,"lon":141.56686884484952,"lat":40.54589516057982,"text":"HINODE IWA(ILLUM)","prefix":[0,12,0],"same_cell":true,"distance_m":768.46,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513892,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":962,"native_scale":50000,"lon":141.5659329581648,"lat":40.54184906832527,"text":"O SAKI","prefix":[0,12,0],"same_cell":true,"distance_m":777.91,"explicit_relation_overlap":[],"text_relation_fields":{}}]
116 50000 351 03900420\E\03910424.E 1021 141.52536939125952 40.533395199960694 ["LIGHTS","_extgn"] [877,980] [] {"877":{"_cm93_relation20_raw":1021},"980":{"_cm93_relation20_raw":1021}} [] TANKS 676.55 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":676.55,"explicit_relation_overlap":[],"text_relation_fields":{}}]
117 50000 351 03900420\E\03910424.E 1022 141.5254151683256 40.53372564780069 ["LIGHTS","_extgn"] [876,985] [] {"876":{"_cm93_relation20_raw":1022},"985":{"_cm93_relation20_raw":1022}} [] TANKS 691.16 1 1 [{"feature_id":513898,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":968,"native_scale":50000,"lon":141.51766867147336,"lat":40.53173276841354,"text":"TANKS","prefix":[0,12,0],"same_cell":true,"distance_m":691.16,"explicit_relation_overlap":[],"text_relation_fields":{}}]
118 50000 351 03900420\E\03910424.E 1023 141.49825919544693 40.55623293432891 ["LIGHTS","_extgn"] [884,984] [] {"884":{"_cm93_relation20_raw":1023},"984":{"_cm93_relation20_raw":1023}} [] No 1 WHARF 257.21 2 2 [{"feature_id":513889,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":959,"native_scale":50000,"lon":141.4954515353928,"lat":40.55533848010609,"text":"No 1 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":257.21,"explicit_relation_overlap":[],"text_relation_fields":{}},{"feature_id":513890,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":960,"native_scale":50000,"lon":141.49809134620457,"lat":40.55028662228105,"text":"No 2 WHARF","prefix":[0,12,0],"same_cell":true,"distance_m":661.35,"explicit_relation_overlap":[],"text_relation_fields":{}}]
119 50000 351 03900420\E\03910424.E 1024 141.50759263059066 40.53502708806053 ["LIGHTS","_extgn"] [882,971] [] {"882":{"_cm93_relation20_raw":1024},"971":{"_cm93_relation20_raw":1024}} [] K A W A R A G I 477.72 1 1 [{"feature_id":513880,"cell_id":351,"source_relative_path":"03900420\\E\\03910424.E","source_record_index":950,"native_scale":50000,"lon":141.5020485192519,"lat":40.53586589358092,"text":"K A W A R A G I","prefix":[0,12,0],"same_cell":true,"distance_m":477.72,"explicit_relation_overlap":[],"text_relation_fields":{}}]
120 50000 351 03900420\E\03910424.E 1025 141.52097987925458 40.555318151462146 ["LIGHTS","_extgn"] [887,973] [] {"887":{"_cm93_relation20_raw":1025},"973":{"_cm93_relation20_raw":1025}} [] 0 0 []
121 200000 40 03900420\C\03900420.C 141.65804316559033 40.467367860055134 ["LIGHTS"] [4877] [] {} [] 0 0 []
122 200000 40 03900420\C\03900420.C 6486 141.53481130881366 40.56513638820441 ["TOWERS","LIGHTS"] [4300,4741] [] {"4300":{"_cm93_relation20_raw":6486},"4741":{"_cm93_relation20_raw":6486}} [] 0 0 []
123 200000 40 03900420\C\03900420.C 6501 141.43965605140164 40.68046315791786 ["TOWERS","LIGHTS"] [4325,4781] [] {"4325":{"_cm93_relation20_raw":6501},"4781":{"_cm93_relation20_raw":6501}} [] 0 0 []
124 200000 40 03900420\C\03900420.C 6510 141.6269147619469 40.49949414054503 ["TOWERS","LIGHTS"] [4291,4747] [] {"4291":{"_cm93_relation20_raw":6510},"4747":{"_cm93_relation20_raw":6510}} [] 0 0 []
125 200000 40 03900420\C\03900420.C 6521 141.5676487228532 40.541909757522724 ["TOWERS","LIGHTS"] [4246,4842] [] {"4246":{"_cm93_relation20_raw":6521},"4842":{"_cm93_relation20_raw":6521}} [] 0 0 []
126 200000 40 03900420\C\03900420.C 6528 141.67305804264188 40.454613089799984 ["TOWERS","LIGHTS"] [4304,4777] [] {"4304":{"_cm93_relation20_raw":6528},"4777":{"_cm93_relation20_raw":6528}} [] 0 0 []
127 200000 40 03900420\C\03900420.C 6548 141.53481130881366 40.56201499793302 ["TOWERS","LIGHTS"] [4364,4830] [] {"4364":{"_cm93_relation20_raw":6548},"4830":{"_cm93_relation20_raw":6548}} [] 0 0 []
128 200000 40 03900420\C\03900420.C 6558 141.51424214797476 40.55215044794532 ["TOWERS","LIGHTS"] [4259,4598] [] {"4259":{"_cm93_relation20_raw":6558},"4598":{"_cm93_relation20_raw":6558}} [] 0 0 []
129 200000 40 03900420\C\03900420.C 6567 141.5765599913472 40.53922443934611 ["TOWERS","LIGHTS"] [4274,4619] [] {"4274":{"_cm93_relation20_raw":6567},"4619":{"_cm93_relation20_raw":6567}} [] Same Kado 528.84 1 1 [{"feature_id":361674,"cell_id":40,"source_relative_path":"03900420\\C\\03900420.C","source_record_index":6002,"native_scale":200000,"lon":141.58071044516635,"lat":40.54278402393275,"text":"Same Kado","prefix":[0,12,0],"same_cell":true,"distance_m":528.84,"explicit_relation_overlap":[],"text_relation_fields":{}}]
130 200000 40 03900420\C\03900420.C 6602 141.52785319505807 40.55864373294613 ["BCNLAT","LIGHTS"] [4439,4737] [] {"4439":{"_cm93_relation20_raw":6602},"4737":{"_cm93_relation20_raw":6602}} [] 0 0 []
131 200000 40 03900420\C\03900420.C 6620 141.3592715266989 40.68775404209214 ["BCNSPP","LIGHTS"] [4540,4584] [] {"4540":{"_cm93_relation20_raw":6620},"4584":{"_cm93_relation20_raw":6620}} [] 0 0 []
132 200000 40 03900420\C\03900420.C 6632 141.54707956201432 40.53735089780069 ["BCNLAT","LIGHTS"] [4422,4714] [] {"4422":{"_cm93_relation20_raw":6632},"4714":{"_cm93_relation20_raw":6632}} [] 0 0 []
133 200000 40 03900420\C\03900420.C 6640 141.6516343766049 40.472369069669675 ["BCNLAT","LIGHTS"] [4460,4646] [] {"4460":{"_cm93_relation20_raw":6640},"4646":{"_cm93_relation20_raw":6640}} [] 0 0 []
134 200000 40 03900420\C\03900420.C 6657 141.5203457565323 40.53735089780069 ["BCNLAT","LIGHTS"] [4492,4673] [] {"4492":{"_cm93_relation20_raw":6657},"4673":{"_cm93_relation20_raw":6657}} [] 0 0 []
135 200000 40 03900420\C\03900420.C 6663 141.53426198404347 40.53797541747083 ["BCNSPP","LIGHTS"] [4538,4784] [] {"4538":{"_cm93_relation20_raw":6663},"4784":{"_cm93_relation20_raw":6663}} [] 0 0 []
136 200000 40 03900420\C\03900420.C 6691 141.55232866537378 40.533978390984394 ["BCNLAT","LIGHTS"] [4500,4670] [] {"4500":{"_cm93_relation20_raw":6691},"4670":{"_cm93_relation20_raw":6691}} [] 0 0 []
137 200000 40 03900420\C\03900420.C 6720 141.47084549113066 40.54653075073066 ["BCNSPP","LIGHTS"] [4539,4839] [] {"4539":{"_cm93_relation20_raw":6720},"4839":{"_cm93_relation20_raw":6720}} [] 0 0 []

View File

@@ -0,0 +1 @@
native_scale,field_name,occurrence_count
1 native_scale field_name occurrence_count

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
rank,score,z,x,y,tile_path,center_lon,center_lat,min_lon,min_lat,max_lon,max_lat,feature_count,detail_feature_count_le_50000,required_groups_present,land_count,depth_count,contour_count,navmark_light_count,hazard_count,point_count,line_count,area_count,top_classes,native_scales
1,6121875,10,887,375,10/887/375.pbf,132.01171875,43.19703272708128,131.8359375,43.06888777416962,132.1875,43.32517767999295,4475,3674,5,818,366,390,191,856,1373,2039,1050,"[{""class"": ""COALNE"", ""count"": 457}, {""class"": ""UWTROC"", ""count"": 440}, {""class"": ""DEPCNT"", ""count"": 390}, {""class"": ""DEPARE"", ""count"": 366}, {""class"": ""SLCONS"", ""count"": 284}, {""class"": ""RIVERS"", ""count"": 229}, {""class"": ""_texto"", ""count"": 169}, {""class"": ""SBDARE"", ""count"": 164}, {""class"": ""OBSTRN"", ""count"": 158}, {""class"": ""LNDELV"", ""count"": 132}, {""class"": ""SLOTOP"", ""count"": 132}, {""class"": ""ROADPT"", ""count"": 130}, {""class"": ""RIVBNK"", ""count"": 103}, {""class"": ""BRTFAC"", ""count"": 94}, {""class"": ""LNDARE"", ""count"": 77}]","[{""scale"": 7500, ""count"": 536}, {""scale"": 20000, ""count"": 1418}, {""scale"": 50000, ""count"": 1720}, {""scale"": 100000, ""count"": 650}, {""scale"": 200000, ""count"": 130}, {""scale"": 1000000, ""count"": 20}, {""scale"": 3000000, ""count"": 1}]"
2,6104723,10,890,377,10/890/377.pbf,133.06640625,42.682301017026845,132.890625,42.553080288955805,133.2421875,42.811521745097885,4323,3504,5,529,401,378,283,1493,2018,1251,1043,"[{""class"": ""UWTROC"", ""count"": 1140}, {""class"": ""DEPARE"", ""count"": 401}, {""class"": ""DEPCNT"", ""count"": 378}, {""class"": ""COALNE"", ""count"": 350}, {""class"": ""SBDARE"", ""count"": 203}, {""class"": ""SLOTOP"", ""count"": 137}, {""class"": ""LIGHTS"", ""count"": 132}, {""class"": ""SLCONS"", ""count"": 109}, {""class"": ""_texto"", ""count"": 104}, {""class"": ""SLOGRD"", ""count"": 98}, {""class"": ""OBSTRN"", ""count"": 81}, {""class"": ""BUISGL"", ""count"": 72}, {""class"": ""LNDARE"", ""count"": 70}, {""class"": ""ROADPT"", ""count"": 62}, {""class"": ""TOPMAR"", ""count"": 60}]","[{""scale"": 7500, ""count"": 881}, {""scale"": 20000, ""count"": 1443}, {""scale"": 50000, ""count"": 1180}, {""scale"": 100000, ""count"": 668}, {""scale"": 200000, ""count"": 112}, {""scale"": 1000000, ""count"": 39}]"
3,6076644,10,914,385,10/914/385.pbf,141.50390625,40.580451442943264,141.328125,40.44694705960049,141.6796875,40.71395582628604,3544,3231,5,647,401,441,132,1062,1632,952,956,"[{""class"": ""WRECKS"", ""count"": 481}, {""class"": ""DEPCNT"", ""count"": 441}, {""class"": ""DEPARE"", ""count"": 401}, {""class"": ""SLCONS"", ""count"": 328}, {""class"": ""SBDARE"", ""count"": 296}, {""class"": ""UWTROC"", ""count"": 176}, {""class"": ""COALNE"", ""count"": 165}, {""class"": ""LNDARE"", ""count"": 154}, {""class"": ""_texto"", ""count"": 113}, {""class"": ""LIGHTS"", ""count"": 96}, {""class"": ""BRTFAC"", ""count"": 89}, {""class"": ""ZEMCNT"", ""count"": 83}, {""class"": ""OBSTRN"", ""count"": 76}, {""class"": ""ITDARE"", ""count"": 68}, {""class"": ""TNKCON"", ""count"": 57}]","[{""scale"": 20000, ""count"": 2239}, {""scale"": 50000, ""count"": 992}, {""scale"": 100000, ""count"": 1}, {""scale"": 200000, ""count"": 278}, {""scale"": 1000000, ""count"": 33}, {""scale"": 3000000, ""count"": 1}]"
4,6023900,10,884,377,10/884/377.pbf,130.95703125,42.682301017026845,130.78125,42.553080288955805,131.1328125,42.811521745097885,3900,2700,5,588,244,227,85,1252,1616,1359,912,"[{""class"": ""UWTROC"", ""count"": 953}, {""class"": ""COALNE"", ""count"": 497}, {""class"": ""DEPARE"", ""count"": 244}, {""class"": ""DEPCNT"", ""count"": 227}, {""class"": ""SBDARE"", ""count"": 197}, {""class"": ""SLOTOP"", ""count"": 183}, {""class"": ""RIVERS"", ""count"": 147}, {""class"": ""LNDRGN"", ""count"": 138}, {""class"": ""_texto"", ""count"": 123}, {""class"": ""SLOGRD"", ""count"": 114}, {""class"": ""WEDKLP"", ""count"": 111}, {""class"": ""RIVBNK"", ""count"": 107}, {""class"": ""ROADPT"", ""count"": 76}, {""class"": ""LNDELV"", ""count"": 75}, {""class"": ""LNDARE"", ""count"": 57}]","[{""scale"": 7500, ""count"": 380}, {""scale"": 20000, ""count"": 2320}, {""scale"": 100000, ""count"": 1051}, {""scale"": 200000, ""count"": 125}, {""scale"": 1000000, ""count"": 24}]"
5,5997990,10,911,351,10/911/351.pbf,140.44921875,49.03773445996431,140.2734375,48.92249926375824,140.625,49.15296965617039,3190,2448,5,425,194,182,171,1106,1506,944,730,"[{""class"": ""UWTROC"", ""count"": 871}, {""class"": ""COALNE"", ""count"": 343}, {""class"": ""DEPARE"", ""count"": 194}, {""class"": ""DEPCNT"", ""count"": 182}, {""class"": ""SLOTOP"", ""count"": 148}, {""class"": ""_texto"", ""count"": 146}, {""class"": ""SBDARE"", ""count"": 116}, {""class"": ""SLOGRD"", ""count"": 85}, {""class"": ""BUAARE"", ""count"": 76}, {""class"": ""BCNSPP"", ""count"": 70}, {""class"": ""OBSTRN"", ""count"": 57}, {""class"": ""LNDELV"", ""count"": 55}, {""class"": ""RIVERS"", ""count"": 55}, {""class"": ""SEAARE"", ""count"": 52}, {""class"": ""LIGHTS"", ""count"": 51}]","[{""scale"": 20000, ""count"": 1220}, {""scale"": 50000, ""count"": 1228}, {""scale"": 100000, ""count"": 534}, {""scale"": 200000, ""count"": 176}, {""scale"": 1000000, ""count"": 31}, {""scale"": 3000000, ""count"": 1}]"
6,5954428,10,912,381,10/912/381.pbf,140.80078125,41.6399444886017,140.625,41.50857729743934,140.9765625,41.77131167976407,2228,2022,5,408,160,190,78,622,907,732,581,"[{""class"": ""UWTROC"", ""count"": 326}, {""class"": ""SBDARE"", ""count"": 216}, {""class"": ""SLCONS"", ""count"": 204}, {""class"": ""ZEMCNT"", ""count"": 198}, {""class"": ""ITDARE"", ""count"": 195}, {""class"": ""DEPCNT"", ""count"": 190}, {""class"": ""DEPARE"", ""count"": 160}, {""class"": ""COALNE"", ""count"": 112}, {""class"": ""LNDARE"", ""count"": 92}, {""class"": ""_texto"", ""count"": 79}, {""class"": ""TOWERS"", ""count"": 46}, {""class"": ""OBSTRN"", ""count"": 40}, {""class"": ""LIGHTS"", ""count"": 38}, {""class"": ""BUISGL"", ""count"": 35}, {""class"": ""BUAARE"", ""count"": 32}]","[{""scale"": 20000, ""count"": 903}, {""scale"": 50000, ""count"": 1119}, {""scale"": 200000, ""count"": 189}, {""scale"": 1000000, ""count"": 17}]"
7,5951203,10,856,384,10/856/384.pbf,121.11328125,40.84692694795308,120.9375,40.71395582628604,121.2890625,40.97989806962013,2303,1989,5,454,294,299,354,348,746,711,840,"[{""class"": ""SLCONS"", ""count"": 347}, {""class"": ""DEPCNT"", ""count"": 299}, {""class"": ""DEPARE"", ""count"": 294}, {""class"": ""SBDARE"", ""count"": 239}, {""class"": ""LIGHTS"", ""count"": 134}, {""class"": ""TOPMAR"", ""count"": 102}, {""class"": ""ITDARE"", ""count"": 92}, {""class"": ""ZEMCNT"", ""count"": 73}, {""class"": ""BOYLAT"", ""count"": 67}, {""class"": ""UWTROC"", ""count"": 63}, {""class"": ""$LINES"", ""count"": 60}, {""class"": ""COALNE"", ""count"": 58}, {""class"": ""_texto"", ""count"": 50}, {""class"": ""LNDARE"", ""count"": 49}, {""class"": ""LAKSHR"", ""count"": 41}]","[{""scale"": 20000, ""count"": 1042}, {""scale"": 50000, ""count"": 947}, {""scale"": 100000, ""count"": 206}, {""scale"": 200000, ""count"": 93}, {""scale"": 1000000, ""count"": 14}, {""scale"": 3000000, ""count"": 1}]"
8,5926940,10,887,376,10/887/376.pbf,132.01171875,42.94020475963375,131.8359375,42.811521745097885,132.1875,43.06888777416962,2340,1746,5,501,134,209,133,767,1089,714,534,"[{""class"": ""UWTROC"", ""count"": 544}, {""class"": ""COALNE"", ""count"": 303}, {""class"": ""DEPCNT"", ""count"": 209}, {""class"": ""LNDARE"", ""count"": 160}, {""class"": ""DEPARE"", ""count"": 134}, {""class"": ""SBDARE"", ""count"": 128}, {""class"": ""_texto"", ""count"": 102}, {""class"": ""OBSTRN"", ""count"": 59}, {""class"": ""LIGHTS"", ""count"": 49}, {""class"": ""SLOTOP"", ""count"": 40}, {""class"": ""SLCONS"", ""count"": 38}, {""class"": ""RESARE"", ""count"": 35}, {""class"": ""BCNSPP"", ""count"": 31}, {""class"": ""SLOGRD"", ""count"": 30}, {""class"": ""SEAARE"", ""count"": 28}]","[{""scale"": 7500, ""count"": 1}, {""scale"": 20000, ""count"": 718}, {""scale"": 50000, ""count"": 1027}, {""scale"": 100000, ""count"": 474}, {""scale"": 200000, ""count"": 78}, {""scale"": 1000000, ""count"": 38}, {""scale"": 3000000, ""count"": 2}, {""scale"": 20000000, ""count"": 2}]"
9,5925129,10,892,376,10/892/376.pbf,133.76953125,42.94020475963375,133.59375,42.811521745097885,133.9453125,43.06888777416962,2329,1728,5,393,73,67,31,734,865,936,522,"[{""class"": ""UWTROC"", ""count"": 566}, {""class"": ""COALNE"", ""count"": 326}, {""class"": ""RIVERS"", ""count"": 207}, {""class"": ""RIVBNK"", ""count"": 120}, {""class"": ""SBDARE"", ""count"": 119}, {""class"": ""SLOTOP"", ""count"": 93}, {""class"": ""LNDRGN"", ""count"": 88}, {""class"": ""ZEMCNT"", ""count"": 81}, {""class"": ""DEPARE"", ""count"": 73}, {""class"": ""SLOGRD"", ""count"": 72}, {""class"": ""ITDARE"", ""count"": 69}, {""class"": ""DEPCNT"", ""count"": 67}, {""class"": ""LNDELV"", ""count"": 60}, {""class"": ""LNDARE"", ""count"": 55}, {""class"": ""_texto"", ""count"": 54}]","[{""scale"": 20000, ""count"": 1728}, {""scale"": 100000, ""count"": 466}, {""scale"": 200000, ""count"": 114}, {""scale"": 1000000, ""count"": 21}]"
10,5913497,10,885,376,10/885/376.pbf,131.30859375,42.94020475963375,131.1328125,42.811521745097885,131.484375,43.06888777416962,2397,1611,5,357,88,91,50,678,887,1039,471,"[{""class"": ""UWTROC"", ""count"": 559}, {""class"": ""COALNE"", ""count"": 278}, {""class"": ""RIVERS"", ""count"": 240}, {""class"": ""SLOTOP"", ""count"": 119}, {""class"": ""DEPCNT"", ""count"": 91}, {""class"": ""DEPARE"", ""count"": 88}, {""class"": ""RIVBNK"", ""count"": 84}, {""class"": ""SLOGRD"", ""count"": 77}, {""class"": ""SBDARE"", ""count"": 74}, {""class"": ""ROADPT"", ""count"": 73}, {""class"": ""LAKSHR"", ""count"": 64}, {""class"": ""LNDELV"", ""count"": 60}, {""class"": ""VEGARE"", ""count"": 60}, {""class"": ""_texto"", ""count"": 59}, {""class"": ""LNDARE"", ""count"": 50}]","[{""scale"": 20000, ""count"": 1}, {""scale"": 50000, ""count"": 1610}, {""scale"": 100000, ""count"": 643}, {""scale"": 200000, ""count"": 110}, {""scale"": 1000000, ""count"": 33}]"
11,5913112,10,914,377,10/914/377.pbf,141.50390625,42.682301017026845,141.328125,42.553080288955805,141.6796875,42.811521745097885,1712,1614,5,430,162,181,101,232,713,485,510,"[{""class"": ""SLCONS"", ""count"": 277}, {""class"": ""SBDARE"", ""count"": 188}, {""class"": ""DEPCNT"", ""count"": 181}, {""class"": ""DEPARE"", ""count"": 162}, {""class"": ""_texto"", ""count"": 108}, {""class"": ""LNDARE"", ""count"": 95}, {""class"": ""BRTFAC"", ""count"": 79}, {""class"": ""PRDINS"", ""count"": 59}, {""class"": ""COALNE"", ""count"": 58}, {""class"": ""LIGHTS"", ""count"": 57}, {""class"": ""ITDARE"", ""count"": 41}, {""class"": ""TNKCON"", ""count"": 35}, {""class"": ""BUAARE"", ""count"": 33}, {""class"": ""ZEMCNT"", ""count"": 32}, {""class"": ""CHIMNY"", ""count"": 24}]","[{""scale"": 20000, ""count"": 971}, {""scale"": 50000, ""count"": 643}, {""scale"": 200000, ""count"": 84}, {""scale"": 1000000, ""count"": 14}]"
12,5909693,10,912,384,10/912/384.pbf,140.80078125,40.84692694795308,140.625,40.71395582628604,140.9765625,40.97989806962013,1893,1578,5,490,154,166,115,282,656,590,643,"[{""class"": ""SLCONS"", ""count"": 400}, {""class"": ""SBDARE"", ""count"": 229}, {""class"": ""DEPCNT"", ""count"": 166}, {""class"": ""DEPARE"", ""count"": 154}, {""class"": ""RIVBNK"", ""count"": 92}, {""class"": ""_texto"", ""count"": 92}, {""class"": ""ITDARE"", ""count"": 65}, {""class"": ""LIGHTS"", ""count"": 63}, {""class"": ""ZEMCNT"", ""count"": 63}, {""class"": ""BUISGL"", ""count"": 58}, {""class"": ""LNDARE"", ""count"": 57}, {""class"": ""BRIDGE"", ""count"": 56}, {""class"": ""BUAARE"", ""count"": 40}, {""class"": ""COALNE"", ""count"": 33}, {""class"": ""TOWERS"", ""count"": 26}]","[{""scale"": 20000, ""count"": 646}, {""scale"": 50000, ""count"": 932}, {""scale"": 100000, ""count"": 98}, {""scale"": 200000, ""count"": 197}, {""scale"": 1000000, ""count"": 15}, {""scale"": 3000000, ""count"": 3}, {""scale"": 20000000, ""count"": 2}]"
13,5907373,10,896,373,10/896/373.pbf,135.17578125,43.70745881892233,135.0,43.580390855607845,135.3515625,43.83452678223683,2073,1553,5,322,98,81,46,473,653,874,542,"[{""class"": ""UWTROC"", ""count"": 334}, {""class"": ""COALNE"", ""count"": 254}, {""class"": ""RIVERS"", ""count"": 222}, {""class"": ""LNDRGN"", ""count"": 174}, {""class"": ""RIVBNK"", ""count"": 171}, {""class"": ""SBDARE"", ""count"": 100}, {""class"": ""DEPARE"", ""count"": 98}, {""class"": ""DEPCNT"", ""count"": 81}, {""class"": ""LNDELV"", ""count"": 65}, {""class"": ""LNDARE"", ""count"": 64}, {""class"": ""SLOTOP"", ""count"": 63}, {""class"": ""SLOGRD"", ""count"": 52}, {""class"": ""VEGARE"", ""count"": 46}, {""class"": ""LAKSHR"", ""count"": 42}, {""class"": ""_texto"", ""count"": 38}]","[{""scale"": 20000, ""count"": 1553}, {""scale"": 100000, ""count"": 430}, {""scale"": 200000, ""count"": 65}, {""scale"": 1000000, ""count"": 24}, {""scale"": 3000000, ""count"": 1}]"
14,5906071,10,859,385,10/859/385.pbf,122.16796875,40.580451442943264,121.9921875,40.44694705960049,122.34375,40.71395582628604,2171,1539,5,471,224,226,417,112,625,791,747,"[{""class"": ""SLCONS"", ""count"": 342}, {""class"": ""DEPCNT"", ""count"": 226}, {""class"": ""DEPARE"", ""count"": 224}, {""class"": ""LIGHTS"", ""count"": 146}, {""class"": ""TOPMAR"", ""count"": 133}, {""class"": ""ZEMCNT"", ""count"": 127}, {""class"": ""ITDARE"", ""count"": 103}, {""class"": ""SBDARE"", ""count"": 77}, {""class"": ""BOYLAT"", ""count"": 75}, {""class"": ""COALNE"", ""count"": 67}, {""class"": ""LNDARE"", ""count"": 62}, {""class"": ""_texto"", ""count"": 56}, {""class"": ""BCNSPP"", ""count"": 42}, {""class"": ""LAKSHR"", ""count"": 40}, {""class"": ""LAKARE"", ""count"": 38}]","[{""scale"": 20000, ""count"": 936}, {""scale"": 50000, ""count"": 603}, {""scale"": 100000, ""count"": 554}, {""scale"": 200000, ""count"": 71}, {""scale"": 1000000, ""count"": 6}, {""scale"": 3000000, ""count"": 1}]"
15,5905467,10,922,376,10/922/376.pbf,144.31640625,42.94020475963375,144.140625,42.811521745097885,144.4921875,43.06888777416962,2067,1534,5,316,181,188,84,570,930,494,636,"[{""class"": ""SBDARE"", ""count"": 293}, {""class"": ""SLCONS"", ""count"": 228}, {""class"": ""DEPCNT"", ""count"": 188}, {""class"": ""DEPARE"", ""count"": 181}, {""class"": ""UWTROC"", ""count"": 174}, {""class"": ""_texto"", ""count"": 77}, {""class"": ""ITDARE"", ""count"": 74}, {""class"": ""WRECKS"", ""count"": 68}, {""class"": ""ZEMCNT"", ""count"": 60}, {""class"": ""LIGHTS"", ""count"": 57}, {""class"": ""LNDARE"", ""count"": 51}, {""class"": ""BRTFAC"", ""count"": 49}, {""class"": ""BUISGL"", ""count"": 49}, {""class"": ""PRDINS"", ""count"": 47}, {""class"": ""RIVBNK"", ""count"": 39}]","[{""scale"": 20000, ""count"": 1534}, {""scale"": 100000, ""count"": 445}, {""scale"": 200000, ""count"": 84}, {""scale"": 1000000, ""count"": 3}, {""scale"": 3000000, ""count"": 1}]"
16,5899347,10,888,376,10/888/376.pbf,132.36328125,42.94020475963375,132.1875,42.811521745097885,132.5390625,43.06888777416962,2747,1466,5,466,125,153,126,973,1295,940,504,"[{""class"": ""UWTROC"", ""count"": 793}, {""class"": ""COALNE"", ""count"": 393}, {""class"": ""DEPCNT"", ""count"": 153}, {""class"": ""SLOTOP"", ""count"": 143}, {""class"": ""DEPARE"", ""count"": 125}, {""class"": ""RIVERS"", ""count"": 125}, {""class"": ""SLOGRD"", ""count"": 116}, {""class"": ""_texto"", ""count"": 116}, {""class"": ""SBDARE"", ""count"": 81}, {""class"": ""LNDELV"", ""count"": 73}, {""class"": ""OBSTRN"", ""count"": 61}, {""class"": ""LIGHTS"", ""count"": 52}, {""class"": ""LNDARE"", ""count"": 49}, {""class"": ""SEAARE"", ""count"": 43}, {""class"": ""BCNSPP"", ""count"": 41}]","[{""scale"": 7500, ""count"": 374}, {""scale"": 50000, ""count"": 1092}, {""scale"": 100000, ""count"": 1056}, {""scale"": 200000, ""count"": 169}, {""scale"": 1000000, ""count"": 54}, {""scale"": 3000000, ""count"": 2}]"
17,5898662,10,926,374,10/926/374.pbf,145.72265625,43.452784267800396,145.546875,43.32517767999295,145.8984375,43.580390855607845,2562,1461,5,402,270,313,65,684,837,862,852,"[{""class"": ""UWTROC"", ""count"": 353}, {""class"": ""DEPCNT"", ""count"": 313}, {""class"": ""DEPARE"", ""count"": 270}, {""class"": ""ZEMCNT"", ""count"": 261}, {""class"": ""SBDARE"", ""count"": 228}, {""class"": ""ITDARE"", ""count"": 218}, {""class"": ""COALNE"", ""count"": 168}, {""class"": ""LNDARE"", ""count"": 129}, {""class"": ""_texto"", ""count"": 111}, {""class"": ""SLCONS"", ""count"": 105}, {""class"": ""OBSTRN"", ""count"": 77}, {""class"": ""LIGHTS"", ""count"": 60}, {""class"": ""TOWERS"", ""count"": 31}, {""class"": ""BUAARE"", ""count"": 30}, {""class"": ""$LINES"", ""count"": 24}]","[{""scale"": 20000, ""count"": 522}, {""scale"": 50000, ""count"": 939}, {""scale"": 100000, ""count"": 954}, {""scale"": 200000, ""count"": 133}, {""scale"": 1000000, ""count"": 13}, {""scale"": 3000000, ""count"": 1}]"
18,5894691,10,888,375,10/888/375.pbf,132.36328125,43.19703272708128,132.1875,43.06888777416962,132.5390625,43.32517767999295,2091,1426,5,281,61,66,49,695,885,880,321,"[{""class"": ""UWTROC"", ""count"": 565}, {""class"": ""COALNE"", ""count"": 243}, {""class"": ""RIVERS"", ""count"": 209}, {""class"": ""RIVBNK"", ""count"": 113}, {""class"": ""SBDARE"", ""count"": 95}, {""class"": ""SLOTOP"", ""count"": 86}, {""class"": ""LNDELV"", ""count"": 78}, {""class"": ""DEPCNT"", ""count"": 66}, {""class"": ""SLOGRD"", ""count"": 64}, {""class"": ""_texto"", ""count"": 62}, {""class"": ""DEPARE"", ""count"": 61}, {""class"": ""ROADPT"", ""count"": 53}, {""class"": ""RAILWY"", ""count"": 30}, {""class"": ""ZEMCNT"", ""count"": 27}, {""class"": ""LNDRGN"", ""count"": 26}]","[{""scale"": 7500, ""count"": 89}, {""scale"": 50000, ""count"": 1337}, {""scale"": 100000, ""count"": 538}, {""scale"": 200000, ""count"": 101}, {""scale"": 1000000, ""count"": 26}]"
19,5886280,10,889,377,10/889/377.pbf,132.71484375,42.682301017026845,132.5390625,42.553080288955805,132.890625,42.811521745097885,1680,1346,5,252,171,169,33,543,653,610,411,"[{""class"": ""UWTROC"", ""count"": 390}, {""class"": ""DEPARE"", ""count"": 171}, {""class"": ""DEPCNT"", ""count"": 169}, {""class"": ""SLCONS"", ""count"": 137}, {""class"": ""COALNE"", ""count"": 102}, {""class"": ""BRTFAC"", ""count"": 95}, {""class"": ""SBDARE"", ""count"": 88}, {""class"": ""_texto"", ""count"": 46}, {""class"": ""OBSTRN"", ""count"": 37}, {""class"": ""SLOGRD"", ""count"": 35}, {""class"": ""SLOTOP"", ""count"": 34}, {""class"": ""ROADPT"", ""count"": 33}, {""class"": ""BUAARE"", ""count"": 27}, {""class"": ""CBLSUB"", ""count"": 25}, {""class"": ""SEAARE"", ""count"": 22}]","[{""scale"": 7500, ""count"": 396}, {""scale"": 20000, ""count"": 425}, {""scale"": 50000, ""count"": 525}, {""scale"": 100000, ""count"": 284}, {""scale"": 200000, ""count"": 32}, {""scale"": 1000000, ""count"": 18}]"
20,5884667,10,911,350,10/911/350.pbf,140.44921875,49.26767122158997,140.2734375,49.15296965617039,140.625,49.38237278700955,1867,1328,5,231,75,70,48,509,638,813,410,"[{""class"": ""UWTROC"", ""count"": 367}, {""class"": ""RIVBNK"", ""count"": 258}, {""class"": ""COALNE"", ""count"": 193}, {""class"": ""SBDARE"", ""count"": 119}, {""class"": ""SLOTOP"", ""count"": 119}, {""class"": ""VEGARE"", ""count"": 92}, {""class"": ""DEPARE"", ""count"": 75}, {""class"": ""DEPCNT"", ""count"": 70}, {""class"": ""RIVERS"", ""count"": 65}, {""class"": ""LNDRGN"", ""count"": 61}, {""class"": ""_texto"", ""count"": 53}, {""class"": ""LNDARE"", ""count"": 37}, {""class"": ""ZEMCNT"", ""count"": 37}, {""class"": ""LAKSHR"", ""count"": 33}, {""class"": ""ITDARE"", ""count"": 30}]","[{""scale"": 20000, ""count"": 706}, {""scale"": 50000, ""count"": 622}, {""scale"": 100000, ""count"": 366}, {""scale"": 200000, ""count"": 149}, {""scale"": 1000000, ""count"": 24}]"
21,5883660,10,914,372,10/914/372.pbf,141.50390625,43.961055905241,141.328125,43.83452678223683,141.6796875,44.087585028245165,1560,1321,5,362,230,253,54,280,479,559,517,"[{""class"": ""DEPCNT"", ""count"": 253}, {""class"": ""DEPARE"", ""count"": 230}, {""class"": ""SLCONS"", ""count"": 191}, {""class"": ""SBDARE"", ""count"": 188}, {""class"": ""COALNE"", ""count"": 107}, {""class"": ""LNDARE"", ""count"": 64}, {""class"": ""UWTROC"", ""count"": 60}, {""class"": ""_texto"", ""count"": 54}, {""class"": ""ZEMCNT"", ""count"": 52}, {""class"": ""ITDARE"", ""count"": 44}, {""class"": ""LIGHTS"", ""count"": 43}, {""class"": ""TOWERS"", ""count"": 29}, {""class"": ""BUAARE"", ""count"": 23}, {""class"": ""BRTFAC"", ""count"": 22}, {""class"": ""BUISGL"", ""count"": 21}]","[{""scale"": 7500, ""count"": 616}, {""scale"": 20000, ""count"": 705}, {""scale"": 100000, ""count"": 107}, {""scale"": 200000, ""count"": 123}, {""scale"": 1000000, ""count"": 8}, {""scale"": 3000000, ""count"": 1}]"
22,5881827,10,910,351,10/910/351.pbf,140.09765625,49.03773445996431,139.921875,48.92249926375824,140.2734375,49.15296965617039,1627,1302,5,280,42,40,37,207,415,737,471,"[{""class"": ""COALNE"", ""count"": 209}, {""class"": ""RIVBNK"", ""count"": 138}, {""class"": ""BUAARE"", ""count"": 111}, {""class"": ""UWTROC"", ""count"": 98}, {""class"": ""SLOTOP"", ""count"": 78}, {""class"": ""RAILWY"", ""count"": 76}, {""class"": ""VEGARE"", ""count"": 70}, {""class"": ""_texto"", ""count"": 60}, {""class"": ""ROADPT"", ""count"": 56}, {""class"": ""LNDELV"", ""count"": 55}, {""class"": ""RIVERS"", ""count"": 55}, {""class"": ""LNDARE"", ""count"": 54}, {""class"": ""SBDARE"", ""count"": 51}, {""class"": ""WEDKLP"", ""count"": 51}, {""class"": ""DEPARE"", ""count"": 42}]","[{""scale"": 20000, ""count"": 730}, {""scale"": 50000, ""count"": 572}, {""scale"": 100000, ""count"": 244}, {""scale"": 200000, ""count"": 78}, {""scale"": 1000000, ""count"": 3}]"
23,5875328,10,912,380,10/912/380.pbf,140.80078125,41.90214300610273,140.625,41.77131167976407,140.9765625,42.03297433244139,1528,1238,5,268,119,125,160,334,751,402,372,"[{""class"": ""SLCONS"", ""count"": 220}, {""class"": ""SBDARE"", ""count"": 166}, {""class"": ""DEPCNT"", ""count"": 125}, {""class"": ""DEPARE"", ""count"": 119}, {""class"": ""WRECKS"", ""count"": 99}, {""class"": ""LIGHTS"", ""count"": 91}, {""class"": ""_texto"", ""count"": 77}, {""class"": ""BUAARE"", ""count"": 43}, {""class"": ""BRIDGE"", ""count"": 41}, {""class"": ""BUISGL"", ""count"": 41}, {""class"": ""RIVBNK"", ""count"": 34}, {""class"": ""UWTROC"", ""count"": 32}, {""class"": ""COALNE"", ""count"": 29}, {""class"": ""BOYSPP"", ""count"": 25}, {""class"": ""OBSTRN"", ""count"": 23}]","[{""scale"": 20000, ""count"": 922}, {""scale"": 50000, ""count"": 316}, {""scale"": 100000, ""count"": 126}, {""scale"": 200000, ""count"": 150}, {""scale"": 1000000, ""count"": 13}, {""scale"": 3000000, ""count"": 1}]"
24,5866952,10,915,377,10/915/377.pbf,141.85546875,42.682301017026845,141.6796875,42.553080288955805,142.03125,42.811521745097885,1252,1157,5,219,158,168,154,207,501,379,366,"[{""class"": ""DEPCNT"", ""count"": 168}, {""class"": ""DEPARE"", ""count"": 158}, {""class"": ""SBDARE"", ""count"": 139}, {""class"": ""SLCONS"", ""count"": 135}, {""class"": ""LIGHTS"", ""count"": 80}, {""class"": ""WRECKS"", ""count"": 45}, {""class"": ""LNDARE"", ""count"": 43}, {""class"": ""COALNE"", ""count"": 41}, {""class"": ""ZEMCNT"", ""count"": 37}, {""class"": ""ITDARE"", ""count"": 32}, {""class"": ""RIVBNK"", ""count"": 27}, {""class"": ""_texto"", ""count"": 27}, {""class"": ""BRTFAC"", ""count"": 25}, {""class"": ""BOYSPP"", ""count"": 23}, {""class"": ""_extgn"", ""count"": 18}]","[{""scale"": 20000, ""count"": 781}, {""scale"": 50000, ""count"": 376}, {""scale"": 200000, ""count"": 88}, {""scale"": 1000000, ""count"": 7}]"
25,5866237,10,886,376,10/886/376.pbf,131.66015625,42.94020475963375,131.484375,42.811521745097885,131.8359375,43.06888777416962,2537,1137,5,521,145,228,69,798,1064,906,558,"[{""class"": ""UWTROC"", ""count"": 561}, {""class"": ""COALNE"", ""count"": 356}, {""class"": ""DEPCNT"", ""count"": 228}, {""class"": ""SBDARE"", ""count"": 179}, {""class"": ""LNDARE"", ""count"": 146}, {""class"": ""DEPARE"", ""count"": 145}, {""class"": ""_texto"", ""count"": 142}, {""class"": ""SLOTOP"", ""count"": 104}, {""class"": ""SLOGRD"", ""count"": 85}, {""class"": ""RIVERS"", ""count"": 54}, {""class"": ""ZEMCNT"", ""count"": 45}, {""class"": ""ITDARE"", ""count"": 43}, {""class"": ""LNDELV"", ""count"": 43}, {""class"": ""OBSTRN"", ""count"": 43}, {""class"": ""SEAARE"", ""count"": 27}]","[{""scale"": 20000, ""count"": 7}, {""scale"": 50000, ""count"": 1130}, {""scale"": 100000, ""count"": 1107}, {""scale"": 200000, ""count"": 179}, {""scale"": 1000000, ""count"": 106}, {""scale"": 3000000, ""count"": 8}]"
26,5859715,10,859,386,10/859/386.pbf,122.16796875,40.312910186973724,121.9921875,40.17887331434696,122.34375,40.44694705960049,1715,1080,5,293,243,268,283,160,584,628,495,"[{""class"": ""DEPCNT"", ""count"": 268}, {""class"": ""SLCONS"", ""count"": 247}, {""class"": ""DEPARE"", ""count"": 243}, {""class"": ""LIGHTS"", ""count"": 120}, {""class"": ""SBDARE"", ""count"": 109}, {""class"": ""_texto"", ""count"": 75}, {""class"": ""TOPMAR"", ""count"": 67}, {""class"": ""ITDARE"", ""count"": 45}, {""class"": ""ZEMCNT"", ""count"": 45}, {""class"": ""BOYLAT"", ""count"": 41}, {""class"": ""$LINES"", ""count"": 36}, {""class"": ""BCNSPP"", ""count"": 35}, {""class"": ""BRTFAC"", ""count"": 29}, {""class"": ""BUAARE"", ""count"": 29}, {""class"": ""COALNE"", ""count"": 29}]","[{""scale"": 20000, ""count"": 418}, {""scale"": 50000, ""count"": 662}, {""scale"": 100000, ""count"": 498}, {""scale"": 200000, ""count"": 114}, {""scale"": 1000000, ""count"": 23}]"
27,5857080,10,910,377,10/910/377.pbf,140.09765625,42.682301017026845,139.921875,42.553080288955805,140.2734375,42.811521745097885,1280,1058,5,317,75,86,29,214,342,452,480,"[{""class"": ""COALNE"", ""count"": 157}, {""class"": ""UWTROC"", ""count"": 141}, {""class"": ""BUISGL"", ""count"": 118}, {""class"": ""DEPCNT"", ""count"": 86}, {""class"": ""LNDARE"", ""count"": 83}, {""class"": ""BUAARE"", ""count"": 82}, {""class"": ""SLCONS"", ""count"": 77}, {""class"": ""DEPARE"", ""count"": 75}, {""class"": ""ZEMCNT"", ""count"": 75}, {""class"": ""ITDARE"", ""count"": 51}, {""class"": ""SBDARE"", ""count"": 51}, {""class"": ""ROADPT"", ""count"": 46}, {""class"": ""_texto"", ""count"": 40}, {""class"": ""RIVERS"", ""count"": 27}, {""class"": ""LNDELV"", ""count"": 20}]","[{""scale"": 7500, ""count"": 442}, {""scale"": 20000, ""count"": 334}, {""scale"": 50000, ""count"": 282}, {""scale"": 100000, ""count"": 52}, {""scale"": 200000, ""count"": 165}, {""scale"": 1000000, ""count"": 5}]"
28,5855856,10,886,375,10/886/375.pbf,131.66015625,43.19703272708128,131.484375,43.06888777416962,131.8359375,43.32517767999295,1656,1042,5,227,27,27,19,244,375,904,372,"[{""class"": ""RIVERS"", ""count"": 308}, {""class"": ""COALNE"", ""count"": 170}, {""class"": ""UWTROC"", ""count"": 132}, {""class"": ""RIVBNK"", ""count"": 118}, {""class"": ""LAKSHR"", ""count"": 78}, {""class"": ""LNDELV"", ""count"": 62}, {""class"": ""LAKARE"", ""count"": 57}, {""class"": ""LNDRGN"", ""count"": 55}, {""class"": ""LNDARE"", ""count"": 53}, {""class"": ""ZEMCNT"", ""count"": 53}, {""class"": ""OBSTRN"", ""count"": 51}, {""class"": ""_texto"", ""count"": 46}, {""class"": ""SLOTOP"", ""count"": 45}, {""class"": ""SBDARE"", ""count"": 41}, {""class"": ""ITDARE"", ""count"": 40}]","[{""scale"": 7500, ""count"": 1}, {""scale"": 20000, ""count"": 4}, {""scale"": 50000, ""count"": 1037}, {""scale"": 100000, ""count"": 514}, {""scale"": 200000, ""count"": 89}, {""scale"": 1000000, ""count"": 11}]"
29,5848607,10,910,353,10/910/353.pbf,140.09765625,48.57465613686708,139.921875,48.45835188280865,140.2734375,48.6909603909255,1607,970,5,253,31,29,12,482,569,770,262,"[{""class"": ""UWTROC"", ""count"": 371}, {""class"": ""RIVERS"", ""count"": 255}, {""class"": ""RIVBNK"", ""count"": 245}, {""class"": ""COALNE"", ""count"": 195}, {""class"": ""SBDARE"", ""count"": 82}, {""class"": ""SLOTOP"", ""count"": 60}, {""class"": ""LNDRGN"", ""count"": 54}, {""class"": ""LNDARE"", ""count"": 52}, {""class"": ""_texto"", ""count"": 33}, {""class"": ""DEPARE"", ""count"": 31}, {""class"": ""DEPCNT"", ""count"": 29}, {""class"": ""SLOGRD"", ""count"": 29}, {""class"": ""WEDKLP"", ""count"": 23}, {""class"": ""CTNARE"", ""count"": 20}, {""class"": ""LNDELV"", ""count"": 18}]","[{""scale"": 7500, ""count"": 39}, {""scale"": 20000, ""count"": 683}, {""scale"": 50000, ""count"": 248}, {""scale"": 100000, ""count"": 524}, {""scale"": 200000, ""count"": 103}, {""scale"": 1000000, ""count"": 10}]"
30,5843249,10,914,366,10/914/366.pbf,141.50390625,45.45999583298721,141.328125,45.33670190996811,141.6796875,45.58328975600631,949,923,5,333,56,63,18,140,304,211,432,"[{""class"": ""SLCONS"", ""count"": 185}, {""class"": ""LNDARE"", ""count"": 116}, {""class"": ""SBDARE"", ""count"": 70}, {""class"": ""UWTROC"", ""count"": 66}, {""class"": ""DEPCNT"", ""count"": 63}, {""class"": ""DEPARE"", ""count"": 56}, {""class"": ""_texto"", ""count"": 50}, {""class"": ""BUAARE"", ""count"": 49}, {""class"": ""BUISGL"", ""count"": 39}, {""class"": ""COALNE"", ""count"": 32}, {""class"": ""ITDARE"", ""count"": 25}, {""class"": ""ZEMCNT"", ""count"": 25}, {""class"": ""TNKCON"", ""count"": 20}, {""class"": ""LIGHTS"", ""count"": 17}, {""class"": ""TOWERS"", ""count"": 13}]","[{""scale"": 7500, ""count"": 307}, {""scale"": 50000, ""count"": 616}, {""scale"": 100000, ""count"": 1}, {""scale"": 200000, ""count"": 22}, {""scale"": 1000000, ""count"": 2}, {""scale"": 3000000, ""count"": 1}]"
31,5841185,10,915,366,10/915/366.pbf,141.85546875,45.45999583298721,141.6796875,45.33670190996811,142.03125,45.58328975600631,985,902,5,282,60,63,39,199,340,226,415,"[{""class"": ""SLCONS"", ""count"": 164}, {""class"": ""SBDARE"", ""count"": 148}, {""class"": ""LNDARE"", ""count"": 88}, {""class"": ""DEPCNT"", ""count"": 63}, {""class"": ""DEPARE"", ""count"": 60}, {""class"": ""BUISGL"", ""count"": 58}, {""class"": ""UWTROC"", ""count"": 31}, {""class"": ""COALNE"", ""count"": 30}, {""class"": ""_texto"", ""count"": 30}, {""class"": ""LIGHTS"", ""count"": 27}, {""class"": ""RIVBNK"", ""count"": 25}, {""class"": ""TOWERS"", ""count"": 20}, {""class"": ""BRIDGE"", ""count"": 18}, {""class"": ""BUAARE"", ""count"": 17}, {""class"": ""ITDARE"", ""count"": 17}]","[{""scale"": 7500, ""count"": 432}, {""scale"": 50000, ""count"": 470}, {""scale"": 200000, ""count"": 75}, {""scale"": 1000000, ""count"": 8}]"
32,5839618,10,911,381,10/911/381.pbf,140.44921875,41.6399444886017,140.2734375,41.50857729743934,140.625,41.77131167976407,1018,886,5,212,64,72,84,235,498,315,201,"[{""class"": ""SBDARE"", ""count"": 102}, {""class"": ""UWTROC"", ""count"": 102}, {""class"": ""COALNE"", ""count"": 85}, {""class"": ""SLCONS"", ""count"": 75}, {""class"": ""DEPCNT"", ""count"": 72}, {""class"": ""DEPARE"", ""count"": 64}, {""class"": ""_texto"", ""count"": 53}, {""class"": ""LNDARE"", ""count"": 52}, {""class"": ""ITDARE"", ""count"": 46}, {""class"": ""ZEMCNT"", ""count"": 46}, {""class"": ""LIGHTS"", ""count"": 38}, {""class"": ""BUISGL"", ""count"": 28}, {""class"": ""BUIREL"", ""count"": 23}, {""class"": ""$LINES"", ""count"": 21}, {""class"": ""BUAARE"", ""count"": 21}]","[{""scale"": 50000, ""count"": 886}, {""scale"": 200000, ""count"": 123}, {""scale"": 1000000, ""count"": 9}]"
33,5838565,10,889,376,10/889/376.pbf,132.71484375,42.94020475963375,132.5390625,42.811521745097885,132.890625,43.06888777416962,1465,871,5,221,38,43,12,343,480,675,308,"[{""class"": ""UWTROC"", ""count"": 264}, {""class"": ""RIVERS"", ""count"": 245}, {""class"": ""COALNE"", ""count"": 175}, {""class"": ""BUAARE"", ""count"": 75}, {""class"": ""_texto"", ""count"": 64}, {""class"": ""RIVBNK"", ""count"": 56}, {""class"": ""LNDELV"", ""count"": 55}, {""class"": ""SLOTOP"", ""count"": 55}, {""class"": ""ROADPT"", ""count"": 51}, {""class"": ""SLOGRD"", ""count"": 48}, {""class"": ""DEPCNT"", ""count"": 43}, {""class"": ""DEPARE"", ""count"": 38}, {""class"": ""SBDARE"", ""count"": 36}, {""class"": ""SLCONS"", ""count"": 26}, {""class"": ""LAKSHR"", ""count"": 22}]","[{""scale"": 7500, ""count"": 10}, {""scale"": 20000, ""count"": 4}, {""scale"": 50000, ""count"": 857}, {""scale"": 100000, ""count"": 494}, {""scale"": 200000, ""count"": 86}, {""scale"": 1000000, ""count"": 14}]"
34,5834997,10,912,378,10/912/378.pbf,140.80078125,42.42332224056294,140.625,42.29356419217008,140.9765625,42.553080288955805,1297,837,5,450,98,117,113,194,454,477,362,"[{""class"": ""SLCONS"", ""count"": 239}, {""class"": ""DEPCNT"", ""count"": 117}, {""class"": ""LNDARE"", ""count"": 108}, {""class"": ""COALNE"", ""count"": 103}, {""class"": ""DEPARE"", ""count"": 98}, {""class"": ""UWTROC"", ""count"": 84}, {""class"": ""LIGHTS"", ""count"": 78}, {""class"": ""_texto"", ""count"": 63}, {""class"": ""SBDARE"", ""count"": 61}, {""class"": ""_extgn"", ""count"": 34}, {""class"": ""ZEMCNT"", ""count"": 33}, {""class"": ""ITDARE"", ""count"": 32}, {""class"": ""WRECKS"", ""count"": 26}, {""class"": ""TOWERS"", ""count"": 25}, {""class"": ""BUAARE"", ""count"": 22}]","[{""scale"": 50000, ""count"": 837}, {""scale"": 100000, ""count"": 330}, {""scale"": 200000, ""count"": 115}, {""scale"": 1000000, ""count"": 15}]"
35,5834080,10,915,361,10/915/361.pbf,141.85546875,46.679459874952244,141.6796875,46.55886030311718,142.03125,46.8000594467873,880,832,5,92,35,55,30,451,543,195,132,"[{""class"": ""UWTROC"", ""count"": 318}, {""class"": ""SBDARE"", ""count"": 113}, {""class"": ""DEPCNT"", ""count"": 55}, {""class"": ""_texto"", ""count"": 42}, {""class"": ""DEPARE"", ""count"": 35}, {""class"": ""COALNE"", ""count"": 34}, {""class"": ""LNDARE"", ""count"": 29}, {""class"": ""SLCONS"", ""count"": 29}, {""class"": ""$LINES"", ""count"": 28}, {""class"": ""ZEMCNT"", ""count"": 23}, {""class"": ""ITDARE"", ""count"": 20}, {""class"": ""BRTFAC"", ""count"": 16}, {""class"": ""LIGHTS"", ""count"": 15}, {""class"": ""RIVERS"", ""count"": 13}, {""class"": ""OBSTRN"", ""count"": 12}]","[{""scale"": 7500, ""count"": 459}, {""scale"": 20000, ""count"": 198}, {""scale"": 50000, ""count"": 175}, {""scale"": 200000, ""count"": 42}, {""scale"": 1000000, ""count"": 6}]"
36,5828506,10,926,375,10/926/375.pbf,145.72265625,43.19703272708128,145.546875,43.06888777416962,145.8984375,43.32517767999295,1406,771,5,299,213,228,56,306,437,488,477,"[{""class"": ""DEPCNT"", ""count"": 228}, {""class"": ""DEPARE"", ""count"": 213}, {""class"": ""COALNE"", ""count"": 134}, {""class"": ""SBDARE"", ""count"": 130}, {""class"": ""UWTROC"", ""count"": 107}, {""class"": ""LNDARE"", ""count"": 104}, {""class"": ""ZEMCNT"", ""count"": 64}, {""class"": ""_texto"", ""count"": 63}, {""class"": ""SLCONS"", ""count"": 61}, {""class"": ""ITDARE"", ""count"": 57}, {""class"": ""LIGHTS"", ""count"": 51}, {""class"": ""WRECKS"", ""count"": 40}, {""class"": ""OBSTRN"", ""count"": 25}, {""class"": ""TOWERS"", ""count"": 13}, {""class"": ""_extgn"", ""count"": 10}]","[{""scale"": 20000, ""count"": 445}, {""scale"": 50000, ""count"": 326}, {""scale"": 100000, ""count"": 504}, {""scale"": 200000, ""count"": 109}, {""scale"": 1000000, ""count"": 20}, {""scale"": 3000000, ""count"": 2}]"
37,5828459,10,931,368,10/931/368.pbf,147.48046875,44.96466310811451,147.3046875,44.84029065139799,147.65625,45.089035564831015,1359,771,5,203,95,91,23,394,479,604,271,"[{""class"": ""UWTROC"", ""count"": 306}, {""class"": ""COALNE"", ""count"": 179}, {""class"": ""RIVERS"", ""count"": 177}, {""class"": ""DEPARE"", ""count"": 95}, {""class"": ""SLOTOP"", ""count"": 94}, {""class"": ""DEPCNT"", ""count"": 91}, {""class"": ""SLOGRD"", ""count"": 65}, {""class"": ""SBDARE"", ""count"": 57}, {""class"": ""LNDELV"", ""count"": 30}, {""class"": ""RIVBNK"", ""count"": 30}, {""class"": ""_texto"", ""count"": 30}, {""class"": ""ROADPT"", ""count"": 24}, {""class"": ""LNDARE"", ""count"": 21}, {""class"": ""LNDRGN"", ""count"": 19}, {""class"": ""CTNARE"", ""count"": 15}]","[{""scale"": 20000, ""count"": 231}, {""scale"": 50000, ""count"": 540}, {""scale"": 100000, ""count"": 489}, {""scale"": 200000, ""count"": 91}, {""scale"": 1000000, ""count"": 6}, {""scale"": 3000000, ""count"": 2}]"
38,5828120,10,916,359,10/916/359.pbf,142.20703125,47.15970557368874,142.03125,47.04018214480666,142.3828125,47.27922900257082,820,773,5,108,15,30,99,144,300,312,206,"[{""class"": ""RIVERS"", ""count"": 123}, {""class"": ""UWTROC"", ""count"": 95}, {""class"": ""BUAARE"", ""count"": 82}, {""class"": ""SLCONS"", ""count"": 54}, {""class"": ""LIGHTS"", ""count"": 52}, {""class"": ""COALNE"", ""count"": 44}, {""class"": ""DEPCNT"", ""count"": 30}, {""class"": ""SLOTOP"", ""count"": 24}, {""class"": ""LNDELV"", ""count"": 23}, {""class"": ""SBDARE"", ""count"": 23}, {""class"": ""SLOGRD"", ""count"": 23}, {""class"": ""WATTUR"", ""count"": 22}, {""class"": ""BRTFAC"", ""count"": 18}, {""class"": ""DEPARE"", ""count"": 15}, {""class"": ""BCNSPP"", ""count"": 14}]","[{""scale"": 7500, ""count"": 195}, {""scale"": 20000, ""count"": 127}, {""scale"": 50000, ""count"": 451}, {""scale"": 200000, ""count"": 43}, {""scale"": 1000000, ""count"": 3}, {""scale"": 3000000, ""count"": 1}]"
39,5828023,10,932,368,10/932/368.pbf,147.83203125,44.96466310811451,147.65625,44.84029065139799,148.0078125,45.089035564831015,1223,768,5,193,81,55,12,303,373,542,301,"[{""class"": ""COALNE"", ""count"": 153}, {""class"": ""UWTROC"", ""count"": 146}, {""class"": ""RIVERS"", ""count"": 134}, {""class"": ""SBDARE"", ""count"": 122}, {""class"": ""DEPARE"", ""count"": 81}, {""class"": ""SLOTOP"", ""count"": 77}, {""class"": ""RIVBNK"", ""count"": 70}, {""class"": ""DEPCNT"", ""count"": 55}, {""class"": ""LAKSHR"", ""count"": 47}, {""class"": ""SLOGRD"", ""count"": 45}, {""class"": ""_texto"", ""count"": 42}, {""class"": ""LNDARE"", ""count"": 40}, {""class"": ""CTNARE"", ""count"": 34}, {""class"": ""LNDELV"", ""count"": 34}, {""class"": ""LAKARE"", ""count"": 31}]","[{""scale"": 20000, ""count"": 414}, {""scale"": 50000, ""count"": 354}, {""scale"": 100000, ""count"": 331}, {""scale"": 200000, ""count"": 114}, {""scale"": 1000000, ""count"": 2}, {""scale"": 3000000, ""count"": 4}, {""scale"": 20000000, ""count"": 4}]"
40,5823820,10,898,370,10/898/370.pbf,135.87890625,44.465016214702985,135.703125,44.33956524809713,136.0546875,44.590467181308846,1320,725,5,99,13,17,33,346,541,556,221,"[{""class"": ""UWTROC"", ""count"": 307}, {""class"": ""RIVERS"", ""count"": 219}, {""class"": ""RIVBNK"", ""count"": 170}, {""class"": ""_texto"", ""count"": 94}, {""class"": ""COALNE"", ""count"": 83}, {""class"": ""BUAARE"", ""count"": 74}, {""class"": ""LNDELV"", ""count"": 54}, {""class"": ""SLOTOP"", ""count"": 27}, {""class"": ""VEGARE"", ""count"": 23}, {""class"": ""SBDARE"", ""count"": 22}, {""class"": ""LIGHTS"", ""count"": 20}, {""class"": ""LNDRGN"", ""count"": 20}, {""class"": ""ROADPT"", ""count"": 20}, {""class"": ""SLOGRD"", ""count"": 18}, {""class"": ""DEPCNT"", ""count"": 17}]","[{""scale"": 50000, ""count"": 725}, {""scale"": 100000, ""count"": 534}, {""scale"": 200000, ""count"": 49}, {""scale"": 1000000, ""count"": 12}]"
1 rank score z x y tile_path center_lon center_lat min_lon min_lat max_lon max_lat feature_count detail_feature_count_le_50000 required_groups_present land_count depth_count contour_count navmark_light_count hazard_count point_count line_count area_count top_classes native_scales
2 1 6121875 10 887 375 10/887/375.pbf 132.01171875 43.19703272708128 131.8359375 43.06888777416962 132.1875 43.32517767999295 4475 3674 5 818 366 390 191 856 1373 2039 1050 [{"class": "COALNE", "count": 457}, {"class": "UWTROC", "count": 440}, {"class": "DEPCNT", "count": 390}, {"class": "DEPARE", "count": 366}, {"class": "SLCONS", "count": 284}, {"class": "RIVERS", "count": 229}, {"class": "_texto", "count": 169}, {"class": "SBDARE", "count": 164}, {"class": "OBSTRN", "count": 158}, {"class": "LNDELV", "count": 132}, {"class": "SLOTOP", "count": 132}, {"class": "ROADPT", "count": 130}, {"class": "RIVBNK", "count": 103}, {"class": "BRTFAC", "count": 94}, {"class": "LNDARE", "count": 77}] [{"scale": 7500, "count": 536}, {"scale": 20000, "count": 1418}, {"scale": 50000, "count": 1720}, {"scale": 100000, "count": 650}, {"scale": 200000, "count": 130}, {"scale": 1000000, "count": 20}, {"scale": 3000000, "count": 1}]
3 2 6104723 10 890 377 10/890/377.pbf 133.06640625 42.682301017026845 132.890625 42.553080288955805 133.2421875 42.811521745097885 4323 3504 5 529 401 378 283 1493 2018 1251 1043 [{"class": "UWTROC", "count": 1140}, {"class": "DEPARE", "count": 401}, {"class": "DEPCNT", "count": 378}, {"class": "COALNE", "count": 350}, {"class": "SBDARE", "count": 203}, {"class": "SLOTOP", "count": 137}, {"class": "LIGHTS", "count": 132}, {"class": "SLCONS", "count": 109}, {"class": "_texto", "count": 104}, {"class": "SLOGRD", "count": 98}, {"class": "OBSTRN", "count": 81}, {"class": "BUISGL", "count": 72}, {"class": "LNDARE", "count": 70}, {"class": "ROADPT", "count": 62}, {"class": "TOPMAR", "count": 60}] [{"scale": 7500, "count": 881}, {"scale": 20000, "count": 1443}, {"scale": 50000, "count": 1180}, {"scale": 100000, "count": 668}, {"scale": 200000, "count": 112}, {"scale": 1000000, "count": 39}]
4 3 6076644 10 914 385 10/914/385.pbf 141.50390625 40.580451442943264 141.328125 40.44694705960049 141.6796875 40.71395582628604 3544 3231 5 647 401 441 132 1062 1632 952 956 [{"class": "WRECKS", "count": 481}, {"class": "DEPCNT", "count": 441}, {"class": "DEPARE", "count": 401}, {"class": "SLCONS", "count": 328}, {"class": "SBDARE", "count": 296}, {"class": "UWTROC", "count": 176}, {"class": "COALNE", "count": 165}, {"class": "LNDARE", "count": 154}, {"class": "_texto", "count": 113}, {"class": "LIGHTS", "count": 96}, {"class": "BRTFAC", "count": 89}, {"class": "ZEMCNT", "count": 83}, {"class": "OBSTRN", "count": 76}, {"class": "ITDARE", "count": 68}, {"class": "TNKCON", "count": 57}] [{"scale": 20000, "count": 2239}, {"scale": 50000, "count": 992}, {"scale": 100000, "count": 1}, {"scale": 200000, "count": 278}, {"scale": 1000000, "count": 33}, {"scale": 3000000, "count": 1}]
5 4 6023900 10 884 377 10/884/377.pbf 130.95703125 42.682301017026845 130.78125 42.553080288955805 131.1328125 42.811521745097885 3900 2700 5 588 244 227 85 1252 1616 1359 912 [{"class": "UWTROC", "count": 953}, {"class": "COALNE", "count": 497}, {"class": "DEPARE", "count": 244}, {"class": "DEPCNT", "count": 227}, {"class": "SBDARE", "count": 197}, {"class": "SLOTOP", "count": 183}, {"class": "RIVERS", "count": 147}, {"class": "LNDRGN", "count": 138}, {"class": "_texto", "count": 123}, {"class": "SLOGRD", "count": 114}, {"class": "WEDKLP", "count": 111}, {"class": "RIVBNK", "count": 107}, {"class": "ROADPT", "count": 76}, {"class": "LNDELV", "count": 75}, {"class": "LNDARE", "count": 57}] [{"scale": 7500, "count": 380}, {"scale": 20000, "count": 2320}, {"scale": 100000, "count": 1051}, {"scale": 200000, "count": 125}, {"scale": 1000000, "count": 24}]
6 5 5997990 10 911 351 10/911/351.pbf 140.44921875 49.03773445996431 140.2734375 48.92249926375824 140.625 49.15296965617039 3190 2448 5 425 194 182 171 1106 1506 944 730 [{"class": "UWTROC", "count": 871}, {"class": "COALNE", "count": 343}, {"class": "DEPARE", "count": 194}, {"class": "DEPCNT", "count": 182}, {"class": "SLOTOP", "count": 148}, {"class": "_texto", "count": 146}, {"class": "SBDARE", "count": 116}, {"class": "SLOGRD", "count": 85}, {"class": "BUAARE", "count": 76}, {"class": "BCNSPP", "count": 70}, {"class": "OBSTRN", "count": 57}, {"class": "LNDELV", "count": 55}, {"class": "RIVERS", "count": 55}, {"class": "SEAARE", "count": 52}, {"class": "LIGHTS", "count": 51}] [{"scale": 20000, "count": 1220}, {"scale": 50000, "count": 1228}, {"scale": 100000, "count": 534}, {"scale": 200000, "count": 176}, {"scale": 1000000, "count": 31}, {"scale": 3000000, "count": 1}]
7 6 5954428 10 912 381 10/912/381.pbf 140.80078125 41.6399444886017 140.625 41.50857729743934 140.9765625 41.77131167976407 2228 2022 5 408 160 190 78 622 907 732 581 [{"class": "UWTROC", "count": 326}, {"class": "SBDARE", "count": 216}, {"class": "SLCONS", "count": 204}, {"class": "ZEMCNT", "count": 198}, {"class": "ITDARE", "count": 195}, {"class": "DEPCNT", "count": 190}, {"class": "DEPARE", "count": 160}, {"class": "COALNE", "count": 112}, {"class": "LNDARE", "count": 92}, {"class": "_texto", "count": 79}, {"class": "TOWERS", "count": 46}, {"class": "OBSTRN", "count": 40}, {"class": "LIGHTS", "count": 38}, {"class": "BUISGL", "count": 35}, {"class": "BUAARE", "count": 32}] [{"scale": 20000, "count": 903}, {"scale": 50000, "count": 1119}, {"scale": 200000, "count": 189}, {"scale": 1000000, "count": 17}]
8 7 5951203 10 856 384 10/856/384.pbf 121.11328125 40.84692694795308 120.9375 40.71395582628604 121.2890625 40.97989806962013 2303 1989 5 454 294 299 354 348 746 711 840 [{"class": "SLCONS", "count": 347}, {"class": "DEPCNT", "count": 299}, {"class": "DEPARE", "count": 294}, {"class": "SBDARE", "count": 239}, {"class": "LIGHTS", "count": 134}, {"class": "TOPMAR", "count": 102}, {"class": "ITDARE", "count": 92}, {"class": "ZEMCNT", "count": 73}, {"class": "BOYLAT", "count": 67}, {"class": "UWTROC", "count": 63}, {"class": "$LINES", "count": 60}, {"class": "COALNE", "count": 58}, {"class": "_texto", "count": 50}, {"class": "LNDARE", "count": 49}, {"class": "LAKSHR", "count": 41}] [{"scale": 20000, "count": 1042}, {"scale": 50000, "count": 947}, {"scale": 100000, "count": 206}, {"scale": 200000, "count": 93}, {"scale": 1000000, "count": 14}, {"scale": 3000000, "count": 1}]
9 8 5926940 10 887 376 10/887/376.pbf 132.01171875 42.94020475963375 131.8359375 42.811521745097885 132.1875 43.06888777416962 2340 1746 5 501 134 209 133 767 1089 714 534 [{"class": "UWTROC", "count": 544}, {"class": "COALNE", "count": 303}, {"class": "DEPCNT", "count": 209}, {"class": "LNDARE", "count": 160}, {"class": "DEPARE", "count": 134}, {"class": "SBDARE", "count": 128}, {"class": "_texto", "count": 102}, {"class": "OBSTRN", "count": 59}, {"class": "LIGHTS", "count": 49}, {"class": "SLOTOP", "count": 40}, {"class": "SLCONS", "count": 38}, {"class": "RESARE", "count": 35}, {"class": "BCNSPP", "count": 31}, {"class": "SLOGRD", "count": 30}, {"class": "SEAARE", "count": 28}] [{"scale": 7500, "count": 1}, {"scale": 20000, "count": 718}, {"scale": 50000, "count": 1027}, {"scale": 100000, "count": 474}, {"scale": 200000, "count": 78}, {"scale": 1000000, "count": 38}, {"scale": 3000000, "count": 2}, {"scale": 20000000, "count": 2}]
10 9 5925129 10 892 376 10/892/376.pbf 133.76953125 42.94020475963375 133.59375 42.811521745097885 133.9453125 43.06888777416962 2329 1728 5 393 73 67 31 734 865 936 522 [{"class": "UWTROC", "count": 566}, {"class": "COALNE", "count": 326}, {"class": "RIVERS", "count": 207}, {"class": "RIVBNK", "count": 120}, {"class": "SBDARE", "count": 119}, {"class": "SLOTOP", "count": 93}, {"class": "LNDRGN", "count": 88}, {"class": "ZEMCNT", "count": 81}, {"class": "DEPARE", "count": 73}, {"class": "SLOGRD", "count": 72}, {"class": "ITDARE", "count": 69}, {"class": "DEPCNT", "count": 67}, {"class": "LNDELV", "count": 60}, {"class": "LNDARE", "count": 55}, {"class": "_texto", "count": 54}] [{"scale": 20000, "count": 1728}, {"scale": 100000, "count": 466}, {"scale": 200000, "count": 114}, {"scale": 1000000, "count": 21}]
11 10 5913497 10 885 376 10/885/376.pbf 131.30859375 42.94020475963375 131.1328125 42.811521745097885 131.484375 43.06888777416962 2397 1611 5 357 88 91 50 678 887 1039 471 [{"class": "UWTROC", "count": 559}, {"class": "COALNE", "count": 278}, {"class": "RIVERS", "count": 240}, {"class": "SLOTOP", "count": 119}, {"class": "DEPCNT", "count": 91}, {"class": "DEPARE", "count": 88}, {"class": "RIVBNK", "count": 84}, {"class": "SLOGRD", "count": 77}, {"class": "SBDARE", "count": 74}, {"class": "ROADPT", "count": 73}, {"class": "LAKSHR", "count": 64}, {"class": "LNDELV", "count": 60}, {"class": "VEGARE", "count": 60}, {"class": "_texto", "count": 59}, {"class": "LNDARE", "count": 50}] [{"scale": 20000, "count": 1}, {"scale": 50000, "count": 1610}, {"scale": 100000, "count": 643}, {"scale": 200000, "count": 110}, {"scale": 1000000, "count": 33}]
12 11 5913112 10 914 377 10/914/377.pbf 141.50390625 42.682301017026845 141.328125 42.553080288955805 141.6796875 42.811521745097885 1712 1614 5 430 162 181 101 232 713 485 510 [{"class": "SLCONS", "count": 277}, {"class": "SBDARE", "count": 188}, {"class": "DEPCNT", "count": 181}, {"class": "DEPARE", "count": 162}, {"class": "_texto", "count": 108}, {"class": "LNDARE", "count": 95}, {"class": "BRTFAC", "count": 79}, {"class": "PRDINS", "count": 59}, {"class": "COALNE", "count": 58}, {"class": "LIGHTS", "count": 57}, {"class": "ITDARE", "count": 41}, {"class": "TNKCON", "count": 35}, {"class": "BUAARE", "count": 33}, {"class": "ZEMCNT", "count": 32}, {"class": "CHIMNY", "count": 24}] [{"scale": 20000, "count": 971}, {"scale": 50000, "count": 643}, {"scale": 200000, "count": 84}, {"scale": 1000000, "count": 14}]
13 12 5909693 10 912 384 10/912/384.pbf 140.80078125 40.84692694795308 140.625 40.71395582628604 140.9765625 40.97989806962013 1893 1578 5 490 154 166 115 282 656 590 643 [{"class": "SLCONS", "count": 400}, {"class": "SBDARE", "count": 229}, {"class": "DEPCNT", "count": 166}, {"class": "DEPARE", "count": 154}, {"class": "RIVBNK", "count": 92}, {"class": "_texto", "count": 92}, {"class": "ITDARE", "count": 65}, {"class": "LIGHTS", "count": 63}, {"class": "ZEMCNT", "count": 63}, {"class": "BUISGL", "count": 58}, {"class": "LNDARE", "count": 57}, {"class": "BRIDGE", "count": 56}, {"class": "BUAARE", "count": 40}, {"class": "COALNE", "count": 33}, {"class": "TOWERS", "count": 26}] [{"scale": 20000, "count": 646}, {"scale": 50000, "count": 932}, {"scale": 100000, "count": 98}, {"scale": 200000, "count": 197}, {"scale": 1000000, "count": 15}, {"scale": 3000000, "count": 3}, {"scale": 20000000, "count": 2}]
14 13 5907373 10 896 373 10/896/373.pbf 135.17578125 43.70745881892233 135.0 43.580390855607845 135.3515625 43.83452678223683 2073 1553 5 322 98 81 46 473 653 874 542 [{"class": "UWTROC", "count": 334}, {"class": "COALNE", "count": 254}, {"class": "RIVERS", "count": 222}, {"class": "LNDRGN", "count": 174}, {"class": "RIVBNK", "count": 171}, {"class": "SBDARE", "count": 100}, {"class": "DEPARE", "count": 98}, {"class": "DEPCNT", "count": 81}, {"class": "LNDELV", "count": 65}, {"class": "LNDARE", "count": 64}, {"class": "SLOTOP", "count": 63}, {"class": "SLOGRD", "count": 52}, {"class": "VEGARE", "count": 46}, {"class": "LAKSHR", "count": 42}, {"class": "_texto", "count": 38}] [{"scale": 20000, "count": 1553}, {"scale": 100000, "count": 430}, {"scale": 200000, "count": 65}, {"scale": 1000000, "count": 24}, {"scale": 3000000, "count": 1}]
15 14 5906071 10 859 385 10/859/385.pbf 122.16796875 40.580451442943264 121.9921875 40.44694705960049 122.34375 40.71395582628604 2171 1539 5 471 224 226 417 112 625 791 747 [{"class": "SLCONS", "count": 342}, {"class": "DEPCNT", "count": 226}, {"class": "DEPARE", "count": 224}, {"class": "LIGHTS", "count": 146}, {"class": "TOPMAR", "count": 133}, {"class": "ZEMCNT", "count": 127}, {"class": "ITDARE", "count": 103}, {"class": "SBDARE", "count": 77}, {"class": "BOYLAT", "count": 75}, {"class": "COALNE", "count": 67}, {"class": "LNDARE", "count": 62}, {"class": "_texto", "count": 56}, {"class": "BCNSPP", "count": 42}, {"class": "LAKSHR", "count": 40}, {"class": "LAKARE", "count": 38}] [{"scale": 20000, "count": 936}, {"scale": 50000, "count": 603}, {"scale": 100000, "count": 554}, {"scale": 200000, "count": 71}, {"scale": 1000000, "count": 6}, {"scale": 3000000, "count": 1}]
16 15 5905467 10 922 376 10/922/376.pbf 144.31640625 42.94020475963375 144.140625 42.811521745097885 144.4921875 43.06888777416962 2067 1534 5 316 181 188 84 570 930 494 636 [{"class": "SBDARE", "count": 293}, {"class": "SLCONS", "count": 228}, {"class": "DEPCNT", "count": 188}, {"class": "DEPARE", "count": 181}, {"class": "UWTROC", "count": 174}, {"class": "_texto", "count": 77}, {"class": "ITDARE", "count": 74}, {"class": "WRECKS", "count": 68}, {"class": "ZEMCNT", "count": 60}, {"class": "LIGHTS", "count": 57}, {"class": "LNDARE", "count": 51}, {"class": "BRTFAC", "count": 49}, {"class": "BUISGL", "count": 49}, {"class": "PRDINS", "count": 47}, {"class": "RIVBNK", "count": 39}] [{"scale": 20000, "count": 1534}, {"scale": 100000, "count": 445}, {"scale": 200000, "count": 84}, {"scale": 1000000, "count": 3}, {"scale": 3000000, "count": 1}]
17 16 5899347 10 888 376 10/888/376.pbf 132.36328125 42.94020475963375 132.1875 42.811521745097885 132.5390625 43.06888777416962 2747 1466 5 466 125 153 126 973 1295 940 504 [{"class": "UWTROC", "count": 793}, {"class": "COALNE", "count": 393}, {"class": "DEPCNT", "count": 153}, {"class": "SLOTOP", "count": 143}, {"class": "DEPARE", "count": 125}, {"class": "RIVERS", "count": 125}, {"class": "SLOGRD", "count": 116}, {"class": "_texto", "count": 116}, {"class": "SBDARE", "count": 81}, {"class": "LNDELV", "count": 73}, {"class": "OBSTRN", "count": 61}, {"class": "LIGHTS", "count": 52}, {"class": "LNDARE", "count": 49}, {"class": "SEAARE", "count": 43}, {"class": "BCNSPP", "count": 41}] [{"scale": 7500, "count": 374}, {"scale": 50000, "count": 1092}, {"scale": 100000, "count": 1056}, {"scale": 200000, "count": 169}, {"scale": 1000000, "count": 54}, {"scale": 3000000, "count": 2}]
18 17 5898662 10 926 374 10/926/374.pbf 145.72265625 43.452784267800396 145.546875 43.32517767999295 145.8984375 43.580390855607845 2562 1461 5 402 270 313 65 684 837 862 852 [{"class": "UWTROC", "count": 353}, {"class": "DEPCNT", "count": 313}, {"class": "DEPARE", "count": 270}, {"class": "ZEMCNT", "count": 261}, {"class": "SBDARE", "count": 228}, {"class": "ITDARE", "count": 218}, {"class": "COALNE", "count": 168}, {"class": "LNDARE", "count": 129}, {"class": "_texto", "count": 111}, {"class": "SLCONS", "count": 105}, {"class": "OBSTRN", "count": 77}, {"class": "LIGHTS", "count": 60}, {"class": "TOWERS", "count": 31}, {"class": "BUAARE", "count": 30}, {"class": "$LINES", "count": 24}] [{"scale": 20000, "count": 522}, {"scale": 50000, "count": 939}, {"scale": 100000, "count": 954}, {"scale": 200000, "count": 133}, {"scale": 1000000, "count": 13}, {"scale": 3000000, "count": 1}]
19 18 5894691 10 888 375 10/888/375.pbf 132.36328125 43.19703272708128 132.1875 43.06888777416962 132.5390625 43.32517767999295 2091 1426 5 281 61 66 49 695 885 880 321 [{"class": "UWTROC", "count": 565}, {"class": "COALNE", "count": 243}, {"class": "RIVERS", "count": 209}, {"class": "RIVBNK", "count": 113}, {"class": "SBDARE", "count": 95}, {"class": "SLOTOP", "count": 86}, {"class": "LNDELV", "count": 78}, {"class": "DEPCNT", "count": 66}, {"class": "SLOGRD", "count": 64}, {"class": "_texto", "count": 62}, {"class": "DEPARE", "count": 61}, {"class": "ROADPT", "count": 53}, {"class": "RAILWY", "count": 30}, {"class": "ZEMCNT", "count": 27}, {"class": "LNDRGN", "count": 26}] [{"scale": 7500, "count": 89}, {"scale": 50000, "count": 1337}, {"scale": 100000, "count": 538}, {"scale": 200000, "count": 101}, {"scale": 1000000, "count": 26}]
20 19 5886280 10 889 377 10/889/377.pbf 132.71484375 42.682301017026845 132.5390625 42.553080288955805 132.890625 42.811521745097885 1680 1346 5 252 171 169 33 543 653 610 411 [{"class": "UWTROC", "count": 390}, {"class": "DEPARE", "count": 171}, {"class": "DEPCNT", "count": 169}, {"class": "SLCONS", "count": 137}, {"class": "COALNE", "count": 102}, {"class": "BRTFAC", "count": 95}, {"class": "SBDARE", "count": 88}, {"class": "_texto", "count": 46}, {"class": "OBSTRN", "count": 37}, {"class": "SLOGRD", "count": 35}, {"class": "SLOTOP", "count": 34}, {"class": "ROADPT", "count": 33}, {"class": "BUAARE", "count": 27}, {"class": "CBLSUB", "count": 25}, {"class": "SEAARE", "count": 22}] [{"scale": 7500, "count": 396}, {"scale": 20000, "count": 425}, {"scale": 50000, "count": 525}, {"scale": 100000, "count": 284}, {"scale": 200000, "count": 32}, {"scale": 1000000, "count": 18}]
21 20 5884667 10 911 350 10/911/350.pbf 140.44921875 49.26767122158997 140.2734375 49.15296965617039 140.625 49.38237278700955 1867 1328 5 231 75 70 48 509 638 813 410 [{"class": "UWTROC", "count": 367}, {"class": "RIVBNK", "count": 258}, {"class": "COALNE", "count": 193}, {"class": "SBDARE", "count": 119}, {"class": "SLOTOP", "count": 119}, {"class": "VEGARE", "count": 92}, {"class": "DEPARE", "count": 75}, {"class": "DEPCNT", "count": 70}, {"class": "RIVERS", "count": 65}, {"class": "LNDRGN", "count": 61}, {"class": "_texto", "count": 53}, {"class": "LNDARE", "count": 37}, {"class": "ZEMCNT", "count": 37}, {"class": "LAKSHR", "count": 33}, {"class": "ITDARE", "count": 30}] [{"scale": 20000, "count": 706}, {"scale": 50000, "count": 622}, {"scale": 100000, "count": 366}, {"scale": 200000, "count": 149}, {"scale": 1000000, "count": 24}]
22 21 5883660 10 914 372 10/914/372.pbf 141.50390625 43.961055905241 141.328125 43.83452678223683 141.6796875 44.087585028245165 1560 1321 5 362 230 253 54 280 479 559 517 [{"class": "DEPCNT", "count": 253}, {"class": "DEPARE", "count": 230}, {"class": "SLCONS", "count": 191}, {"class": "SBDARE", "count": 188}, {"class": "COALNE", "count": 107}, {"class": "LNDARE", "count": 64}, {"class": "UWTROC", "count": 60}, {"class": "_texto", "count": 54}, {"class": "ZEMCNT", "count": 52}, {"class": "ITDARE", "count": 44}, {"class": "LIGHTS", "count": 43}, {"class": "TOWERS", "count": 29}, {"class": "BUAARE", "count": 23}, {"class": "BRTFAC", "count": 22}, {"class": "BUISGL", "count": 21}] [{"scale": 7500, "count": 616}, {"scale": 20000, "count": 705}, {"scale": 100000, "count": 107}, {"scale": 200000, "count": 123}, {"scale": 1000000, "count": 8}, {"scale": 3000000, "count": 1}]
23 22 5881827 10 910 351 10/910/351.pbf 140.09765625 49.03773445996431 139.921875 48.92249926375824 140.2734375 49.15296965617039 1627 1302 5 280 42 40 37 207 415 737 471 [{"class": "COALNE", "count": 209}, {"class": "RIVBNK", "count": 138}, {"class": "BUAARE", "count": 111}, {"class": "UWTROC", "count": 98}, {"class": "SLOTOP", "count": 78}, {"class": "RAILWY", "count": 76}, {"class": "VEGARE", "count": 70}, {"class": "_texto", "count": 60}, {"class": "ROADPT", "count": 56}, {"class": "LNDELV", "count": 55}, {"class": "RIVERS", "count": 55}, {"class": "LNDARE", "count": 54}, {"class": "SBDARE", "count": 51}, {"class": "WEDKLP", "count": 51}, {"class": "DEPARE", "count": 42}] [{"scale": 20000, "count": 730}, {"scale": 50000, "count": 572}, {"scale": 100000, "count": 244}, {"scale": 200000, "count": 78}, {"scale": 1000000, "count": 3}]
24 23 5875328 10 912 380 10/912/380.pbf 140.80078125 41.90214300610273 140.625 41.77131167976407 140.9765625 42.03297433244139 1528 1238 5 268 119 125 160 334 751 402 372 [{"class": "SLCONS", "count": 220}, {"class": "SBDARE", "count": 166}, {"class": "DEPCNT", "count": 125}, {"class": "DEPARE", "count": 119}, {"class": "WRECKS", "count": 99}, {"class": "LIGHTS", "count": 91}, {"class": "_texto", "count": 77}, {"class": "BUAARE", "count": 43}, {"class": "BRIDGE", "count": 41}, {"class": "BUISGL", "count": 41}, {"class": "RIVBNK", "count": 34}, {"class": "UWTROC", "count": 32}, {"class": "COALNE", "count": 29}, {"class": "BOYSPP", "count": 25}, {"class": "OBSTRN", "count": 23}] [{"scale": 20000, "count": 922}, {"scale": 50000, "count": 316}, {"scale": 100000, "count": 126}, {"scale": 200000, "count": 150}, {"scale": 1000000, "count": 13}, {"scale": 3000000, "count": 1}]
25 24 5866952 10 915 377 10/915/377.pbf 141.85546875 42.682301017026845 141.6796875 42.553080288955805 142.03125 42.811521745097885 1252 1157 5 219 158 168 154 207 501 379 366 [{"class": "DEPCNT", "count": 168}, {"class": "DEPARE", "count": 158}, {"class": "SBDARE", "count": 139}, {"class": "SLCONS", "count": 135}, {"class": "LIGHTS", "count": 80}, {"class": "WRECKS", "count": 45}, {"class": "LNDARE", "count": 43}, {"class": "COALNE", "count": 41}, {"class": "ZEMCNT", "count": 37}, {"class": "ITDARE", "count": 32}, {"class": "RIVBNK", "count": 27}, {"class": "_texto", "count": 27}, {"class": "BRTFAC", "count": 25}, {"class": "BOYSPP", "count": 23}, {"class": "_extgn", "count": 18}] [{"scale": 20000, "count": 781}, {"scale": 50000, "count": 376}, {"scale": 200000, "count": 88}, {"scale": 1000000, "count": 7}]
26 25 5866237 10 886 376 10/886/376.pbf 131.66015625 42.94020475963375 131.484375 42.811521745097885 131.8359375 43.06888777416962 2537 1137 5 521 145 228 69 798 1064 906 558 [{"class": "UWTROC", "count": 561}, {"class": "COALNE", "count": 356}, {"class": "DEPCNT", "count": 228}, {"class": "SBDARE", "count": 179}, {"class": "LNDARE", "count": 146}, {"class": "DEPARE", "count": 145}, {"class": "_texto", "count": 142}, {"class": "SLOTOP", "count": 104}, {"class": "SLOGRD", "count": 85}, {"class": "RIVERS", "count": 54}, {"class": "ZEMCNT", "count": 45}, {"class": "ITDARE", "count": 43}, {"class": "LNDELV", "count": 43}, {"class": "OBSTRN", "count": 43}, {"class": "SEAARE", "count": 27}] [{"scale": 20000, "count": 7}, {"scale": 50000, "count": 1130}, {"scale": 100000, "count": 1107}, {"scale": 200000, "count": 179}, {"scale": 1000000, "count": 106}, {"scale": 3000000, "count": 8}]
27 26 5859715 10 859 386 10/859/386.pbf 122.16796875 40.312910186973724 121.9921875 40.17887331434696 122.34375 40.44694705960049 1715 1080 5 293 243 268 283 160 584 628 495 [{"class": "DEPCNT", "count": 268}, {"class": "SLCONS", "count": 247}, {"class": "DEPARE", "count": 243}, {"class": "LIGHTS", "count": 120}, {"class": "SBDARE", "count": 109}, {"class": "_texto", "count": 75}, {"class": "TOPMAR", "count": 67}, {"class": "ITDARE", "count": 45}, {"class": "ZEMCNT", "count": 45}, {"class": "BOYLAT", "count": 41}, {"class": "$LINES", "count": 36}, {"class": "BCNSPP", "count": 35}, {"class": "BRTFAC", "count": 29}, {"class": "BUAARE", "count": 29}, {"class": "COALNE", "count": 29}] [{"scale": 20000, "count": 418}, {"scale": 50000, "count": 662}, {"scale": 100000, "count": 498}, {"scale": 200000, "count": 114}, {"scale": 1000000, "count": 23}]
28 27 5857080 10 910 377 10/910/377.pbf 140.09765625 42.682301017026845 139.921875 42.553080288955805 140.2734375 42.811521745097885 1280 1058 5 317 75 86 29 214 342 452 480 [{"class": "COALNE", "count": 157}, {"class": "UWTROC", "count": 141}, {"class": "BUISGL", "count": 118}, {"class": "DEPCNT", "count": 86}, {"class": "LNDARE", "count": 83}, {"class": "BUAARE", "count": 82}, {"class": "SLCONS", "count": 77}, {"class": "DEPARE", "count": 75}, {"class": "ZEMCNT", "count": 75}, {"class": "ITDARE", "count": 51}, {"class": "SBDARE", "count": 51}, {"class": "ROADPT", "count": 46}, {"class": "_texto", "count": 40}, {"class": "RIVERS", "count": 27}, {"class": "LNDELV", "count": 20}] [{"scale": 7500, "count": 442}, {"scale": 20000, "count": 334}, {"scale": 50000, "count": 282}, {"scale": 100000, "count": 52}, {"scale": 200000, "count": 165}, {"scale": 1000000, "count": 5}]
29 28 5855856 10 886 375 10/886/375.pbf 131.66015625 43.19703272708128 131.484375 43.06888777416962 131.8359375 43.32517767999295 1656 1042 5 227 27 27 19 244 375 904 372 [{"class": "RIVERS", "count": 308}, {"class": "COALNE", "count": 170}, {"class": "UWTROC", "count": 132}, {"class": "RIVBNK", "count": 118}, {"class": "LAKSHR", "count": 78}, {"class": "LNDELV", "count": 62}, {"class": "LAKARE", "count": 57}, {"class": "LNDRGN", "count": 55}, {"class": "LNDARE", "count": 53}, {"class": "ZEMCNT", "count": 53}, {"class": "OBSTRN", "count": 51}, {"class": "_texto", "count": 46}, {"class": "SLOTOP", "count": 45}, {"class": "SBDARE", "count": 41}, {"class": "ITDARE", "count": 40}] [{"scale": 7500, "count": 1}, {"scale": 20000, "count": 4}, {"scale": 50000, "count": 1037}, {"scale": 100000, "count": 514}, {"scale": 200000, "count": 89}, {"scale": 1000000, "count": 11}]
30 29 5848607 10 910 353 10/910/353.pbf 140.09765625 48.57465613686708 139.921875 48.45835188280865 140.2734375 48.6909603909255 1607 970 5 253 31 29 12 482 569 770 262 [{"class": "UWTROC", "count": 371}, {"class": "RIVERS", "count": 255}, {"class": "RIVBNK", "count": 245}, {"class": "COALNE", "count": 195}, {"class": "SBDARE", "count": 82}, {"class": "SLOTOP", "count": 60}, {"class": "LNDRGN", "count": 54}, {"class": "LNDARE", "count": 52}, {"class": "_texto", "count": 33}, {"class": "DEPARE", "count": 31}, {"class": "DEPCNT", "count": 29}, {"class": "SLOGRD", "count": 29}, {"class": "WEDKLP", "count": 23}, {"class": "CTNARE", "count": 20}, {"class": "LNDELV", "count": 18}] [{"scale": 7500, "count": 39}, {"scale": 20000, "count": 683}, {"scale": 50000, "count": 248}, {"scale": 100000, "count": 524}, {"scale": 200000, "count": 103}, {"scale": 1000000, "count": 10}]
31 30 5843249 10 914 366 10/914/366.pbf 141.50390625 45.45999583298721 141.328125 45.33670190996811 141.6796875 45.58328975600631 949 923 5 333 56 63 18 140 304 211 432 [{"class": "SLCONS", "count": 185}, {"class": "LNDARE", "count": 116}, {"class": "SBDARE", "count": 70}, {"class": "UWTROC", "count": 66}, {"class": "DEPCNT", "count": 63}, {"class": "DEPARE", "count": 56}, {"class": "_texto", "count": 50}, {"class": "BUAARE", "count": 49}, {"class": "BUISGL", "count": 39}, {"class": "COALNE", "count": 32}, {"class": "ITDARE", "count": 25}, {"class": "ZEMCNT", "count": 25}, {"class": "TNKCON", "count": 20}, {"class": "LIGHTS", "count": 17}, {"class": "TOWERS", "count": 13}] [{"scale": 7500, "count": 307}, {"scale": 50000, "count": 616}, {"scale": 100000, "count": 1}, {"scale": 200000, "count": 22}, {"scale": 1000000, "count": 2}, {"scale": 3000000, "count": 1}]
32 31 5841185 10 915 366 10/915/366.pbf 141.85546875 45.45999583298721 141.6796875 45.33670190996811 142.03125 45.58328975600631 985 902 5 282 60 63 39 199 340 226 415 [{"class": "SLCONS", "count": 164}, {"class": "SBDARE", "count": 148}, {"class": "LNDARE", "count": 88}, {"class": "DEPCNT", "count": 63}, {"class": "DEPARE", "count": 60}, {"class": "BUISGL", "count": 58}, {"class": "UWTROC", "count": 31}, {"class": "COALNE", "count": 30}, {"class": "_texto", "count": 30}, {"class": "LIGHTS", "count": 27}, {"class": "RIVBNK", "count": 25}, {"class": "TOWERS", "count": 20}, {"class": "BRIDGE", "count": 18}, {"class": "BUAARE", "count": 17}, {"class": "ITDARE", "count": 17}] [{"scale": 7500, "count": 432}, {"scale": 50000, "count": 470}, {"scale": 200000, "count": 75}, {"scale": 1000000, "count": 8}]
33 32 5839618 10 911 381 10/911/381.pbf 140.44921875 41.6399444886017 140.2734375 41.50857729743934 140.625 41.77131167976407 1018 886 5 212 64 72 84 235 498 315 201 [{"class": "SBDARE", "count": 102}, {"class": "UWTROC", "count": 102}, {"class": "COALNE", "count": 85}, {"class": "SLCONS", "count": 75}, {"class": "DEPCNT", "count": 72}, {"class": "DEPARE", "count": 64}, {"class": "_texto", "count": 53}, {"class": "LNDARE", "count": 52}, {"class": "ITDARE", "count": 46}, {"class": "ZEMCNT", "count": 46}, {"class": "LIGHTS", "count": 38}, {"class": "BUISGL", "count": 28}, {"class": "BUIREL", "count": 23}, {"class": "$LINES", "count": 21}, {"class": "BUAARE", "count": 21}] [{"scale": 50000, "count": 886}, {"scale": 200000, "count": 123}, {"scale": 1000000, "count": 9}]
34 33 5838565 10 889 376 10/889/376.pbf 132.71484375 42.94020475963375 132.5390625 42.811521745097885 132.890625 43.06888777416962 1465 871 5 221 38 43 12 343 480 675 308 [{"class": "UWTROC", "count": 264}, {"class": "RIVERS", "count": 245}, {"class": "COALNE", "count": 175}, {"class": "BUAARE", "count": 75}, {"class": "_texto", "count": 64}, {"class": "RIVBNK", "count": 56}, {"class": "LNDELV", "count": 55}, {"class": "SLOTOP", "count": 55}, {"class": "ROADPT", "count": 51}, {"class": "SLOGRD", "count": 48}, {"class": "DEPCNT", "count": 43}, {"class": "DEPARE", "count": 38}, {"class": "SBDARE", "count": 36}, {"class": "SLCONS", "count": 26}, {"class": "LAKSHR", "count": 22}] [{"scale": 7500, "count": 10}, {"scale": 20000, "count": 4}, {"scale": 50000, "count": 857}, {"scale": 100000, "count": 494}, {"scale": 200000, "count": 86}, {"scale": 1000000, "count": 14}]
35 34 5834997 10 912 378 10/912/378.pbf 140.80078125 42.42332224056294 140.625 42.29356419217008 140.9765625 42.553080288955805 1297 837 5 450 98 117 113 194 454 477 362 [{"class": "SLCONS", "count": 239}, {"class": "DEPCNT", "count": 117}, {"class": "LNDARE", "count": 108}, {"class": "COALNE", "count": 103}, {"class": "DEPARE", "count": 98}, {"class": "UWTROC", "count": 84}, {"class": "LIGHTS", "count": 78}, {"class": "_texto", "count": 63}, {"class": "SBDARE", "count": 61}, {"class": "_extgn", "count": 34}, {"class": "ZEMCNT", "count": 33}, {"class": "ITDARE", "count": 32}, {"class": "WRECKS", "count": 26}, {"class": "TOWERS", "count": 25}, {"class": "BUAARE", "count": 22}] [{"scale": 50000, "count": 837}, {"scale": 100000, "count": 330}, {"scale": 200000, "count": 115}, {"scale": 1000000, "count": 15}]
36 35 5834080 10 915 361 10/915/361.pbf 141.85546875 46.679459874952244 141.6796875 46.55886030311718 142.03125 46.8000594467873 880 832 5 92 35 55 30 451 543 195 132 [{"class": "UWTROC", "count": 318}, {"class": "SBDARE", "count": 113}, {"class": "DEPCNT", "count": 55}, {"class": "_texto", "count": 42}, {"class": "DEPARE", "count": 35}, {"class": "COALNE", "count": 34}, {"class": "LNDARE", "count": 29}, {"class": "SLCONS", "count": 29}, {"class": "$LINES", "count": 28}, {"class": "ZEMCNT", "count": 23}, {"class": "ITDARE", "count": 20}, {"class": "BRTFAC", "count": 16}, {"class": "LIGHTS", "count": 15}, {"class": "RIVERS", "count": 13}, {"class": "OBSTRN", "count": 12}] [{"scale": 7500, "count": 459}, {"scale": 20000, "count": 198}, {"scale": 50000, "count": 175}, {"scale": 200000, "count": 42}, {"scale": 1000000, "count": 6}]
37 36 5828506 10 926 375 10/926/375.pbf 145.72265625 43.19703272708128 145.546875 43.06888777416962 145.8984375 43.32517767999295 1406 771 5 299 213 228 56 306 437 488 477 [{"class": "DEPCNT", "count": 228}, {"class": "DEPARE", "count": 213}, {"class": "COALNE", "count": 134}, {"class": "SBDARE", "count": 130}, {"class": "UWTROC", "count": 107}, {"class": "LNDARE", "count": 104}, {"class": "ZEMCNT", "count": 64}, {"class": "_texto", "count": 63}, {"class": "SLCONS", "count": 61}, {"class": "ITDARE", "count": 57}, {"class": "LIGHTS", "count": 51}, {"class": "WRECKS", "count": 40}, {"class": "OBSTRN", "count": 25}, {"class": "TOWERS", "count": 13}, {"class": "_extgn", "count": 10}] [{"scale": 20000, "count": 445}, {"scale": 50000, "count": 326}, {"scale": 100000, "count": 504}, {"scale": 200000, "count": 109}, {"scale": 1000000, "count": 20}, {"scale": 3000000, "count": 2}]
38 37 5828459 10 931 368 10/931/368.pbf 147.48046875 44.96466310811451 147.3046875 44.84029065139799 147.65625 45.089035564831015 1359 771 5 203 95 91 23 394 479 604 271 [{"class": "UWTROC", "count": 306}, {"class": "COALNE", "count": 179}, {"class": "RIVERS", "count": 177}, {"class": "DEPARE", "count": 95}, {"class": "SLOTOP", "count": 94}, {"class": "DEPCNT", "count": 91}, {"class": "SLOGRD", "count": 65}, {"class": "SBDARE", "count": 57}, {"class": "LNDELV", "count": 30}, {"class": "RIVBNK", "count": 30}, {"class": "_texto", "count": 30}, {"class": "ROADPT", "count": 24}, {"class": "LNDARE", "count": 21}, {"class": "LNDRGN", "count": 19}, {"class": "CTNARE", "count": 15}] [{"scale": 20000, "count": 231}, {"scale": 50000, "count": 540}, {"scale": 100000, "count": 489}, {"scale": 200000, "count": 91}, {"scale": 1000000, "count": 6}, {"scale": 3000000, "count": 2}]
39 38 5828120 10 916 359 10/916/359.pbf 142.20703125 47.15970557368874 142.03125 47.04018214480666 142.3828125 47.27922900257082 820 773 5 108 15 30 99 144 300 312 206 [{"class": "RIVERS", "count": 123}, {"class": "UWTROC", "count": 95}, {"class": "BUAARE", "count": 82}, {"class": "SLCONS", "count": 54}, {"class": "LIGHTS", "count": 52}, {"class": "COALNE", "count": 44}, {"class": "DEPCNT", "count": 30}, {"class": "SLOTOP", "count": 24}, {"class": "LNDELV", "count": 23}, {"class": "SBDARE", "count": 23}, {"class": "SLOGRD", "count": 23}, {"class": "WATTUR", "count": 22}, {"class": "BRTFAC", "count": 18}, {"class": "DEPARE", "count": 15}, {"class": "BCNSPP", "count": 14}] [{"scale": 7500, "count": 195}, {"scale": 20000, "count": 127}, {"scale": 50000, "count": 451}, {"scale": 200000, "count": 43}, {"scale": 1000000, "count": 3}, {"scale": 3000000, "count": 1}]
40 39 5828023 10 932 368 10/932/368.pbf 147.83203125 44.96466310811451 147.65625 44.84029065139799 148.0078125 45.089035564831015 1223 768 5 193 81 55 12 303 373 542 301 [{"class": "COALNE", "count": 153}, {"class": "UWTROC", "count": 146}, {"class": "RIVERS", "count": 134}, {"class": "SBDARE", "count": 122}, {"class": "DEPARE", "count": 81}, {"class": "SLOTOP", "count": 77}, {"class": "RIVBNK", "count": 70}, {"class": "DEPCNT", "count": 55}, {"class": "LAKSHR", "count": 47}, {"class": "SLOGRD", "count": 45}, {"class": "_texto", "count": 42}, {"class": "LNDARE", "count": 40}, {"class": "CTNARE", "count": 34}, {"class": "LNDELV", "count": 34}, {"class": "LAKARE", "count": 31}] [{"scale": 20000, "count": 414}, {"scale": 50000, "count": 354}, {"scale": 100000, "count": 331}, {"scale": 200000, "count": 114}, {"scale": 1000000, "count": 2}, {"scale": 3000000, "count": 4}, {"scale": 20000000, "count": 4}]
41 40 5823820 10 898 370 10/898/370.pbf 135.87890625 44.465016214702985 135.703125 44.33956524809713 136.0546875 44.590467181308846 1320 725 5 99 13 17 33 346 541 556 221 [{"class": "UWTROC", "count": 307}, {"class": "RIVERS", "count": 219}, {"class": "RIVBNK", "count": 170}, {"class": "_texto", "count": 94}, {"class": "COALNE", "count": 83}, {"class": "BUAARE", "count": 74}, {"class": "LNDELV", "count": 54}, {"class": "SLOTOP", "count": 27}, {"class": "VEGARE", "count": 23}, {"class": "SBDARE", "count": 22}, {"class": "LIGHTS", "count": 20}, {"class": "LNDRGN", "count": 20}, {"class": "ROADPT", "count": 20}, {"class": "SLOGRD", "count": 18}, {"class": "DEPCNT", "count": 17}] [{"scale": 50000, "count": 725}, {"scale": 100000, "count": 534}, {"scale": 200000, "count": 49}, {"scale": 1000000, "count": 12}]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
CM95 → NavSea PBF 第一测试 AOI 候选 v1
======================================================================================
Dataset ID: 1
扫描范围: lon 120.0..160.0, lat 40.0..50.0
#01 z10/887/375 center=(132.01172,43.19703) features=4475 detail=3674 groups=5/5
land=818 depth=366 contour=390 nav=191 hazard=856
#02 z10/890/377 center=(133.06641,42.68230) features=4323 detail=3504 groups=5/5
land=529 depth=401 contour=378 nav=283 hazard=1493
#03 z10/914/385 center=(141.50391,40.58045) features=3544 detail=3231 groups=5/5
land=647 depth=401 contour=441 nav=132 hazard=1062
#04 z10/884/377 center=(130.95703,42.68230) features=3900 detail=2700 groups=5/5
land=588 depth=244 contour=227 nav=85 hazard=1252
#05 z10/911/351 center=(140.44922,49.03773) features=3190 detail=2448 groups=5/5
land=425 depth=194 contour=182 nav=171 hazard=1106
#06 z10/912/381 center=(140.80078,41.63994) features=2228 detail=2022 groups=5/5
land=408 depth=160 contour=190 nav=78 hazard=622
#07 z10/856/384 center=(121.11328,40.84693) features=2303 detail=1989 groups=5/5
land=454 depth=294 contour=299 nav=354 hazard=348
#08 z10/887/376 center=(132.01172,42.94020) features=2340 detail=1746 groups=5/5
land=501 depth=134 contour=209 nav=133 hazard=767
#09 z10/892/376 center=(133.76953,42.94020) features=2329 detail=1728 groups=5/5
land=393 depth=73 contour=67 nav=31 hazard=734
#10 z10/885/376 center=(131.30859,42.94020) features=2397 detail=1611 groups=5/5
land=357 depth=88 contour=91 nav=50 hazard=678
#11 z10/914/377 center=(141.50391,42.68230) features=1712 detail=1614 groups=5/5
land=430 depth=162 contour=181 nav=101 hazard=232
#12 z10/912/384 center=(140.80078,40.84693) features=1893 detail=1578 groups=5/5
land=490 depth=154 contour=166 nav=115 hazard=282
#13 z10/896/373 center=(135.17578,43.70746) features=2073 detail=1553 groups=5/5
land=322 depth=98 contour=81 nav=46 hazard=473
#14 z10/859/385 center=(122.16797,40.58045) features=2171 detail=1539 groups=5/5
land=471 depth=224 contour=226 nav=417 hazard=112
#15 z10/922/376 center=(144.31641,42.94020) features=2067 detail=1534 groups=5/5
land=316 depth=181 contour=188 nav=84 hazard=570
下一步:把 JSON 或 CSV 上传给 ChatGPT。
ChatGPT 会选一个最适合的 tile,并告诉你需要提供的现有 NavSea PBF z10/z11/z12 路径。

View File

@@ -0,0 +1,415 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 / CM93 MySQL → PBF 测试 AOI 自动候选选择器 v1
目标:
从已导入 MySQL 的 CM93 Dataset 中,自动寻找适合做
CM95→NavSea PBF 第一轮对照测试的 z10 XYZ tile。
优先选择同时包含:
- 陆地/岸线
- 水深区
- 等深线
- 灯标/航标
- 危险物
- 较细比例尺数据
脚本只读数据库,不修改任何内容。
执行:
python .\cm95_select_pbf_test_aoi_v1.py `
--host 127.0.0.1 `
--port 3306 `
--user root `
--database cm93_chart `
--dataset-id 1
输出:
- cm95_pbf_aoi_candidates_v1.csv
- cm95_pbf_aoi_candidates_v1.json
- cm95_pbf_aoi_candidates_v1.txt
"""
from __future__ import annotations
import argparse
import csv
import getpass
import json
import math
from collections import Counter, defaultdict
from datetime import datetime
from pathlib import Path
import pymysql
from pymysql.cursors import SSDictCursor
Z = 10
LAND = {"LNDARE", "COALNE", "SLCONS"}
DEPTH = {"DEPARE"}
CONTOUR = {"DEPCNT"}
LIGHT_NAV_EXACT = {
"LIGHTS", "LITFLT", "LITVES", "LNDMRK",
"FOGSIG", "RTPBCN", "TOPMAR", "DAYMAR",
}
LIGHT_NAV_PREFIX = ("BOY", "BCN")
HAZARD = {
"OBSTRN", "UWTROC", "WRECKS", "SBDARE",
"CTNARE", "MORFAC",
}
# native_scale 数值越小,通常越详细。
DETAIL_SCALE_LIMIT = 50000
def args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password", default=None)
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument("--min-lon", type=float, default=120.0)
p.add_argument("--max-lon", type=float, default=160.0)
p.add_argument("--min-lat", type=float, default=40.0)
p.add_argument("--max-lat", type=float, default=50.0)
p.add_argument("--top", type=int, default=40)
p.add_argument("--output-dir", default=".")
return p.parse_args()
def lonlat_to_tile(lon, lat, z):
lat = max(min(lat, 85.05112878), -85.05112878)
n = 2 ** z
x = int((lon + 180.0) / 360.0 * n)
lat_rad = math.radians(lat)
y = int(
(1.0 - math.asinh(math.tan(lat_rad)) / math.pi)
/ 2.0 * n
)
x = max(0, min(n - 1, x))
y = max(0, min(n - 1, y))
return x, y
def tile_bounds(z, x, y):
n = 2 ** z
min_lon = x / n * 360.0 - 180.0
max_lon = (x + 1) / n * 360.0 - 180.0
def lat(ty):
return math.degrees(
math.atan(math.sinh(math.pi * (1 - 2 * ty / n)))
)
max_lat = lat(y)
min_lat = lat(y + 1)
return min_lon, min_lat, max_lon, max_lat
def is_navmark(cls):
return cls in LIGHT_NAV_EXACT or cls.startswith(LIGHT_NAV_PREFIX)
def classify(cls):
flags = set()
if cls in LAND:
flags.add("land")
if cls in DEPTH:
flags.add("depth")
if cls in CONTOUR:
flags.add("contour")
if is_navmark(cls):
flags.add("nav")
if cls in HAZARD:
flags.add("hazard")
return flags
def main():
a = args()
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
outdir = Path(a.output_dir).resolve()
outdir.mkdir(parents=True, exist_ok=True)
conn = pymysql.connect(
host=a.host,
port=a.port,
user=a.user,
password=a.password,
database=a.database,
charset="utf8mb4",
cursorclass=SSDictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
)
tiles = {}
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
try:
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
cur.execute(
"""
SELECT
object_class,
geometry_type,
native_scale,
bbox_min_lon,
bbox_min_lat,
bbox_max_lon,
bbox_max_lat
FROM chart_feature
WHERE dataset_id=%s
AND bbox_min_lon IS NOT NULL
AND bbox_min_lat IS NOT NULL
AND bbox_max_lon IS NOT NULL
AND bbox_max_lat IS NOT NULL
AND bbox_max_lon >= %s
AND bbox_min_lon <= %s
AND bbox_max_lat >= %s
AND bbox_min_lat <= %s
""",
(
a.dataset_id,
a.min_lon,
a.max_lon,
a.min_lat,
a.max_lat,
),
)
scanned = 0
for row in cur:
scanned += 1
lon = (
float(row["bbox_min_lon"])
+ float(row["bbox_max_lon"])
) / 2.0
lat = (
float(row["bbox_min_lat"])
+ float(row["bbox_max_lat"])
) / 2.0
if not (
a.min_lon <= lon <= a.max_lon
and a.min_lat <= lat <= a.max_lat
):
continue
x, y = lonlat_to_tile(lon, lat, Z)
key = (x, y)
if key not in tiles:
tiles[key] = {
"feature_count": 0,
"detail_feature_count": 0,
"classes": Counter(),
"geometry": Counter(),
"flags": Counter(),
"native_scales": Counter(),
}
t = tiles[key]
cls = str(row["object_class"] or "")
geom = str(row["geometry_type"] or "")
scale = int(row["native_scale"] or 999999999)
t["feature_count"] += 1
t["classes"][cls] += 1
t["geometry"][geom] += 1
t["native_scales"][scale] += 1
if scale <= DETAIL_SCALE_LIMIT:
t["detail_feature_count"] += 1
for flag in classify(cls):
t["flags"][flag] += 1
conn.rollback()
finally:
conn.close()
rows = []
for (x, y), t in tiles.items():
flags = t["flags"]
required_present = sum(
1
for name in ("land", "depth", "contour", "nav", "hazard")
if flags[name] > 0
)
hard_gate_present = (
int(flags["nav"] > 0)
+ int(flags["hazard"] > 0)
+ int(flags["depth"] > 0)
)
# 先奖励类别闭环,再奖励细尺度和总要素。
score = (
required_present * 1_000_000
+ hard_gate_present * 250_000
+ min(t["detail_feature_count"], 10000) * 100
+ min(t["feature_count"], 100000)
)
min_lon, min_lat, max_lon, max_lat = tile_bounds(Z, x, y)
rows.append({
"score": score,
"z": Z,
"x": x,
"y": y,
"tile_path": f"{Z}/{x}/{y}.pbf",
"center_lon": (min_lon + max_lon) / 2,
"center_lat": (min_lat + max_lat) / 2,
"min_lon": min_lon,
"min_lat": min_lat,
"max_lon": max_lon,
"max_lat": max_lat,
"feature_count": t["feature_count"],
"detail_feature_count_le_50000": t["detail_feature_count"],
"required_groups_present": required_present,
"land_count": flags["land"],
"depth_count": flags["depth"],
"contour_count": flags["contour"],
"navmark_light_count": flags["nav"],
"hazard_count": flags["hazard"],
"point_count": t["geometry"]["POINT"],
"line_count": t["geometry"]["LINE"],
"area_count": t["geometry"]["AREA"],
"top_classes": [
{"class": k, "count": v}
for k, v in t["classes"].most_common(15)
],
"native_scales": [
{"scale": k, "count": v}
for k, v in sorted(t["native_scales"].items())
],
})
rows.sort(
key=lambda r: (
r["score"],
r["detail_feature_count_le_50000"],
r["feature_count"],
),
reverse=True,
)
top = rows[: a.top]
csv_path = outdir / "cm95_pbf_aoi_candidates_v1.csv"
json_path = outdir / "cm95_pbf_aoi_candidates_v1.json"
txt_path = outdir / "cm95_pbf_aoi_candidates_v1.txt"
csv_fields = [
"rank", "score", "z", "x", "y", "tile_path",
"center_lon", "center_lat",
"min_lon", "min_lat", "max_lon", "max_lat",
"feature_count", "detail_feature_count_le_50000",
"required_groups_present",
"land_count", "depth_count", "contour_count",
"navmark_light_count", "hazard_count",
"point_count", "line_count", "area_count",
"top_classes", "native_scales",
]
with csv_path.open("w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=csv_fields)
w.writeheader()
for i, row in enumerate(top, 1):
r = dict(row)
r["rank"] = i
r["top_classes"] = json.dumps(
r["top_classes"], ensure_ascii=False
)
r["native_scales"] = json.dumps(
r["native_scales"], ensure_ascii=False
)
w.writerow(r)
json_path.write_text(
json.dumps(
{
"version": "v1",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"search_bbox": [
a.min_lon, a.min_lat, a.max_lon, a.max_lat
],
"z": Z,
"candidate_count": len(rows),
"top": top,
},
ensure_ascii=False,
indent=2,
),
encoding="utf-8",
)
lines = [
"CM95 → NavSea PBF 第一测试 AOI 候选 v1",
"=" * 86,
f"Dataset ID: {a.dataset_id}",
f"扫描范围: lon {a.min_lon}..{a.max_lon}, lat {a.min_lat}..{a.max_lat}",
"",
]
for i, r in enumerate(top[:15], 1):
lines += [
(
f"#{i:02d} z{r['z']}/{r['x']}/{r['y']} "
f"center=({r['center_lon']:.5f},{r['center_lat']:.5f}) "
f"features={r['feature_count']} "
f"detail={r['detail_feature_count_le_50000']} "
f"groups={r['required_groups_present']}/5"
),
(
f" land={r['land_count']} depth={r['depth_count']} "
f"contour={r['contour_count']} "
f"nav={r['navmark_light_count']} "
f"hazard={r['hazard_count']}"
),
]
lines += [
"",
"下一步:把 JSON 或 CSV 上传给 ChatGPT。",
"ChatGPT 会选一个最适合的 tile,并告诉你需要提供的现有 NavSea PBF z10/z11/z12 路径。",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
print("")
print("输出:")
print(csv_path)
print(json_path)
print(txt_path)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,8 @@
cell_id,source_relative_path,source_file_name,scale_code,native_scale,cell_name,feature_count,attribute_count,bbox_min_lon,bbox_min_lat,bbox_max_lon,bbox_max_lat
693,03900420\F\03910424.F,03910424.F,F,20000,03910424,2279,3432,141.3333299246928,40.333332355444654,141.66666320214676,40.66666571671767
351,03900420\E\03910424.E,03910424.E,E,50000,03910424,1026,1207,141.33333333333331,40.333333333333314,141.66666666666666,40.66666666666665
113,03900420\D\03900423.D,03900423.D,D,100000,03900423,125,202,141.0,40.0,142.0,41.0
40,03900420\C\03900420.C,03900420.C,C,200000,03900420,6725,9241,139.99999664723882,39.99999899417164,143.99999647960075,43.999998910352616
12,03900420\B\03900420.B,03900420.B,B,1000000,03900420,2047,3738,139.99999664723882,39.99999899417164,149.99999639578172,49.999998826533584
4,03900420\A\03900420.A,03900420.A,A,3000000,03900420,414,280,140.0,40.0,160.0,60.0
784,03900360\Z\03900360.Z,03900360.Z,Z,20000000,03900360,195,102,120.0,40.0,160.0,80.0
1 cell_id source_relative_path source_file_name scale_code native_scale cell_name feature_count attribute_count bbox_min_lon bbox_min_lat bbox_max_lon bbox_max_lat
2 693 03900420\F\03910424.F 03910424.F F 20000 03910424 2279 3432 141.3333299246928 40.333332355444654 141.66666320214676 40.66666571671767
3 351 03900420\E\03910424.E 03910424.E E 50000 03910424 1026 1207 141.33333333333331 40.333333333333314 141.66666666666666 40.66666666666665
4 113 03900420\D\03900423.D 03900423.D D 100000 03900423 125 202 141.0 40.0 142.0 41.0
5 40 03900420\C\03900420.C 03900420.C C 200000 03900420 6725 9241 139.99999664723882 39.99999899417164 143.99999647960075 43.999998910352616
6 12 03900420\B\03900420.B 03900420.B B 1000000 03900420 2047 3738 139.99999664723882 39.99999899417164 149.99999639578172 49.999998826533584
7 4 03900420\A\03900420.A 03900420.A A 3000000 03900420 414 280 140.0 40.0 160.0 60.0
8 784 03900360\Z\03900360.Z 03900360.Z Z 20000000 03900360 195 102 120.0 40.0 160.0 80.0

View File

@@ -0,0 +1,600 @@
{"feature_id": 604514, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 14, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48240163792386, "bbox_min_lat": 40.526190070337684, "bbox_max_lon": 141.50641424823823, "bbox_max_lat": 40.54307822725843, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:14:area"}
{"feature_id": 604519, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 19, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.50556991582724, "bbox_min_lat": 40.55430583427656, "bbox_max_lon": 141.52833637288447, "bbox_max_lat": 40.558930511994106, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:19:area"}
{"feature_id": 604550, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 50, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.52219207437574, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.52462843115197, "bbox_max_lat": 40.52362749764253, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:50:area"}
{"feature_id": 512947, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 17, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.5240011656172, "bbox_min_lat": 40.54009534689111, "bbox_max_lon": 141.53088298455424, "bbox_max_lat": 40.54618996679383, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:17:area"}
{"feature_id": 512948, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 18, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48626560412873, "bbox_min_lat": 40.53205814052522, "bbox_max_lon": 141.50629561371784, "bbox_max_lat": 40.54309443682702, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:18:area"}
{"feature_id": 513001, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 71, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.5644019696208, "bbox_min_lat": 40.54113741878584, "bbox_max_lon": 141.56583631769195, "bbox_max_lat": 40.542530211517395, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:71:area"}
{"feature_id": 513042, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 112, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.4848973784864, "bbox_min_lat": 40.560496674008796, "bbox_max_lon": 141.48612318658974, "bbox_max_lat": 40.561665470596104, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:112:area"}
{"feature_id": 513113, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 183, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.50382365214844, "bbox_min_lat": 40.53037533959098, "bbox_max_lon": 141.5042356457433, "bbox_max_lat": 40.53107185144783, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:183:area"}
{"feature_id": 513120, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 190, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48924111342524, "bbox_min_lat": 40.52480806859645, "bbox_max_lon": 141.52280078921723, "bbox_max_lat": 40.524813153073175, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:190:area"}
{"feature_id": 513147, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 217, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.47966862026965, "bbox_min_lat": 40.53205305659812, "bbox_max_lon": 141.48926145878795, "bbox_max_lat": 40.53205814052522, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:217:area"}
{"feature_id": 355899, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 227, "object_class_id": 194, "object_class": "$AREAS", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.48360203301593, "bbox_min_lat": 40.54546919941691, "bbox_max_lon": 141.52089508130248, "bbox_max_lat": 40.56594792583181, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "II25"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:227:area"}
{"feature_id": 606645, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2145, "object_class_id": 191, "object_class": "$COMPS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5797389231571, "bbox_min_lat": 40.57465202664078, "bbox_max_lon": 141.5797389231571, "bbox_max_lat": 40.57465202664078, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$ANNCH": "00.00 E", "$CYEAR": 2012, "$VARIA": "08.25 W"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2145:point"}
{"feature_id": 606646, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2146, "object_class_id": 191, "object_class": "$COMPS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56779619724773, "bbox_min_lat": 40.530232024536936, "bbox_max_lon": 141.56779619724773, "bbox_max_lat": 40.530232024536936, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$ANNCH": "00.00 E", "$CYEAR": 2012, "$VARIA": "08.25 W"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2146:point"}
{"feature_id": 606647, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2147, "object_class_id": 191, "object_class": "$COMPS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48432936071757, "bbox_min_lat": 40.541060209705, "bbox_max_lon": 141.48432936071757, "bbox_max_lat": 40.541060209705, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$ANNCH": "00.00 E", "$CYEAR": 2012, "$VARIA": "08.25 W"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2147:point"}
{"feature_id": 606648, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2148, "object_class_id": 191, "object_class": "$COMPS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51307735340913, "bbox_min_lat": 40.57465202664078, "bbox_max_lon": 141.51307735340913, "bbox_max_lat": 40.57465202664078, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$ANNCH": "00.00 E", "$CYEAR": 2012, "$VARIA": "08.25 W"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2148:point"}
{"feature_id": 513873, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 943, "object_class_id": 191, "object_class": "$COMPS", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52882301657974, "bbox_min_lat": 40.54675416127495, "bbox_max_lon": 141.52882301657974, "bbox_max_lat": 40.54675416127495, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$ANNCH": "01.00 W", "$CYEAR": 2002, "$VARIA": "08.25 W"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:943:point"}
{"feature_id": 605626, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1126, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55866621726165, "bbox_min_lat": 40.562812961762916, "bbox_max_lon": 141.5593884775168, "bbox_max_lat": 40.56311785665859, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1126:line"}
{"feature_id": 605627, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1127, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55866621726165, "bbox_min_lat": 40.56294508305488, "bbox_max_lon": 141.55873233967938, "bbox_max_lat": 40.56311785665859, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1127:line"}
{"feature_id": 605628, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1128, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55866621726165, "bbox_min_lat": 40.56311785665859, "bbox_max_lon": 141.55889510255378, "bbox_max_lat": 40.56316867233952, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1128:line"}
{"feature_id": 605629, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1129, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.56042609084113, "bbox_min_lat": 40.56204563679645, "bbox_max_lon": 141.56066514881292, "bbox_max_lat": 40.562055800098534, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH41"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1129:line"}
{"feature_id": 605630, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1130, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.56065497613326, "bbox_min_lat": 40.562055800098534, "bbox_max_lon": 141.56066514881292, "bbox_max_lat": 40.56223365763497, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH41"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1130:line"}
{"feature_id": 605631, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1131, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.5600598743737, "bbox_min_lat": 40.562055800098534, "bbox_max_lon": 141.56066514881292, "bbox_max_lat": 40.56248265739202, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH41"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1131:line"}
{"feature_id": 513535, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 605, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.514311686626, "bbox_min_lat": 40.543114769181905, "bbox_max_lon": 141.51596474734632, "bbox_max_lat": 40.54461426334148, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IK1"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:605:line"}
{"feature_id": 513536, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 606, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.5171142603395, "bbox_min_lat": 40.54540211970138, "bbox_max_lon": 141.51750082223097, "bbox_max_lat": 40.545676596514554, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IK1"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:606:line"}
{"feature_id": 513537, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 607, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.51596474734632, "bbox_min_lat": 40.54461426334148, "bbox_max_lon": 141.5171142603395, "bbox_max_lat": 40.54540211970138, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IK1"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:607:line"}
{"feature_id": 513538, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 608, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.56166551833616, "bbox_min_lat": 40.564191017875025, "bbox_max_lon": 141.56253019625137, "bbox_max_lat": 40.56450098793721, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:608:line"}
{"feature_id": 513539, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 609, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.56166551833616, "bbox_min_lat": 40.56331191464415, "bbox_max_lon": 141.56478344517163, "bbox_max_lat": 40.564191017875025, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:609:line"}
{"feature_id": 513540, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 610, "object_class_id": 193, "object_class": "$LINES", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.56166551833616, "bbox_min_lat": 40.56353042114975, "bbox_max_lon": 141.56207242559037, "bbox_max_lat": 40.564191017875025, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"$SCODE": "IH40"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:610:line"}
{"feature_id": 604950, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 450, "object_class_id": 4, "object_class": "ACHARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5441192853618, "bbox_min_lat": 40.558930511994106, "bbox_max_lon": 141.55827456909512, "bbox_max_lat": 40.56973373383364, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATACH": [5]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:450:area"}
{"feature_id": 513194, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 264, "object_class_id": 4, "object_class": "ACHARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.54422445615202, "bbox_min_lat": 40.55892130718866, "bbox_max_lon": 141.55849672809387, "bbox_max_lat": 40.56979058361586, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATACH": [5]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:264:area"}
{"feature_id": 606117, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1617, "object_class_id": 1, "object_class": "AIRARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.46890757836783, "bbox_min_lat": 40.55140889540878, "bbox_max_lon": 141.46890757836783, "bbox_max_lat": 40.55140889540878, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hachinohe Airfield"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1617:point"}
{"feature_id": 359255, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3583, "object_class_id": 1, "object_class": "AIRARE", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 1, "coverage_id": 1255, "bbox_min_lon": 141.3656803156843, "bbox_min_lat": 40.70594661568029, "bbox_max_lon": 141.3656803156843, "bbox_max_lat": 40.70594661568029, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3583:point"}
{"feature_id": 359256, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3584, "object_class_id": 1, "object_class": "AIRARE", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 1, "coverage_id": 1255, "bbox_min_lon": 141.46889233639226, "bbox_min_lat": 40.551963132302625, "bbox_max_lon": 141.46889233639226, "bbox_max_lat": 40.551963132302625, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3584:point"}
{"feature_id": 606473, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1973, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.54682521814877, "bbox_min_lat": 40.5377458524923, "bbox_max_lon": 141.54682521814877, "bbox_max_lat": 40.5377458524923, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6623", "VERLEN": 10, "_cm93_relation20_raw": 2256}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1973:point"}
{"feature_id": 606474, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1974, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5279752427569, "bbox_min_lat": 40.55872215426594, "bbox_max_lon": 141.5279752427569, "bbox_max_lat": 40.55872215426594, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,UKHO,graph,LL M-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 2251}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1974:point"}
{"feature_id": 606475, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1975, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.53323451813606, "bbox_min_lat": 40.53630720776126, "bbox_max_lon": 141.53323451813606, "bbox_max_lat": 40.53630720776126, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6623.6", "VERLEN": 9, "_cm93_relation20_raw": 2273}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1975:point"}
{"feature_id": 606476, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1976, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52043728713608, "bbox_min_lat": 40.53762384848427, "bbox_max_lon": 141.52043728713608, "bbox_max_lat": 40.53762384848427, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624.7", "VERLEN": 9, "_cm93_relation20_raw": 2272}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1976:point"}
{"feature_id": 606477, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1977, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.55245070999536, "bbox_min_lat": 40.53446183378157, "bbox_max_lon": 141.55245070999536, "bbox_max_lat": 40.53446183378157, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "SORIND": "GB,UKHO,graph,LL M-6624", "VERLEN": 10, "_cm93_relation20_raw": 2254}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1977:point"}
{"feature_id": 513782, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 852, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.54681340355705, "bbox_min_lat": 40.537767147215504, "bbox_max_lon": 141.54681340355705, "bbox_max_lat": 40.537767147215504, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "INFORM": "Metal|Framework tower", "SORIND": "GB,MDHS,graph,LL F-6623", "VERLEN": 10, "_cm93_relation20_raw": 1004}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:852:point"}
{"feature_id": 513783, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 853, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.53316675151854, "bbox_min_lat": 40.53632341943859, "bbox_max_lon": 141.53316675151854, "bbox_max_lat": 40.53632341943859, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6623.6", "VERLEN": 9, "_cm93_relation20_raw": 1013}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:853:point"}
{"feature_id": 513784, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 854, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.5280092020713, "bbox_min_lat": 40.558667212294104, "bbox_max_lon": 141.5280092020713, "bbox_max_lat": 40.558667212294104, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,MDHS,graph,LL F-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 1018}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:854:point"}
{"feature_id": 513785, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 855, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.52035425935122, "bbox_min_lat": 40.53766039376199, "bbox_max_lon": 141.52035425935122, "bbox_max_lat": 40.53766039376199, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6624.7", "VERLEN": 9, "_cm93_relation20_raw": 1008}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:855:point"}
{"feature_id": 513786, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 856, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.5524745007314, "bbox_min_lat": 40.53454921840199, "bbox_max_lon": 141.5524745007314, "bbox_max_lat": 40.53454921840199, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BCNSHP": 3, "CATLAM": 2, "COLMAR": 3, "SORIND": "GB,MDHS,graph,LL F-6624", "VERLEN": 10, "_cm93_relation20_raw": 1007}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:856:point"}
{"feature_id": 360094, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 4422, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 161, "coverage_id": 1255, "bbox_min_lon": 141.54707956201432, "bbox_min_lat": 40.53735089780069, "bbox_max_lon": 141.54707956201432, "bbox_max_lat": 40.53735089780069, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6623", "VERLEN": 10, "_cm93_relation20_raw": 6632}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:4422:point"}
{"feature_id": 360111, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 4439, "object_class_id": 7, "object_class": "BCNLAT", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 161, "coverage_id": 1255, "bbox_min_lon": 141.52785319505807, "bbox_min_lat": 40.55864373294613, "bbox_max_lon": 141.52785319505807, "bbox_max_lat": 40.55864373294613, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATLAM": 2, "COLMAR": 3, "INFORM": "Concrete", "SORIND": "GB,UKHO,graph,LL M-6624.8", "VERLEN": 16, "_cm93_relation20_raw": 6602}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:4439:point"}
{"feature_id": 606478, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1978, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.53411954126562, "bbox_min_lat": 40.53822878284375, "bbox_max_lon": 141.53411954126562, "bbox_max_lat": 40.53822878284375, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLMAR": 5, "SORIND": "GB,UKHO,graph,LL M-6623.2", "VERLEN": 9, "_cm93_relation20_raw": 2255}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1978:point"}
{"feature_id": 606479, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1979, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5108444502259, "bbox_min_lat": 40.531909745248655, "bbox_max_lon": 141.5108444502259, "bbox_max_lat": 40.531909745248655, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSPM": 6}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1979:point"}
{"feature_id": 606480, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1980, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51061556493377, "bbox_min_lat": 40.53027778111349, "bbox_max_lon": 141.51061556493377, "bbox_max_lat": 40.53027778111349, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSPM": 6}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1980:point"}
{"feature_id": 606481, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1981, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.57670746462134, "bbox_min_lat": 40.53993171998525, "bbox_max_lon": 141.57670746462134, "bbox_max_lat": 40.53993171998525, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1981:point"}
{"feature_id": 513787, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 857, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51056813988717, "bbox_min_lat": 40.53031941496734, "bbox_max_lon": 141.51056813988717, "bbox_max_lat": 40.53031941496734, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSPM": 6}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:857:point"}
{"feature_id": 513788, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 858, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.510807197899, "bbox_min_lat": 40.53193104223212, "bbox_max_lon": 141.510807197899, "bbox_max_lat": 40.53193104223212, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSPM": 6}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:858:point"}
{"feature_id": 513789, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 859, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.57687367696272, "bbox_min_lat": 40.54005976366212, "bbox_max_lon": 141.57687367696272, "bbox_max_lat": 40.54005976366212, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:859:point"}
{"feature_id": 360210, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 4538, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 161, "coverage_id": 1255, "bbox_min_lon": 141.53426198404347, "bbox_min_lat": 40.53797541747083, "bbox_max_lon": 141.53426198404347, "bbox_max_lat": 40.53797541747083, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLMAR": 5, "SORIND": "GB,UKHO,graph,LL M-6623.2", "VERLEN": 9, "_cm93_relation20_raw": 6663}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:4538:point"}
{"feature_id": 360211, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 4539, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 161, "coverage_id": 1255, "bbox_min_lon": 141.47084549113066, "bbox_min_lat": 40.54653075073066, "bbox_max_lon": 141.47084549113066, "bbox_max_lat": 40.54653075073066, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6625", "VERLEN": 43, "_cm93_relation20_raw": 6720}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:4539:point"}
{"feature_id": 360212, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 4540, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 161, "coverage_id": 1255, "bbox_min_lon": 141.3592715266989, "bbox_min_lat": 40.68775404209214, "bbox_max_lon": 141.3592715266989, "bbox_max_lat": 40.68775404209214, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6626", "_cm93_relation20_raw": 6620}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:4540:point"}
{"feature_id": 329077, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 1254, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 161, "coverage_id": 1184, "bbox_min_lon": 141.47157794882685, "bbox_min_lat": 40.54722276035132, "bbox_max_lon": 141.47157794882685, "bbox_max_lat": 40.54722276035132, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSPM": 27, "INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6625", "VERLEN": 43, "_cm93_relation20_raw": 2039}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:1254:point"}
{"feature_id": 329081, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 1258, "object_class_id": 9, "object_class": "BCNSPP", "geometry_type": "POINT", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 161, "coverage_id": 1184, "bbox_min_lon": 141.35805082775352, "bbox_min_lat": 40.68748385272822, "bbox_max_lon": 141.35805082775352, "bbox_max_lat": 40.68748385272822, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Metal", "SORIND": "GB,UKHO,graph,LL M-6626", "_cm93_relation20_raw": 2041}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:1258:point"}
{"feature_id": 606482, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1982, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.51602234416788, "bbox_min_lat": 40.54453705850963, "bbox_max_lon": 141.51602234416788, "bbox_max_lat": 40.54453705850963, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2248}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1982:point"}
{"feature_id": 606483, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1983, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5144252334628, "bbox_min_lat": 40.54336796282291, "bbox_max_lon": 141.5144252334628, "bbox_max_lat": 40.54336796282291, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2249}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1983:point"}
{"feature_id": 606484, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1984, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.51764488657207, "bbox_min_lat": 40.545787460007524, "bbox_max_lon": 141.51764488657207, "bbox_max_lat": 40.545787460007524, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 1, "CATSPM": 27, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2246}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1984:point"}
{"feature_id": 606485, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1985, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.55372738129145, "bbox_min_lat": 40.53761368147356, "bbox_max_lon": 141.55372738129145, "bbox_max_lat": 40.53761368147356, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2247}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1985:point"}
{"feature_id": 606486, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1986, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.54760851448182, "bbox_min_lat": 40.55077866754792, "bbox_max_lon": 141.54760851448182, "bbox_max_lat": 40.55077866754792, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2250}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1986:point"}
{"feature_id": 606487, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1987, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.54756782376322, "bbox_min_lat": 40.54819670438723, "bbox_max_lon": 141.54756782376322, "bbox_max_lat": 40.54819670438723, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 4, "COLMAR": 4, "STATUS": [8], "_cm93_relation20_raw": 2245}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1987:point"}
{"feature_id": 513790, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 860, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.5684761285037, "bbox_min_lat": 40.56065929040829, "bbox_max_lon": 141.5684761285037, "bbox_max_lat": 40.56065929040829, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 1, "CATSPM": 10, "COLMAR": 4, "INFORM": "Private mark|Wave recorder", "_cm93_relation20_raw": 999}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:860:point"}
{"feature_id": 513791, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 861, "object_class_id": 20, "object_class": "BOYSPP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 161, "coverage_id": 1759, "bbox_min_lon": 141.51750082223097, "bbox_min_lat": 40.5455495240557, "bbox_max_lon": 141.51750082223097, "bbox_max_lat": 40.5455495240557, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BOYSHP": 1, "CATSPM": 13, "COLMAR": 4, "_cm93_relation20_raw": 1000}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:861:point"}
{"feature_id": 605092, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 592, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.52348400469134, "bbox_min_lat": 40.52173601209488, "bbox_max_lon": 141.52437920050053, "bbox_max_lat": 40.52204617870608, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:592:line"}
{"feature_id": 356988, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1316, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.52370274123894, "bbox_min_lat": 40.52167354722334, "bbox_max_lon": 141.5250455351216, "bbox_max_lat": 40.522110813885774, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1316:line"}
{"feature_id": 356990, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1318, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.47835292965644, "bbox_min_lat": 40.52104887561479, "bbox_max_lon": 141.4791463987689, "bbox_max_lat": 40.521486146352, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1318:line"}
{"feature_id": 356995, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1323, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.402668183543, "bbox_min_lat": 40.59603029763058, "bbox_max_lon": 141.4032175083132, "bbox_max_lat": 40.59665426997741, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1323:line"}
{"feature_id": 604954, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 454, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51496438548423, "bbox_min_lat": 40.52731879151409, "bbox_max_lon": 141.5275683355709, "bbox_max_lat": 40.53483802984688, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Vertical Datum: Nearly highest high water", "OBJNAM": "Hachinohe Bridge", "VERCLR": 31}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:454:area"}
{"feature_id": 604955, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 455, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.50174498827877, "bbox_min_lat": 40.53866087547059, "bbox_max_lon": 141.5089777635101, "bbox_max_lat": 40.54449639465438, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hattaro Bridge"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:455:area"}
{"feature_id": 604959, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 459, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.482833976809, "bbox_min_lat": 40.52831022010887, "bbox_max_lon": 141.48914103819214, "bbox_max_lat": 40.529779541153175, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "The Numadate Bridge"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:459:area"}
{"feature_id": 604972, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 472, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4898785574668, "bbox_min_lat": 40.53319596934804, "bbox_max_lon": 141.49215215136863, "bbox_max_lat": 40.53527014434237, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "The Shin-O-Hashi Bridge"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:472:area"}
{"feature_id": 604977, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 477, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5257881166321, "bbox_min_lat": 40.533745021918726, "bbox_max_lon": 141.5267596075387, "bbox_max_lat": 40.53444149879896, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m", "VERCLR": 4.5}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:477:area"}
{"feature_id": 604979, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 479, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.52516249683362, "bbox_min_lat": 40.53330272992247, "bbox_max_lon": 141.52600174290475, "bbox_max_lat": 40.53390261951076, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m", "OBJNAM": "Seagull Bridge", "VERCLR": 5.300000190734863}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:479:area"}
{"feature_id": 604983, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 483, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5234992637108, "bbox_min_lat": 40.52097838597756, "bbox_max_lon": 141.52466912187057, "bbox_max_lat": 40.521497030284365, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:483:area"}
{"feature_id": 604984, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 484, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.52300588874778, "bbox_min_lat": 40.52218854978475, "bbox_max_lon": 141.52404858841192, "bbox_max_lat": 40.52259023798374, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:484:area"}
{"feature_id": 604985, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 485, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.52215138365713, "bbox_min_lat": 40.52317496966713, "bbox_max_lon": 141.5231330472434, "bbox_max_lat": 40.52363766677541, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Minato Bridge"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:485:area"}
{"feature_id": 604991, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 491, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4613289320284, "bbox_min_lat": 40.58684966151635, "bbox_max_lon": 141.46190877476846, "bbox_max_lat": 40.586946177037234, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Ichikawa Bridge"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:491:area"}
{"feature_id": 604996, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 496, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.5893793380977, "bbox_max_lon": 141.46821583615161, "bbox_max_lat": 40.589475849967826, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:496:area"}
{"feature_id": 604997, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 497, "object_class_id": 11, "object_class": "BRIDGE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.46707140969096, "bbox_min_lat": 40.5916193934965, "bbox_max_lon": 141.46731555400257, "bbox_max_lat": 40.59173114032683, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:497:area"}
{"feature_id": 606118, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1618, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55108757092222, "bbox_min_lat": 40.53333831674283, "bbox_max_lon": 141.55108757092222, "bbox_max_lat": 40.53333831674283, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "1"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1618:point"}
{"feature_id": 606119, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1619, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5020349096488, "bbox_min_lat": 40.53115223412844, "bbox_max_lon": 141.5020349096488, "bbox_max_lat": 40.53115223412844, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "1"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1619:point"}
{"feature_id": 606120, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1620, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48699460278593, "bbox_min_lat": 40.557111171404564, "bbox_max_lon": 141.48699460278593, "bbox_max_lat": 40.557111171404564, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "1"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1620:point"}
{"feature_id": 606121, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1621, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54962270505257, "bbox_min_lat": 40.53038963039137, "bbox_max_lon": 141.54962270505257, "bbox_max_lat": 40.53038963039137, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "2"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1621:point"}
{"feature_id": 606122, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1622, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48800678441114, "bbox_min_lat": 40.556755428638965, "bbox_max_lon": 141.48800678441114, "bbox_max_lat": 40.556755428638965, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "2"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1622:point"}
{"feature_id": 606123, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1623, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49382047083125, "bbox_min_lat": 40.53163521200654, "bbox_max_lon": 141.49382047083125, "bbox_max_lat": 40.53163521200654, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "2"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1623:point"}
{"feature_id": 606124, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1624, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52261424058122, "bbox_min_lat": 40.53258590565955, "bbox_max_lon": 141.52261424058122, "bbox_max_lat": 40.53258590565955, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "2"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1624:point"}
{"feature_id": 606125, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1625, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4971113326981, "bbox_min_lat": 40.55358415245652, "bbox_max_lon": 141.4971113326981, "bbox_max_lat": 40.55358415245652, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "3"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1625:point"}
{"feature_id": 606126, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1626, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54800016264838, "bbox_min_lat": 40.529616849751626, "bbox_max_lon": 141.54800016264838, "bbox_max_lat": 40.529616849751626, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "3"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1626:point"}
{"feature_id": 606127, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1627, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52164274967464, "bbox_min_lat": 40.53336881971666, "bbox_max_lon": 141.52164274967464, "bbox_max_lat": 40.53336881971666, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "3"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1627:point"}
{"feature_id": 606128, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1628, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52041185543695, "bbox_min_lat": 40.53429915374781, "bbox_max_lon": 141.52041185543695, "bbox_max_lat": 40.53429915374781, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "4"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1628:point"}
{"feature_id": 606129, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1629, "object_class_id": 10, "object_class": "BRTFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5460012310971, "bbox_min_lat": 40.52946941032777, "bbox_max_lon": 141.5460012310971, "bbox_max_lat": 40.52946941032777, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "4"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1629:point"}
{"feature_id": 606176, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1676, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5023960397764, "bbox_min_lat": 40.538406703674674, "bbox_max_lon": 141.5023960397764, "bbox_max_lat": 40.538406703674674, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Tate"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1676:point"}
{"feature_id": 606177, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1677, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5323088042879, "bbox_min_lat": 40.52455288241755, "bbox_max_lon": 141.5323088042879, "bbox_max_lat": 40.52455288241755, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Osawa"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1677:point"}
{"feature_id": 606178, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1678, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55584329865871, "bbox_min_lat": 40.532311375187646, "bbox_max_lon": 141.55584329865871, "bbox_max_lat": 40.532311375187646, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hinode"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1678:point"}
{"feature_id": 606179, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1679, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51138360224738, "bbox_min_lat": 40.53952505236351, "bbox_max_lon": 141.51138360224738, "bbox_max_lat": 40.53952505236351, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Toyosu"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1679:point"}
{"feature_id": 606180, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1680, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49386116154983, "bbox_min_lat": 40.54159903142414, "bbox_max_lon": 141.49386116154983, "bbox_max_lat": 40.54159903142414, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hattaro"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1680:point"}
{"feature_id": 606181, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1681, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49041262314842, "bbox_min_lat": 40.546936182273, "bbox_max_lon": 141.49041262314842, "bbox_max_lat": 40.546936182273, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hasunuma"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1681:point"}
{"feature_id": 606182, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1682, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50835214371162, "bbox_min_lat": 40.53415680839427, "bbox_max_lon": 141.50835214371162, "bbox_max_lat": 40.53415680839427, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Kawaragi"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1682:point"}
{"feature_id": 606183, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1683, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4815623918527, "bbox_min_lat": 40.56097339975906, "bbox_max_lon": 141.4815623918527, "bbox_max_lat": 40.56097339975906, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Kitanuma"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1683:point"}
{"feature_id": 606184, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1684, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49126712823906, "bbox_min_lat": 40.529042342579885, "bbox_max_lon": 141.49126712823906, "bbox_max_lat": 40.529042342579885, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Numadate"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1684:point"}
{"feature_id": 606185, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1685, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55269485430696, "bbox_min_lat": 40.525503676544034, "bbox_max_lon": 141.55269485430696, "bbox_max_lat": 40.525503676544034, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Sunamori"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1685:point"}
{"feature_id": 606186, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1686, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5229906297283, "bbox_min_lat": 40.52654597546327, "bbox_max_lon": 141.5229906297283, "bbox_max_lat": 40.52654597546327, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Tatehana"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1686:point"}
{"feature_id": 606187, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1687, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.525121806115, "bbox_min_lat": 40.52382579545554, "bbox_max_lon": 141.525121806115, "bbox_max_lat": 40.52382579545554, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Uenoyama"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1687:point"}
{"feature_id": 356932, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1260, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.48195405870538, "bbox_min_lat": 40.50205608050168, "bbox_max_lon": 141.52370274123894, "bbox_max_lat": 40.53104292280326, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hachinohe"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1260:area"}
{"feature_id": 356939, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1267, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 4, "coverage_id": 1255, "bbox_min_lon": 141.5200405761044, "bbox_min_lat": 40.52354752712211, "bbox_max_lon": 141.56233858340812, "bbox_max_lat": 40.536476560482114, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1267:area"}
{"feature_id": 356940, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1268, "object_class_id": 14, "object_class": "BUAARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.35310688205578, "bbox_min_lat": 40.67017978633022, "bbox_max_lon": 141.37538505329078, "bbox_max_lat": 40.68794097735286, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Misawa"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1268:area"}
{"feature_id": 606163, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1663, "object_class_id": 12, "object_class": "BUIREL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55765403563643, "bbox_min_lat": 40.538671042322356, "bbox_max_lon": 141.55765403563643, "bbox_max_lat": 40.538671042322356, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATREB": 6}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1663:point"}
{"feature_id": 606164, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1664, "object_class_id": 12, "object_class": "BUIREL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54299011792065, "bbox_min_lat": 40.521868214432516, "bbox_max_lon": 141.54299011792065, "bbox_max_lat": 40.521868214432516, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATREB": 6}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1664:point"}
{"feature_id": 606165, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1665, "object_class_id": 12, "object_class": "BUIREL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5470744488002, "bbox_min_lat": 40.52239193651546, "bbox_max_lon": 141.5470744488002, "bbox_max_lat": 40.52239193651546, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATREB": 7}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1665:point"}
{"feature_id": 606166, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1666, "object_class_id": 12, "object_class": "BUIREL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55871199432005, "bbox_min_lat": 40.534716020543605, "bbox_max_lon": 141.55871199432005, "bbox_max_lat": 40.534716020543605, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATREB": 7}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1666:point"}
{"feature_id": 513612, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 682, "object_class_id": 12, "object_class": "BUIREL", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5575354097058, "bbox_min_lat": 40.5387584211606, "bbox_max_lon": 141.5575354097058, "bbox_max_lat": 40.5387584211606, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATREB": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:682:point"}
{"feature_id": 606167, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1667, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50884551867463, "bbox_min_lat": 40.532540150658996, "bbox_max_lon": 141.50884551867463, "bbox_max_lat": 40.532540150658996, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [17], "OBJNAM": "Tohoku Electric Power Thermal Power Plants", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1667:point"}
{"feature_id": 606168, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1668, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.47135919416354, "bbox_min_lat": 40.54817129086928, "bbox_max_lon": 141.47135919416354, "bbox_max_lat": 40.54817129086928, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Japan Maritime Self Defense Force Air Base", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1668:point"}
{"feature_id": 606169, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1669, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5349587873368, "bbox_min_lat": 40.56216759631946, "bbox_max_lon": 141.5349587873368, "bbox_max_lat": 40.56216759631946, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2, "INFORM": "Light support|Not in use"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1669:point"}
{"feature_id": 606170, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1670, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48396823059, "bbox_min_lat": 40.55183073816308, "bbox_max_lon": 141.48396823059, "bbox_max_lat": 40.55183073816308, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [5]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1670:point"}
{"feature_id": 606171, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1671, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52620519649776, "bbox_min_lat": 40.52337326881893, "bbox_max_lon": 141.52620519649776, "bbox_max_lat": 40.52337326881893, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [6]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1671:point"}
{"feature_id": 606172, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1672, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.46028623236427, "bbox_min_lat": 40.58774369469495, "bbox_max_lon": 141.46028623236427, "bbox_max_lat": 40.58774369469495, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [6]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1672:point"}
{"feature_id": 606173, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1673, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5438293639918, "bbox_min_lat": 40.52141567458002, "bbox_max_lon": 141.5438293639918, "bbox_max_lat": 40.52141567458002, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [6]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1673:point"}
{"feature_id": 606174, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1674, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55499896624775, "bbox_min_lat": 40.52998798893422, "bbox_max_lon": 141.55499896624775, "bbox_max_lat": 40.52998798893422, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [6]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1674:point"}
{"feature_id": 606175, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1675, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51179050943338, "bbox_min_lat": 40.52511725916765, "bbox_max_lon": 141.51179050943338, "bbox_max_lat": 40.52511725916765, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [6]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1675:point"}
{"feature_id": 513613, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 683, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.54623864706045, "bbox_min_lat": 40.52743160734014, "bbox_max_lon": 141.54623864706045, "bbox_max_lat": 40.52743160734014, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [2]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:683:point"}
{"feature_id": 513614, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 684, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.54700668450278, "bbox_min_lat": 40.527446860172084, "bbox_max_lon": 141.54700668450278, "bbox_max_lat": 40.527446860172084, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [3]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:684:point"}
{"feature_id": 359260, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3588, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.59181901274104, "bbox_min_lat": 40.50055642020571, "bbox_max_lon": 141.59181901274104, "bbox_max_lat": 40.50055642020571, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"BUISHP": 4, "CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3588:point"}
{"feature_id": 604957, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 457, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4970096059016, "bbox_min_lat": 40.533658597275405, "bbox_max_lon": 141.49857111222792, "bbox_max_lat": 40.535371817936316, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [13], "OBJNAM": "Tohoku Electric Power Electric Substation"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:457:area"}
{"feature_id": 604958, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 458, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55372738129145, "bbox_min_lat": 40.530831941615936, "bbox_max_lon": 141.55581278061976, "bbox_max_lat": 40.534751606613355, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No.1 Fish Market"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:458:area"}
{"feature_id": 604961, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 461, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51506102594092, "bbox_min_lat": 40.52768994342353, "bbox_max_lon": 141.51729392912415, "bbox_max_lat": 40.528884733556836, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No.2 Fish Market"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:461:area"}
{"feature_id": 604964, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 464, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53618968157446, "bbox_min_lat": 40.5271408412395, "bbox_max_lon": 141.53678478333399, "bbox_max_lat": 40.529855802611685, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No.3 Fish Market"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:464:area"}
{"feature_id": 604967, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 467, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.56627538164003, "bbox_min_lat": 40.53100479808267, "bbox_max_lon": 141.5673028222847, "bbox_max_lat": 40.531767394819084, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:467:area"}
{"feature_id": 604968, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 468, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.56943399867143, "bbox_min_lat": 40.53479736010381, "bbox_max_lon": 141.57069541094805, "bbox_max_lat": 40.53575817618616, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:468:area"}
{"feature_id": 604969, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 469, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4846599728062, "bbox_min_lat": 40.55606934796726, "bbox_max_lon": 141.48570267247035, "bbox_max_lat": 40.55687739780013, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Port Management Office"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:469:area"}
{"feature_id": 604971, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 471, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55004487125805, "bbox_min_lat": 40.52108516601581, "bbox_max_lon": 141.55107231190274, "bbox_max_lat": 40.52168516497249, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:471:area"}
{"feature_id": 604974, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 474, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55127576549575, "bbox_min_lat": 40.52684086684987, "bbox_max_lon": 141.55255243679184, "bbox_max_lat": 40.52762384802846, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19], "INFORM": "Fisheries High School"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:474:area"}
{"feature_id": 604978, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 478, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48570267247035, "bbox_min_lat": 40.545787460007524, "bbox_max_lon": 141.4868064082124, "bbox_max_lat": 40.54645839752919, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:478:area"}
{"feature_id": 604980, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 480, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53568613393176, "bbox_min_lat": 40.52661207192136, "bbox_max_lon": 141.53639313516746, "bbox_max_lat": 40.527084913912766, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Fishery Hall"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:480:area"}
{"feature_id": 604981, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 481, "object_class_id": 13, "object_class": "BUISGL", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.46143065882492, "bbox_min_lat": 40.58446212797802, "bbox_max_lon": 141.46238689071203, "bbox_max_lat": 40.584893922271476, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATBUI": [19]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:481:area"}
{"feature_id": 605093, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 593, "object_class_id": 21, "object_class": "CBLOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.48957337707728, "bbox_min_lat": 40.53383653024312, "bbox_max_lon": 141.49799126948784, "bbox_max_lat": 40.535102382575076, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:593:line"}
{"feature_id": 605094, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 594, "object_class_id": 21, "object_class": "CBLOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.49748772184518, "bbox_min_lat": 40.53474143916679, "bbox_max_lon": 141.49922725006533, "bbox_max_lat": 40.54026213561014, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:594:line"}
{"feature_id": 605095, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 595, "object_class_id": 21, "object_class": "CBLOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.49142989111343, "bbox_min_lat": 40.53482786241341, "bbox_max_lon": 141.49712150537775, "bbox_max_lat": 40.53634279298588, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:595:line"}
{"feature_id": 605096, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 596, "object_class_id": 21, "object_class": "CBLOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.49642976316153, "bbox_min_lat": 40.535193889045665, "bbox_max_lon": 141.49718254145566, "bbox_max_lat": 40.53960130273064, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:596:line"}
{"feature_id": 513239, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 309, "object_class_id": 21, "object_class": "CBLOHD", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.55523638371943, "bbox_min_lat": 40.5385550841112, "bbox_max_lon": 141.55672159519733, "bbox_max_lat": 40.538595751570455, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1, "QUAVEM": 1, "VERCLR": 12}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:309:line"}
{"feature_id": 605097, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 597, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55528888761776, "bbox_min_lat": 40.53959113602004, "bbox_max_lon": 141.55550760023024, "bbox_max_lat": 40.5453909937673, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"STATUS": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:597:line"}
{"feature_id": 605098, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 598, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.51061556493377, "bbox_min_lat": 40.53039979849827, "bbox_max_lon": 141.51085970924538, "bbox_max_lat": 40.531833486127546, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:598:line"}
{"feature_id": 605099, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 599, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55552285924972, "bbox_min_lat": 40.54564513906312, "bbox_max_lon": 141.56850828482325, "bbox_max_lat": 40.560744721391565, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"STATUS": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:599:line"}
{"feature_id": 605100, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 600, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.55511595206372, "bbox_min_lat": 40.53803052764702, "bbox_max_lon": 141.55866621726165, "bbox_max_lat": 40.544882700282585, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:600:line"}
{"feature_id": 605101, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 601, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.55882389379622, "bbox_min_lat": 40.54509110107785, "bbox_max_lon": 141.56853371652238, "bbox_max_lat": 40.560734557890434, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:601:line"}
{"feature_id": 513240, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 310, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.51056813988717, "bbox_min_lat": 40.530395675806176, "bbox_max_lon": 141.51087840666852, "bbox_max_lat": 40.53183953131183, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCBL": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:310:line"}
{"feature_id": 513241, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 311, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.55523638371943, "bbox_min_lat": 40.53998351382215, "bbox_max_lon": 141.5684303514376, "bbox_max_lat": 40.56062371810466, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"STATUS": [4]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:311:line"}
{"feature_id": 513242, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 312, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 2, "coverage_id": 1759, "bbox_min_lon": 141.55518552031265, "bbox_min_lat": 40.53802640489446, "bbox_max_lon": 141.55679280396683, "bbox_max_lat": 40.53998351382215, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:312:line"}
{"feature_id": 513243, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 313, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 2, "coverage_id": 1759, "bbox_min_lon": 141.55523638371943, "bbox_min_lat": 40.53998351382215, "bbox_max_lon": 141.56826250219524, "bbox_max_lat": 40.5603696296718, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:313:line"}
{"feature_id": 357026, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1354, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.55592979442275, "bbox_min_lat": 40.53903708754933, "bbox_max_lon": 141.56905255282143, "bbox_max_lat": 40.55801940598371, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1354:line"}
{"feature_id": 357028, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1356, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.440754700942, "bbox_min_lat": 40.48555797336778, "bbox_max_lon": 141.89883052318518, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1356:line"}
{"feature_id": 357031, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1359, "object_class_id": 22, "object_class": "CBLSUB", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.55397663968432, "bbox_min_lat": 40.53753825431301, "bbox_max_lon": 141.56679421765514, "bbox_max_lat": 40.559705075420034, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1359:line"}
{"feature_id": 606204, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1704, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5084538705081, "bbox_min_lat": 40.52984563442224, "bbox_max_lon": 141.5084538705081, "bbox_max_lat": 40.52984563442224, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2, "HEIGHT": 30}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1704:point"}
{"feature_id": 606205, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1705, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50834197103194, "bbox_min_lat": 40.529937148071795, "bbox_max_lon": 141.50834197103194, "bbox_max_lat": 40.529937148071795, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2, "HEIGHT": 30}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1705:point"}
{"feature_id": 606206, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1706, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48877482172475, "bbox_min_lat": 40.55533243867397, "bbox_max_lon": 141.48877482172475, "bbox_max_lat": 40.55533243867397, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1706:point"}
{"feature_id": 606207, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1707, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.511627746559, "bbox_min_lat": 40.52949483094124, "bbox_max_lon": 141.511627746559, "bbox_max_lat": 40.52949483094124, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 27}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1707:point"}
{"feature_id": 606208, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1708, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4817607591059, "bbox_min_lat": 40.568676863401265, "bbox_max_lon": 141.4817607591059, "bbox_max_lat": 40.568676863401265, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 81}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1708:point"}
{"feature_id": 606209, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1709, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4907890122955, "bbox_min_lat": 40.55222716628113, "bbox_max_lon": 141.4907890122955, "bbox_max_lat": 40.55222716628113, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1709:point"}
{"feature_id": 606210, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1710, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4907178035379, "bbox_min_lat": 40.552328814138484, "bbox_max_lon": 141.4907178035379, "bbox_max_lat": 40.552328814138484, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1710:point"}
{"feature_id": 606211, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1711, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49086530739285, "bbox_min_lat": 40.55339610732457, "bbox_max_lon": 141.49086530739285, "bbox_max_lat": 40.55339610732457, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 40}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1711:point"}
{"feature_id": 606212, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1712, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55584329865871, "bbox_min_lat": 40.53195550067965, "bbox_max_lon": 141.55584329865871, "bbox_max_lat": 40.53195550067965, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1712:point"}
{"feature_id": 606213, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1713, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.47853093331693, "bbox_min_lat": 40.567955336499885, "bbox_max_lon": 141.47853093331693, "bbox_max_lat": 40.567955336499885, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 71}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1713:point"}
{"feature_id": 606214, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1714, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4800364899052, "bbox_min_lat": 40.56812301598066, "bbox_max_lon": 141.4800364899052, "bbox_max_lat": 40.56812301598066, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 82}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1714:point"}
{"feature_id": 606215, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1715, "object_class_id": 33, "object_class": "CHIMNY", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.507701092214, "bbox_min_lat": 40.53496003892795, "bbox_max_lon": 141.507701092214, "bbox_max_lat": 40.53496003892795, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"HEIGHT": 123}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1715:point"}
{"feature_id": 605102, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 602, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55769472635504, "bbox_min_lat": 40.539565719236776, "bbox_max_lon": 141.55789817994807, "bbox_max_lat": 40.53977921991639, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:602:line"}
{"feature_id": 605103, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 603, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55833560517303, "bbox_min_lat": 40.5392149666431, "bbox_max_lon": 141.55843733196951, "bbox_max_lat": 40.53943355180842, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:603:line"}
{"feature_id": 605104, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 604, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.58220071163242, "bbox_min_lat": 40.53133525773399, "bbox_max_lon": 141.58275003633358, "bbox_max_lat": 40.53198092035005, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:604:line"}
{"feature_id": 605105, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 605, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.58185484052436, "bbox_min_lat": 40.53245372446163, "bbox_max_lon": 141.58341634685064, "bbox_max_lat": 40.53425339991716, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:605:line"}
{"feature_id": 605106, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 606, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.58073584576283, "bbox_min_lat": 40.53929121736317, "bbox_max_lon": 141.58107154419127, "bbox_max_lat": 40.5394793021016, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:606:line"}
{"feature_id": 605107, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 607, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.5812597387648, "bbox_min_lat": 40.53814236398398, "bbox_max_lon": 141.58260761881846, "bbox_max_lat": 40.53865070861728, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:607:line"}
{"feature_id": 605108, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 608, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.57895562682404, "bbox_min_lat": 40.541436368720355, "bbox_max_lon": 141.57974909583675, "bbox_max_lat": 40.54199552010982, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:608:line"}
{"feature_id": 605109, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 609, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.58141741529937, "bbox_min_lat": 40.53762384848427, "bbox_max_lon": 141.5826330505176, "bbox_max_lat": 40.53796444245105, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCOA": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:609:line"}
{"feature_id": 605110, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 610, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.58137163824097, "bbox_min_lat": 40.539697886404404, "bbox_max_lon": 141.58144793333835, "bbox_max_lat": 40.53978938659846, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:610:line"}
{"feature_id": 605111, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 611, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5812597387648, "bbox_min_lat": 40.53426356743778, "bbox_max_lon": 141.58143267431888, "bbox_max_lat": 40.53439574506549, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:611:line"}
{"feature_id": 605112, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 612, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5634321176778, "bbox_min_lat": 40.54065863220875, "bbox_max_lon": 141.56352367179463, "bbox_max_lat": 40.540729798016514, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:612:line"}
{"feature_id": 605113, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 613, "object_class_id": 35, "object_class": "COALNE", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5603599684234, "bbox_min_lat": 40.53870662629144, "bbox_max_lon": 141.56043626352078, "bbox_max_lat": 40.53875237708104, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:613:line"}
{"feature_id": 356834, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1162, "object_class_id": 36, "object_class": "CONZNE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.65029158272228, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 142.48599766642022, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP", "SORIND": "CM,PAD,graph,B3900420"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1162:area"}
{"feature_id": 328186, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 363, "object_class_id": 36, "object_class": "CONZNE", "geometry_type": "AREA", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1184, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 40.65462374281519, "bbox_max_lon": 141.82085695438715, "bbox_max_lat": 42.413189699068205, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:363:area"}
{"feature_id": 606221, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1721, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.504298330871, "bbox_min_lat": 40.552633756784694, "bbox_max_lon": 141.504298330871, "bbox_max_lat": 40.552633756784694, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1721:point"}
{"feature_id": 606222, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1722, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50241129879586, "bbox_min_lat": 40.552633756784694, "bbox_max_lon": 141.50241129879586, "bbox_max_lat": 40.552633756784694, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1722:point"}
{"feature_id": 606223, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1723, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4969485698237, "bbox_min_lat": 40.557309370125466, "bbox_max_lon": 141.4969485698237, "bbox_max_lat": 40.557309370125466, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1723:point"}
{"feature_id": 606224, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1724, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55016185707404, "bbox_min_lat": 40.53230120737078, "bbox_max_lon": 141.55016185707404, "bbox_max_lat": 40.53230120737078, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1724:point"}
{"feature_id": 606225, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1725, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50749763862098, "bbox_min_lat": 40.53064383260135, "bbox_max_lon": 141.50749763862098, "bbox_max_lat": 40.53064383260135, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1725:point"}
{"feature_id": 606226, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1726, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50274699722434, "bbox_min_lat": 40.53117257010931, "bbox_max_lon": 141.50274699722434, "bbox_max_lat": 40.53117257010931, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1726:point"}
{"feature_id": 606227, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1727, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50241129879586, "bbox_min_lat": 40.53120307406901, "bbox_max_lon": 141.50241129879586, "bbox_max_lat": 40.53120307406901, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1727:point"}
{"feature_id": 513642, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 712, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.50327432735523, "bbox_min_lat": 40.55255339838609, "bbox_max_lon": 141.50327432735523, "bbox_max_lat": 40.55255339838609, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:712:point"}
{"feature_id": 513643, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 713, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.4910365916845, "bbox_min_lat": 40.55806246256592, "bbox_max_lon": 141.4910365916845, "bbox_max_lat": 40.55806246256592, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:713:point"}
{"feature_id": 513644, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 714, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5070178740941, "bbox_min_lat": 40.53227674902543, "bbox_max_lon": 141.5070178740941, "bbox_max_lat": 40.53227674902543, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:714:point"}
{"feature_id": 513645, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 715, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.55027211521792, "bbox_min_lat": 40.53240893056331, "bbox_max_lon": 141.55027211521792, "bbox_max_lat": 40.53240893056331, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:715:point"}
{"feature_id": 513646, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 716, "object_class_id": 39, "object_class": "CRANES", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.49833040421643, "bbox_min_lat": 40.55698507976717, "bbox_max_lon": 141.49833040421643, "bbox_max_lat": 40.55698507976717, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCRN": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:716:point"}
{"feature_id": 606201, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1701, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55814741059947, "bbox_min_lat": 40.537379839801666, "bbox_max_lon": 141.55814741059947, "bbox_max_lat": 40.537379839801666, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Slipway"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1701:point"}
{"feature_id": 606202, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1702, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5603599684234, "bbox_min_lat": 40.562269229085544, "bbox_max_lon": 141.5603599684234, "bbox_max_lat": 40.562269229085544, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Ebb stream|Orientation: 133 Deg|Current velocity: 0.3kn"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1702:point"}
{"feature_id": 606203, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1703, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55902734738925, "bbox_min_lat": 40.56296540938435, "bbox_max_lon": 141.55902734738925, "bbox_max_lat": 40.56296540938435, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Flood stream|Orientation: 299 Deg|Current velocity: 0.3kn"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1703:point"}
{"feature_id": 513615, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 685, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.49002949623028, "bbox_min_lat": 40.55958194940096, "bbox_max_lon": 141.49002949623028, "bbox_max_lat": 40.55958194940096, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "FOUL"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:685:point"}
{"feature_id": 513616, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 686, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51584267517003, "bbox_min_lat": 40.54395347344211, "bbox_max_lon": 141.51584267517003, "bbox_max_lat": 40.54395347344211, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Marked by buoys"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:686:point"}
{"feature_id": 513617, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 687, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52292286139348, "bbox_min_lat": 40.534788153657274, "bbox_max_lon": 141.52292286139348, "bbox_max_lat": 40.534788153657274, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "(liable to shoal)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:687:point"}
{"feature_id": 513618, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 688, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.53515551072357, "bbox_min_lat": 40.56668090077736, "bbox_max_lon": 141.53515551072357, "bbox_max_lat": 40.56668090077736, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "WORKS IN PROGRESS (1998)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:688:point"}
{"feature_id": 513619, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 689, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5528152855568, "bbox_min_lat": 40.548711015211666, "bbox_max_lon": 141.5528152855568, "bbox_max_lat": 40.548711015211666, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Works in progress|Source date: 2000"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:689:point"}
{"feature_id": 513620, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 690, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52889422534923, "bbox_min_lat": 40.54540211970138, "bbox_max_lon": 141.52889422534923, "bbox_max_lat": 40.54540211970138, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Works in progress|Source date: 2002"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:690:point"}
{"feature_id": 513621, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 691, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5449924935944, "bbox_min_lat": 40.54999183410007, "bbox_max_lon": 141.5449924935944, "bbox_max_lat": 40.54999183410007, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Works in progress|Source date: 2005"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:691:point"}
{"feature_id": 513622, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 692, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.55518552031265, "bbox_min_lat": 40.54620521535582, "bbox_max_lon": 141.55518552031265, "bbox_max_lat": 40.54620521535582, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Works in progress|Source date: 2005"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:692:point"}
{"feature_id": 513623, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 693, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.56564812308685, "bbox_min_lat": 40.562691962071, "bbox_max_lon": 141.56564812308685, "bbox_max_lat": 40.562691962071, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Ebb stream|Orientation: 130 Deg|Current velocity: 0.2kn"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:693:point"}
{"feature_id": 604946, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 446, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution. |Caution|Depths are very changeable at the entrance to river mouths. Mariners are advised to exercise caution."}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:446:area"}
{"feature_id": 604947, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 447, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Unassessed. Surveys before the earthquake (11th Mar. 2011)"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:447:area"}
{"feature_id": 604948, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 448, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.526190070337684, "bbox_max_lon": 141.5663771084365, "bbox_max_lat": 40.59233558585386, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Section 3"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:448:area"}
{"feature_id": 604949, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 449, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5223802689493, "bbox_min_lat": 40.5271408412395, "bbox_max_lon": 141.54366660111737, "bbox_max_lat": 40.53812203011843, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Section 2"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:449:area"}
{"feature_id": 604951, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 451, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54241027518057, "bbox_min_lat": 40.52946941032777, "bbox_max_lon": 141.55844750464917, "bbox_max_lat": 40.53889471267114, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Section 1"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:451:area"}
{"feature_id": 604965, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 465, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5131943392251, "bbox_min_lat": 40.55059061453722, "bbox_max_lon": 141.5141658301317, "bbox_max_lat": 40.551896809679086, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Caisson Temporary Storage Area"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:465:area"}
{"feature_id": 604970, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 470, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.52520827389202, "bbox_min_lat": 40.541156791275355, "bbox_max_lon": 141.52667313976167, "bbox_max_lat": 40.54224967828935, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Caisson Temporary Storage Area"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:470:area"}
{"feature_id": 604976, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 476, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55397152560306, "bbox_min_lat": 40.53499562486809, "bbox_max_lon": 141.5549277574902, "bbox_max_lat": 40.53549382604538, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Caisson Temporary Storage Area"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:476:area"}
{"feature_id": 604986, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 486, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5003564175065, "bbox_min_lat": 40.54661596521501, "bbox_max_lon": 141.5018314560558, "bbox_max_lat": 40.54858298867289, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Unassessed. Surveys before the earthquake (11th Mar. 2011)"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:486:area"}
{"feature_id": 513193, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 263, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48062993865776, "bbox_min_lat": 40.524813153073175, "bbox_max_lon": 141.5780028445932, "bbox_max_lat": 40.572168478876776, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "CABLES|1. Submarine and overhead cables may conduct high voltages; contact with or proximity to these poses an extreme danger and mariners may risk prosecution if damage is caused.|2. Anchoring or trawling in the vicinity of submarine cables should be avoided. Seabed mobility may leave a cable spanning undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. If a cable is snagged, care must be taken not to sever it.|3. Sufficient clearance must be allowed under overhead cables.|4. Some cables, particularly those installed since this edition was published, may not be charted.|5. For further information, see The Mariner's Handbook."}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:263:area"}
{"feature_id": 513207, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 277, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.51666157601915, "bbox_min_lat": 40.539780180491206, "bbox_max_lon": 141.5175465992971, "bbox_max_lat": 40.54040542851488, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Dredged to 7.5m|Source date: 1994"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:277:area"}
{"feature_id": 356914, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1242, "object_class_id": 29, "object_class": "CTNARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.30000548760523, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 143.08335783594634, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "CAUTION|As undiscovered shoals may exist around charted shoals, mariners are warned to excercise cautions.|NOTE|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|NOTE|Of all the base points of the straight baselines given in the Enforcement Order, only major points are shown on this chart due to its small scale."}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1242:area"}
{"feature_id": 606488, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1988, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57150413898023, "bbox_min_lat": 40.53792377460575, "bbox_max_lon": 141.57150413898023, "bbox_max_lat": 40.53792377460575, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 1, "OBJNAM": "Monomiiwa"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1988:point"}
{"feature_id": 606489, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1989, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52191741202518, "bbox_min_lat": 40.52766960638582, "bbox_max_lon": 141.52191741202518, "bbox_max_lat": 40.52766960638582, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1989:point"}
{"feature_id": 606490, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1990, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56324392310424, "bbox_min_lat": 40.52365800503656, "bbox_max_lon": 141.56324392310424, "bbox_max_lat": 40.52365800503656, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 1}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1990:point"}
{"feature_id": 606491, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1991, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5553753553948, "bbox_min_lat": 40.53513796843959, "bbox_max_lon": 141.5553753553948, "bbox_max_lat": 40.53513796843959, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1991:point"}
{"feature_id": 606492, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1992, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52139351902318, "bbox_min_lat": 40.52867628234413, "bbox_max_lon": 141.52139351902318, "bbox_max_lat": 40.52867628234413, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1992:point"}
{"feature_id": 513792, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 862, "object_class_id": 38, "object_class": "CTRPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5219157659393, "bbox_min_lat": 40.5277061577843, "bbox_max_lon": 141.5219157659393, "bbox_max_lat": 40.5277061577843, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATCTR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:862:point"}
{"feature_id": 604502, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48576370854826, "bbox_min_lat": 40.52299700839042, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 10, "DRVAL2": 20}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2:area"}
{"feature_id": 604503, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 3, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51688702193815, "bbox_min_lat": 40.534319488773654, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 20, "DRVAL2": 50}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:3:area"}
{"feature_id": 604507, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 7, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.47257482938176, "bbox_min_lat": 40.55943869885535, "bbox_max_lon": 141.50387616466548, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:7:area"}
{"feature_id": 604508, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 8, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4939934063853, "bbox_min_lat": 40.5271408412395, "bbox_max_lon": 141.549668482111, "bbox_max_lat": 40.538406703674674, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:8:area"}
{"feature_id": 604509, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 9, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5479849036289, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5487151380486, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:9:area"}
{"feature_id": 604511, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 11, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51570190475888, "bbox_min_lat": 40.53258590565955, "bbox_max_lon": 141.5315814576929, "bbox_max_lat": 40.54706833489824, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:11:area"}
{"feature_id": 604512, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 12, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51287389981613, "bbox_min_lat": 40.54557906137898, "bbox_max_lon": 141.52104764791508, "bbox_max_lat": 40.552369473238194, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:12:area"}
{"feature_id": 604513, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 13, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.5815207726836, "bbox_max_lon": 141.48037218833363, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 0, "DRVAL2": 5}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:13:area"}
{"feature_id": 604516, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 16, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5007328066536, "bbox_min_lat": 40.54609751530363, "bbox_max_lon": 141.51451170123983, "bbox_max_lat": 40.55281163935367, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:16:area"}
{"feature_id": 604517, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 17, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4772847800598, "bbox_min_lat": 40.56972357169742, "bbox_max_lon": 141.48750323676845, "bbox_max_lat": 40.57913812927698, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 0, "DRVAL2": 5}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:17:area"}
{"feature_id": 604518, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 18, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.58144793333835, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59405188342498, "bbox_max_lat": 40.53718158209264, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 2, "DRVAL2": 5}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:18:area"}
{"feature_id": 604521, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 21, "object_class_id": 44, "object_class": "DEPARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48479221764165, "bbox_min_lat": 40.55707559721309, "bbox_max_lon": 141.49351529044174, "bbox_max_lat": 40.56221333108327, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 5, "DRVAL2": 10}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:21:area"}
{"feature_id": 605210, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 710, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.52458265409354, "bbox_min_lat": 40.53508204778686, "bbox_max_lon": 141.5254269865045, "bbox_max_lat": 40.53578867805837, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:710:line"}
{"feature_id": 605211, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 711, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.53477059276324, "bbox_min_lat": 40.53615469944172, "bbox_max_lon": 141.53681530137294, "bbox_max_lat": 40.53760351446132, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:711:line"}
{"feature_id": 605212, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 712, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.5195980410649, "bbox_min_lat": 40.53461942968764, "bbox_max_lon": 141.52048306419448, "bbox_max_lat": 40.535371817936316, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:712:line"}
{"feature_id": 605213, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 713, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.51949631426845, "bbox_min_lat": 40.52729337007523, "bbox_max_lon": 141.52280243515474, "bbox_max_lat": 40.52946941032777, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:713:line"}
{"feature_id": 605214, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 714, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.54307658569766, "bbox_min_lat": 40.52757300537249, "bbox_max_lon": 141.54339193876683, "bbox_max_lat": 40.528330556952184, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:714:line"}
{"feature_id": 605215, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 715, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55552285924972, "bbox_min_lat": 40.535422654675436, "bbox_max_lon": 141.55603149323224, "bbox_max_lat": 40.5360326925361, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:715:line"}
{"feature_id": 605216, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 716, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.59525734596352, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59589313844168, "bbox_max_lat": 40.52121736963704, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:716:line"}
{"feature_id": 605217, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 717, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.50291993277838, "bbox_min_lat": 40.53093870595688, "bbox_max_lon": 141.50567164262378, "bbox_max_lat": 40.531381013557265, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:717:line"}
{"feature_id": 605218, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 718, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55608744297032, "bbox_min_lat": 40.53584459812132, "bbox_max_lon": 141.55759299955852, "bbox_max_lat": 40.53620045197403, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:718:line"}
{"feature_id": 605219, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 719, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.47612509457966, "bbox_min_lat": 40.58484820300763, "bbox_max_lon": 141.47816980318936, "bbox_max_lat": 40.58632644337369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:719:line"}
{"feature_id": 605220, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 720, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.55607218395082, "bbox_min_lat": 40.53633262578077, "bbox_max_lon": 141.55801516576403, "bbox_max_lat": 40.53697315668907, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:720:line"}
{"feature_id": 605221, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 721, "object_class_id": 45, "object_class": "DEPCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.54961253237295, "bbox_min_lat": 40.53841687056501, "bbox_max_lon": 141.55126050647627, "bbox_max_lat": 40.53875237708104, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALDCO": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:721:line"}
{"feature_id": 512940, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 10, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.4920691188421, "bbox_min_lat": 40.55270078700058, "bbox_max_lon": 141.5073993496449, "bbox_max_lat": 40.562580166733625, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 13, "INFORM": "(1981-2000)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:10:area"}
{"feature_id": 512943, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 13, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.52371124419855, "bbox_min_lat": 40.55013922835277, "bbox_max_lon": 141.53126954644574, "bbox_max_lat": 40.560735516709556, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 14, "INFORM": "(1995-2000)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:13:area"}
{"feature_id": 512944, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 14, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.51267897126843, "bbox_min_lat": 40.55118114399031, "bbox_max_lon": 141.52546603173238, "bbox_max_lat": 40.55552143762379, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 13, "INFORM": "(1981-2000)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:14:area"}
{"feature_id": 512945, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 15, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48609775488637, "bbox_min_lat": 40.559378675568496, "bbox_max_lon": 141.49588387435043, "bbox_max_lat": 40.564739816350254, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 12, "INFORM": "Source date: 1991"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:15:area"}
{"feature_id": 512949, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 19, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.5190826741818, "bbox_min_lat": 40.5324801051295, "bbox_max_lon": 141.52580173021713, "bbox_max_lat": 40.54025801283995, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 7.5, "INFORM": "1980"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:19:area"}
{"feature_id": 512953, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 23, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48605197782027, "bbox_min_lat": 40.55707655633874, "bbox_max_lon": 141.490965382915, "bbox_max_lat": 40.560039313267254, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 7.5}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:23:area"}
{"feature_id": 512954, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 24, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.51567482592765, "bbox_min_lat": 40.53742146874959, "bbox_max_lon": 141.52047633152748, "bbox_max_lat": 40.54040542851488, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 7.5, "INFORM": "1994"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:24:area"}
{"feature_id": 512955, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 25, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48532971744402, "bbox_min_lat": 40.55824541263988, "bbox_max_lon": 141.4933915674183, "bbox_max_lat": 40.56201610559284, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 9.59999942779541, "INFORM": "Source date: 1990"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:25:area"}
{"feature_id": 512957, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 27, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.4975420214114, "bbox_min_lat": 40.55209598337879, "bbox_max_lon": 141.50161618029426, "bbox_max_lat": 40.55544520538552, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 10, "INFORM": "Source date: 1977"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:27:area"}
{"feature_id": 512958, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 28, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.508960856233, "bbox_min_lat": 40.5480553484439, "bbox_max_lon": 141.51253655372946, "bbox_max_lat": 40.55231960888387, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 13, "INFORM": "(1981-2000)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:28:area"}
{"feature_id": 512962, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 32, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.5074502130517, "bbox_min_lat": 40.54907696596515, "bbox_max_lon": 141.50984587951092, "bbox_max_lat": 40.55211631300102, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 13, "INFORM": "(1981-2000)"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:32:area"}
{"feature_id": 512977, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 47, "object_class_id": 50, "object_class": "DRGARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.50061417118076, "bbox_min_lat": 40.54801976944343, "bbox_max_lon": 141.50392029262133, "bbox_max_lat": 40.549808861472954, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"DRVAL1": 7.5, "INFORM": "Source date: 1990"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:47:area"}
{"feature_id": 356822, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1150, "object_class_id": 56, "object_class": "EXEZNE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.65029158272228, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 143.08335783594634, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP", "SORIND": "CM,PAD,graph,B3900420"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1150:area"}
{"feature_id": 328185, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 362, "object_class_id": 56, "object_class": "EXEZNE", "geometry_type": "AREA", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1184, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 40.65462374281519, "bbox_max_lon": 141.82085695438715, "bbox_max_lat": 42.413189699068205, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:362:area"}
{"feature_id": 604944, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 444, "object_class_id": 57, "object_class": "FAIRWY", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54393109078828, "bbox_min_lat": 40.536571554692834, "bbox_max_lon": 141.549058121332, "bbox_max_lat": 40.54073996455429, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "East Passage"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:444:area"}
{"feature_id": 604945, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 445, "object_class_id": 57, "object_class": "FAIRWY", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53155602599378, "bbox_min_lat": 40.53539215263657, "bbox_max_lon": 141.53591501922392, "bbox_max_lat": 40.53888454585329, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "West Passage"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:445:area"}
{"feature_id": 513190, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 260, "object_class_id": 57, "object_class": "FAIRWY", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.54408203861306, "bbox_min_lat": 40.536674187146915, "bbox_max_lon": 141.54907173881796, "bbox_max_lat": 40.540842590333156, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "East Fairway"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:260:area"}
{"feature_id": 513191, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 261, "object_class_id": 57, "object_class": "FAIRWY", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.5315086044576, "bbox_min_lat": 40.53535244417567, "bbox_max_lon": 141.53585233939643, "bbox_max_lat": 40.53892109035575, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "West Fairway"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:261:area"}
{"feature_id": 513192, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 262, "object_class_id": 57, "object_class": "FAIRWY", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.53477403517275, "bbox_min_lat": 40.536252248954824, "bbox_max_lon": 141.53616260617775, "bbox_max_lat": 40.53732996532771, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:262:area"}
{"feature_id": 605632, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1132, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57221622655575, "bbox_min_lat": 40.553507918007234, "bbox_max_lon": 141.57221622655575, "bbox_max_lat": 40.553507918007234, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1132:point"}
{"feature_id": 605633, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1133, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57583770051122, "bbox_min_lat": 40.55280147464817, "bbox_max_lon": 141.57583770051122, "bbox_max_lat": 40.55280147464817, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1133:point"}
{"feature_id": 605634, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1134, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57033428082045, "bbox_min_lat": 40.553782361618545, "bbox_max_lon": 141.57033428082045, "bbox_max_lat": 40.553782361618545, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1134:point"}
{"feature_id": 605635, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1135, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5664330581746, "bbox_min_lat": 40.554194024926325, "bbox_max_lon": 141.5664330581746, "bbox_max_lat": 40.554194024926325, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1135:point"}
{"feature_id": 513544, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 614, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.57238752448492, "bbox_min_lat": 40.5535800295812, "bbox_max_lon": 141.57238752448492, "bbox_max_lat": 40.5535800295812, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:614:point"}
{"feature_id": 513545, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 615, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5664161605292, "bbox_min_lat": 40.55418481979861, "bbox_max_lon": 141.5664161605292, "bbox_max_lat": 40.55418481979861, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:615:point"}
{"feature_id": 513546, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 616, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5703987652799, "bbox_min_lat": 40.55391037785596, "bbox_max_lon": 141.5703987652799, "bbox_max_lat": 40.55391037785596, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:616:point"}
{"feature_id": 513547, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 617, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.57605986245426, "bbox_min_lat": 40.55277702236356, "bbox_max_lon": 141.57605986245426, "bbox_max_lat": 40.55277702236356, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:617:point"}
{"feature_id": 359102, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3430, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.52870770025612, "bbox_min_lat": 40.64823662602053, "bbox_max_lon": 141.52870770025612, "bbox_max_lat": 40.64823662602053, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3430:point"}
{"feature_id": 359111, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3439, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.60573524025224, "bbox_min_lat": 40.5500899470562, "bbox_max_lon": 141.60573524025224, "bbox_max_lat": 40.5500899470562, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3439:point"}
{"feature_id": 359122, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3450, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.613242678778, "bbox_min_lat": 40.54215954908995, "bbox_max_lon": 141.613242678778, "bbox_max_lat": 40.54215954908995, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3450:point"}
{"feature_id": 359131, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3459, "object_class_id": 60, "object_class": "FSHHAV", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.44942182509374, "bbox_min_lat": 40.69653943249045, "bbox_max_lon": 141.44942182509374, "bbox_max_lat": 40.69653943249045, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always under water/submerged"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3459:point"}
{"feature_id": 604943, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 443, "object_class_id": 72, "object_class": "HRBARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.5663771084365, "bbox_max_lat": 40.59233558585386, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:443:area"}
{"feature_id": 513187, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 257, "object_class_id": 72, "object_class": "HRBARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48062993865776, "bbox_min_lat": 40.53205814052522, "bbox_max_lon": 141.5664619375953, "bbox_max_lat": 40.572168478876776, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No 3 Area"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:257:area"}
{"feature_id": 513188, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 258, "object_class_id": 72, "object_class": "HRBARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.49353398495728, "bbox_min_lat": 40.524813153073175, "bbox_max_lon": 141.5435021957758, "bbox_max_lat": 40.537878983984385, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No 2 Area"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:258:area"}
{"feature_id": 513189, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 259, "object_class_id": 72, "object_class": "HRBARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.54247475495887, "bbox_min_lat": 40.52951612885991, "bbox_max_lon": 141.5584763827312, "bbox_max_lat": 40.53939892883223, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "No1 Area"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:259:area"}
{"feature_id": 606228, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1728, "object_class_id": 73, "object_class": "HRBFAC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50843861148863, "bbox_min_lat": 40.54650414302457, "bbox_max_lon": 141.50843861148863, "bbox_max_lat": 40.54650414302457, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Tohoku Grain Terminal"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1728:point"}
{"feature_id": 604990, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 490, "object_class_id": 73, "object_class": "HRBFAC", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49581940238252, "bbox_min_lat": 40.530806521509675, "bbox_max_lon": 141.4959770789171, "bbox_max_lat": 40.5312844178937, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATHAF": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:490:area"}
{"feature_id": 604515, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 15, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5033115809449, "bbox_min_lat": 40.54073996455429, "bbox_max_lon": 141.51403358529626, "bbox_max_lat": 40.54647364603113, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [1]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:15:area"}
{"feature_id": 604520, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 20, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.58185484052436, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59028799195437, "bbox_max_lat": 40.53412122200863, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:20:area"}
{"feature_id": 604537, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 37, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5762140896583, "bbox_min_lat": 40.53413138954932, "bbox_max_lon": 141.58281107241146, "bbox_max_lat": 40.542453004138665, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:37:area"}
{"feature_id": 604552, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 52, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5604210045013, "bbox_min_lat": 40.538320285044385, "bbox_max_lon": 141.56481051577038, "bbox_max_lat": 40.54126862239338, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:52:area"}
{"feature_id": 604558, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 58, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.47721357130226, "bbox_min_lat": 40.56706103884022, "bbox_max_lon": 141.4916892944445, "bbox_max_lat": 40.57847259964477, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:58:area"}
{"feature_id": 604565, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 65, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.56779619724773, "bbox_min_lat": 40.542453004138665, "bbox_max_lon": 141.57153465701919, "bbox_max_lat": 40.544074505699285, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:65:area"}
{"feature_id": 604574, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 74, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4936475352772, "bbox_min_lat": 40.53006933423387, "bbox_max_lon": 141.49676037525015, "bbox_max_lat": 40.531813150347276, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [1]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:74:area"}
{"feature_id": 604585, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 85, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.47098280501646, "bbox_min_lat": 40.58631628375762, "bbox_max_lon": 141.47838851580184, "bbox_max_lat": 40.587997679213444, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:85:area"}
{"feature_id": 604605, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 105, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5564485730979, "bbox_min_lat": 40.53888454585329, "bbox_max_lon": 141.55866621726165, "bbox_max_lat": 40.54026213561014, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:105:area"}
{"feature_id": 604609, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 109, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5787063961726, "bbox_min_lat": 40.540684048577326, "bbox_max_lon": 141.58001358550766, "bbox_max_lat": 40.54231575925809, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:109:area"}
{"feature_id": 604614, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 114, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.56554803504503, "bbox_min_lat": 40.54272749305622, "bbox_max_lon": 141.56778093822825, "bbox_max_lat": 40.543464541065894, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:114:area"}
{"feature_id": 604624, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 124, "object_class_id": 78, "object_class": "ITDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49136885503552, "bbox_min_lat": 40.56525208204149, "bbox_max_lon": 141.49305243351765, "bbox_max_lat": 40.56609050910872, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:124:area"}
{"feature_id": 604931, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 431, "object_class_id": 79, "object_class": "LAKARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.520177883805, "bbox_min_lat": 40.53003374567741, "bbox_max_lon": 141.5202389198829, "bbox_max_lat": 40.53007950238938, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:431:area"}
{"feature_id": 355948, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 276, "object_class_id": 79, "object_class": "LAKARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.3203305041018, "bbox_min_lat": 40.70214652281388, "bbox_max_lon": 141.3434021444493, "bbox_max_lat": 40.720771134201065, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Ane Lake"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:276:area"}
{"feature_id": 356579, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 907, "object_class_id": 79, "object_class": "LAKARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 4, "coverage_id": 1255, "bbox_min_lon": 141.3862494765232, "bbox_min_lat": 40.710930015390346, "bbox_max_lon": 141.39430623981914, "bbox_max_lat": 40.713670726268816, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:907:area"}
{"feature_id": 605467, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 967, "object_class_id": 80, "object_class": "LAKSHR", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.520177883805, "bbox_min_lat": 40.53003374567741, "bbox_max_lon": 141.5202389198829, "bbox_max_lat": 40.53007950238938, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:967:line"}
{"feature_id": 357855, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 2183, "object_class_id": 80, "object_class": "LAKSHR", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.3862494765232, "bbox_min_lat": 40.710930015390346, "bbox_max_lon": 141.39430623981914, "bbox_max_lat": 40.713670726268816, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:2183:line"}
{"feature_id": 357868, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 2196, "object_class_id": 80, "object_class": "LAKSHR", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.3203305041018, "bbox_min_lat": 40.70214652281388, "bbox_max_lon": 141.3434021444493, "bbox_max_lat": 40.720771134201065, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:2196:line"}
{"feature_id": 606493, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1993, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52561518107802, "bbox_min_lat": 40.53350099910942, "bbox_max_lon": 141.52561518107802, "bbox_max_lat": 40.53350099910942, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [1], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "C1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.62", "VALNMR": 6, "_cm93_relation20_raw": 2266}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1993:point"}
{"feature_id": 606494, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1994, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5254269865045, "bbox_min_lat": 40.53363317824145, "bbox_max_lon": 141.5254269865045, "bbox_max_lat": 40.53363317824145, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [1], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "C2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.621", "VALNMR": 6, "_cm93_relation20_raw": 2270}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1994:point"}
{"feature_id": 606495, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1995, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52535069140714, "bbox_min_lat": 40.53333831674283, "bbox_max_lon": 141.52535069140714, "bbox_max_lat": 40.53333831674283, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [3], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "R1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.64", "VALNMR": 4, "_cm93_relation20_raw": 2263}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1995:point"}
{"feature_id": 606496, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1996, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5251777558531, "bbox_min_lat": 40.5334501609123, "bbox_max_lon": 141.5251777558531, "bbox_max_lat": 40.5334501609123, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [3], "HEIGHT": 5, "LITCHR": 7, "OBJNAM": "R2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.641", "VALNMR": 4, "_cm93_relation20_raw": 2276}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1996:point"}
{"feature_id": 606497, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1997, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52588984342862, "bbox_min_lat": 40.53368910010344, "bbox_max_lon": 141.52588984342862, "bbox_max_lat": 40.53368910010344, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [4], "HEIGHT": 4, "LITCHR": 7, "OBJNAM": "L1", "SECTR1": 228, "SECTR2": 48, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.63", "VALNMR": 4, "_cm93_relation20_raw": 2265}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1997:point"}
{"feature_id": 606498, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1998, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52570164885506, "bbox_min_lat": 40.53382127886439, "bbox_max_lon": 141.52570164885506, "bbox_max_lat": 40.53382127886439, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [4], "HEIGHT": 4, "LITCHR": 7, "OBJNAM": "L2", "SECTR1": 48, "SECTR2": 228, "SIGGRP": "(1)", "SIGPER": 4, "SORIND": "GB,UKHO,graph,LL M-6624.631", "VALNMR": 4, "_cm93_relation20_raw": 2258}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1998:point"}
{"feature_id": 606499, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1999, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.51452696025927, "bbox_min_lat": 40.55241521469589, "bbox_max_lon": 141.51452696025927, "bbox_max_lat": 40.55241521469589, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [4], "HEIGHT": 14, "INFORM": "2 fl in 3s", "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 9, "VALNMR": 4, "_cm93_relation20_raw": 2239}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1999:point"}
{"feature_id": 606500, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2000, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52294485266987, "bbox_min_lat": 40.53044047091052, "bbox_max_lon": 141.52294485266987, "bbox_max_lat": 40.53044047091052, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [1], "HEIGHT": 31, "LITCHR": 1, "OBJNAM": "C1", "SORIND": "GB,UKHO,graph,LL M-6624.5", "VALNMR": 6, "_cm93_relation20_raw": 2267}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2000:point"}
{"feature_id": 606501, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2001, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5759546863272, "bbox_min_lat": 40.53986563666468, "bbox_max_lon": 141.5759546863272, "bbox_max_lat": 40.53986563666468, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [1], "HEIGHT": 57, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 8, "VALNMR": 19, "_cm93_relation20_raw": 2241}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2001:point"}
{"feature_id": 606502, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2002, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.55245070999536, "bbox_min_lat": 40.53446183378157, "bbox_max_lon": 141.55245070999536, "bbox_max_lat": 40.53446183378157, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [3], "HEIGHT": 11, "LITCHR": 2, "SIGGRP": "(2)", "SIGPER": 6, "VALNMR": 3, "_cm93_relation20_raw": 2254}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2002:point"}
{"feature_id": 606503, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2003, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.52043728713608, "bbox_min_lat": 40.53762384848427, "bbox_max_lon": 141.52043728713608, "bbox_max_lat": 40.53762384848427, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 3, "VALNMR": 3, "_cm93_relation20_raw": 2272}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2003:point"}
{"feature_id": 606504, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2004, "object_class_id": 86, "object_class": "LIGHTS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.53323451813606, "bbox_min_lat": 40.53630720776126, "bbox_max_lon": 141.53323451813606, "bbox_max_lat": 40.53630720776126, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"COLOUR": [3], "HEIGHT": 12, "LITCHR": 2, "SIGGRP": "(1)", "SIGPER": 5, "VALNMR": 7, "_cm93_relation20_raw": 2273}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2004:point"}
{"feature_id": 604504, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 4, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.52691713165249, "bbox_max_lon": 141.52820921438885, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:4:area"}
{"feature_id": 604505, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 5, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.51986253073585, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.5886654495502, "bbox_max_lat": 40.54317988900274, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:5:area"}
{"feature_id": 604506, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 6, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.4840089213086, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.5255236269612, "bbox_max_lat": 40.54304772870506, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:6:area"}
{"feature_id": 604510, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 10, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.52075772654507, "bbox_min_lat": 40.53392295465693, "bbox_max_lon": 141.53333624493257, "bbox_max_lat": 40.54631607801049, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:10:area"}
{"feature_id": 604530, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 30, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.53481636982167, "bbox_min_lat": 40.54910141934393, "bbox_max_lon": 141.54553837417302, "bbox_max_lat": 40.56592282453552, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:30:area"}
{"feature_id": 604541, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 41, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.54934804270204, "bbox_min_lat": 40.54460313722178, "bbox_max_lon": 141.5603599684234, "bbox_max_lat": 40.549960378975165, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:41:area"}
{"feature_id": 604546, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 46, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5338296198956, "bbox_min_lat": 40.535986939889206, "bbox_max_lon": 141.54704393076125, "bbox_max_lat": 40.538432120897646, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:46:area"}
{"feature_id": 604596, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 96, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.4790955170375, "bbox_min_lat": 40.583542650841665, "bbox_max_lon": 141.4825898324974, "bbox_max_lat": 40.587718296190026, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:96:area"}
{"feature_id": 604620, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 120, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5480866304254, "bbox_min_lat": 40.53846262155252, "bbox_max_lon": 141.55539061441428, "bbox_max_lat": 40.539443718542934, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:120:area"}
{"feature_id": 604668, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 168, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.57110231813405, "bbox_min_lat": 40.54319005516867, "bbox_max_lon": 141.57197208224414, "bbox_max_lat": 40.543866101740925, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:168:area"}
{"feature_id": 604676, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 176, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.57895562682404, "bbox_min_lat": 40.541436368720355, "bbox_max_lon": 141.57974909583675, "bbox_max_lat": 40.54199552010982, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:176:area"}
{"feature_id": 604684, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 184, "object_class_id": 81, "object_class": "LNDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5099746861158, "bbox_min_lat": 40.54823736599592, "bbox_max_lon": 141.5116124875395, "bbox_max_lat": 40.549452120169185, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:184:area"}
{"feature_id": 606534, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2034, "object_class_id": 95, "object_class": "MONUMT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55748110008238, "bbox_min_lat": 40.53846262155252, "bbox_max_lon": 141.55748110008238, "bbox_max_lat": 40.53846262155252, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2034:point"}
{"feature_id": 606535, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2035, "object_class_id": 95, "object_class": "MONUMT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55767946733556, "bbox_min_lat": 40.538452454669105, "bbox_max_lon": 141.55767946733556, "bbox_max_lat": 40.538452454669105, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2035:point"}
{"feature_id": 513828, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 898, "object_class_id": 95, "object_class": "MONUMT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.5574896326397, "bbox_min_lat": 40.53853983380762, "bbox_max_lon": 141.5574896326397, "bbox_max_lat": 40.53853983380762, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:898:point"}
{"feature_id": 513829, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 899, "object_class_id": 95, "object_class": "MONUMT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.55777955405833, "bbox_min_lat": 40.53853983380762, "bbox_max_lon": 141.55777955405833, "bbox_max_lat": 40.53853983380762, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:899:point"}
{"feature_id": 513548, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 618, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51970829408515, "bbox_min_lat": 40.536872446343644, "bbox_max_lon": 141.51970829408515, "bbox_max_lat": 40.536872446343644, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1, "INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:618:point"}
{"feature_id": 513549, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 619, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51929630049025, "bbox_min_lat": 40.536542014023155, "bbox_max_lon": 141.51929630049025, "bbox_max_lat": 40.536542014023155, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:619:point"}
{"feature_id": 513550, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 620, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52032882764783, "bbox_min_lat": 40.537350299432255, "bbox_max_lon": 141.52032882764783, "bbox_max_lat": 40.537350299432255, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:620:point"}
{"feature_id": 513551, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 621, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52196154300538, "bbox_min_lat": 40.53369006118854, "bbox_max_lon": 141.52196154300538, "bbox_max_lat": 40.53369006118854, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:621:point"}
{"feature_id": 513552, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 622, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52292286139348, "bbox_min_lat": 40.53288173162202, "bbox_max_lon": 141.52292286139348, "bbox_max_lat": 40.53288173162202, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:622:point"}
{"feature_id": 513553, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 623, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51968286238176, "bbox_min_lat": 40.535520205305204, "bbox_max_lon": 141.51968286238176, "bbox_max_lat": 40.535520205305204, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:623:point"}
{"feature_id": 513554, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 624, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52076116660544, "bbox_min_lat": 40.5347118978173, "bbox_max_lon": 141.52076116660544, "bbox_max_lat": 40.5347118978173, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:624:point"}
{"feature_id": 604857, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 357, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.511917667929, "bbox_min_lat": 40.54966558933754, "bbox_max_lon": 141.51206517178392, "bbox_max_lat": 40.54977232366654, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1, "INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:357:area"}
{"feature_id": 604858, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 358, "object_class_id": 96, "object_class": "MORFAC", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.50930837559875, "bbox_min_lat": 40.54781041787348, "bbox_max_lon": 141.50945587945367, "bbox_max_lat": 40.54791715515927, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATMOR": 1, "INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:358:area"}
{"feature_id": 604500, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.33333119032937, "bbox_min_lat": 40.33333271662867, "bbox_max_lon": 141.66666447076832, "bbox_max_lat": 40.666666080886685, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20140505"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:0:area"}
{"feature_id": 512930, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.3333345989699, "bbox_min_lat": 40.33333369451736, "bbox_max_lon": 141.66666793528825, "bbox_max_lat": 40.66666703083567, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20060322"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:0:area"}
{"feature_id": 418056, "cell_id": 113, "source_relative_path": "03900420\\D\\03900423.D", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "D", "native_scale": 100000, "raw_geotype": 132, "coverage_id": 1425, "bbox_min_lon": 141.0000012626516, "bbox_min_lat": 40.00000035819904, "bbox_max_lon": 142.0000012716066, "bbox_max_lat": 41.000000367154016, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20060322"}, "suggested_source_id": "cm95:1:03900420/D/03900423.D:0:area"}
{"feature_id": 355672, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1253, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 143.99999776911724, "bbox_max_lat": 43.999999304371535, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20140602"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:0:area"}
{"feature_id": 327823, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1180, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 149.99999773902806, "bbox_max_lat": 49.999999274282374, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20141006"}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:0:area"}
{"feature_id": 322990, "cell_id": 4, "source_relative_path": "03900420\\A\\03900420.A", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "A", "native_scale": 3000000, "raw_geotype": 132, "coverage_id": 1160, "bbox_min_lon": 140.00000125369664, "bbox_min_lat": 40.00000035819904, "bbox_max_lon": 160.00000143279615, "bbox_max_lat": 60.00000053729857, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20080102"}, "suggested_source_id": "cm95:1:03900420/A/03900420.A:0:area"}
{"feature_id": 644516, "cell_id": 784, "source_relative_path": "03900360\\Z\\03900360.Z", "source_record_index": 0, "object_class_id": 210, "object_class": "M_PROD", "geometry_type": "AREA", "scale_code": "Z", "native_scale": 20000000, "raw_geotype": 132, "coverage_id": 2311, "bbox_min_lon": 120.00000107459711, "bbox_min_lat": 40.00000035819904, "bbox_max_lon": 160.00000143279615, "bbox_max_lat": 80.00000071639808, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CPDATE": "20080102"}, "suggested_source_id": "cm95:1:03900360/Z/03900360.Z:0:area"}
{"feature_id": 604941, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 441, "object_class_id": 97, "object_class": "NATARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:441:area"}
{"feature_id": 356830, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1158, "object_class_id": 97, "object_class": "NATARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.30000548760523, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 142.22018551373947, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1158:area"}
{"feature_id": 328179, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 356, "object_class_id": 97, "object_class": "NATARE", "geometry_type": "AREA", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1184, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 141.7972054708302, "bbox_max_lat": 41.606003535658594, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:356:area"}
{"feature_id": 605636, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1136, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5641289462338, "bbox_min_lat": 40.54285965398574, "bbox_max_lon": 141.5641289462338, "bbox_max_lat": 40.54285965398574, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"EXPSOU": 2, "VALSOU": 1.5, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1136:point"}
{"feature_id": 605637, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1137, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56853371652238, "bbox_min_lat": 40.560744721391565, "bbox_max_lon": 141.56853371652238, "bbox_max_lat": 40.560744721391565, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Wave Meter", "VALSOU": 25, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1137:point"}
{"feature_id": 513555, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 625, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.57370488672046, "bbox_min_lat": 40.54443127602201, "bbox_max_lon": 141.57370488672046, "bbox_max_lat": 40.54443127602201, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 1.2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:625:point"}
{"feature_id": 513556, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 626, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.56420868867505, "bbox_min_lat": 40.542896196043614, "bbox_max_lon": 141.56420868867505, "bbox_max_lat": 40.542896196043614, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 1.5, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:626:point"}
{"feature_id": 513557, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 627, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.52719030122216, "bbox_min_lat": 40.53315625973812, "bbox_max_lon": 141.52719030122216, "bbox_max_lat": 40.53315625973812, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 4.9, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:627:point"}
{"feature_id": 359184, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3512, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "POINT", "scale_code": "C", "native_scale": 200000, "raw_geotype": 129, "coverage_id": 1255, "bbox_min_lon": 141.56905255282143, "bbox_min_lat": 40.56070397061267, "bbox_max_lon": 141.56905255282143, "bbox_max_lat": 40.56070397061267, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Wave Meter", "VALSOU": 25, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3512:point"}
{"feature_id": 604548, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 48, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54769498225886, "bbox_min_lat": 40.53520405642359, "bbox_max_lon": 141.5508434266106, "bbox_max_lat": 40.538360952649, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:48:area"}
{"feature_id": 604555, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 55, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.553391682863, "bbox_min_lat": 40.53572259065104, "bbox_max_lon": 141.55575174454185, "bbox_max_lat": 40.53822878284375, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:55:area"}
{"feature_id": 604570, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 70, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5710107640172, "bbox_min_lat": 40.54270716058238, "bbox_max_lon": 141.57322840818094, "bbox_max_lat": 40.544074505699285, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:70:area"}
{"feature_id": 604572, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 72, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5454925971146, "bbox_min_lat": 40.53838636988935, "bbox_max_lon": 141.5491598481285, "bbox_max_lat": 40.53993171998525, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:72:area"}
{"feature_id": 604587, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 87, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53480111080222, "bbox_min_lat": 40.535127801051665, "bbox_max_lon": 141.53659658876046, "bbox_max_lat": 40.53642921416697, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:87:area"}
{"feature_id": 604602, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 102, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55605692493137, "bbox_min_lat": 40.53851853938367, "bbox_max_lon": 141.55791343896752, "bbox_max_lat": 40.540460384202795, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:102:area"}
{"feature_id": 604611, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 111, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.566392367456, "bbox_min_lat": 40.54250383550453, "bbox_max_lon": 141.56866596135782, "bbox_max_lat": 40.54390676597883, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:111:area"}
{"feature_id": 604627, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 127, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.578869159047, "bbox_min_lat": 40.540770464158435, "bbox_max_lon": 141.58046118341227, "bbox_max_lat": 40.54254958370087, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:127:area"}
{"feature_id": 604628, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 128, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49703503760074, "bbox_min_lat": 40.55919985151106, "bbox_max_lon": 141.49803704654624, "bbox_max_lat": 40.560399161487446, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:128:area"}
{"feature_id": 604632, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 132, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48980734870923, "bbox_min_lat": 40.56300606202476, "bbox_max_lon": 141.4910382429469, "bbox_max_lat": 40.563747968375345, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:132:area"}
{"feature_id": 604638, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 138, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.57782645938286, "bbox_min_lat": 40.54214293197139, "bbox_max_lon": 141.57859449669644, "bbox_max_lat": 40.543444208815785, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:138:area"}
{"feature_id": 604647, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 147, "object_class_id": 99, "object_class": "OBSTRN", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54282735504623, "bbox_min_lat": 40.52757300537249, "bbox_max_lon": 141.54366660111737, "bbox_max_lat": 40.52858476697277, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:147:area"}
{"feature_id": 606543, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2043, "object_class_id": 104, "object_class": "PILBOP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.55123507477714, "bbox_min_lat": 40.56489638253686, "bbox_max_lon": 141.55123507477714, "bbox_max_lat": 40.56489638253686, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2043:point"}
{"feature_id": 606544, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2044, "object_class_id": 104, "object_class": "PILBOP", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.55165215464282, "bbox_min_lat": 40.5816680975283, "bbox_max_lon": 141.55165215464282, "bbox_max_lat": 40.5816680975283, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2044:point"}
{"feature_id": 513842, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 912, "object_class_id": 104, "object_class": "PILBOP", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.55242872366532, "bbox_min_lat": 40.564373951200075, "bbox_max_lon": 141.55242872366532, "bbox_max_lat": 40.564373951200075, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:912:point"}
{"feature_id": 606536, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2036, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54550785613407, "bbox_min_lat": 40.549177658809995, "bbox_max_lon": 141.54550785613407, "bbox_max_lat": 40.549177658809995, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Private"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2036:point"}
{"feature_id": 606537, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2037, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49653148995804, "bbox_min_lat": 40.56304163306486, "bbox_max_lon": 141.49653148995804, "bbox_max_lat": 40.56304163306486, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2037:point"}
{"feature_id": 606538, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2038, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50991873637773, "bbox_min_lat": 40.54829327566755, "bbox_max_lon": 141.50991873637773, "bbox_max_lat": 40.54829327566755, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2038:point"}
{"feature_id": 606539, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2039, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50976105984319, "bbox_min_lat": 40.54817129086928, "bbox_max_lon": 141.50976105984319, "bbox_max_lat": 40.54817129086928, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2039:point"}
{"feature_id": 606540, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2040, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49636872708362, "bbox_min_lat": 40.56310769351778, "bbox_max_lon": 141.49636872708362, "bbox_max_lat": 40.56310769351778, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2040:point"}
{"feature_id": 606541, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2041, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50988821833877, "bbox_min_lat": 40.54808488483609, "bbox_max_lon": 141.50988821833877, "bbox_max_lat": 40.54808488483609, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2041:point"}
{"feature_id": 606542, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2042, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5100357221937, "bbox_min_lat": 40.54820686979171, "bbox_max_lon": 141.5100357221937, "bbox_max_lat": 40.54820686979171, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2042:point"}
{"feature_id": 513830, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 900, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.51965743067836, "bbox_min_lat": 40.536725022894316, "bbox_max_lon": 141.51965743067836, "bbox_max_lat": 40.536725022894316, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:900:point"}
{"feature_id": 513831, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 901, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.519804934558, "bbox_min_lat": 40.53542869928663, "bbox_max_lon": 141.519804934558, "bbox_max_lat": 40.53542869928663, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Always dry"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:901:point"}
{"feature_id": 513832, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 902, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.52064418076986, "bbox_min_lat": 40.534767818775094, "bbox_max_lon": 141.52064418076986, "bbox_max_lat": 40.534767818775094, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:902:point"}
{"feature_id": 513833, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 903, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.5198761433275, "bbox_min_lat": 40.53690803126555, "bbox_max_lon": 141.5198761433275, "bbox_max_lat": 40.53690803126555, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:903:point"}
{"feature_id": 513834, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 904, "object_class_id": 103, "object_class": "PILPNT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.52208361518166, "bbox_min_lat": 40.533613804098835, "bbox_max_lon": 141.52208361518166, "bbox_max_lat": 40.533613804098835, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:904:point"}
{"feature_id": 605468, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 968, "object_class_id": 106, "object_class": "PIPOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.50971528278473, "bbox_min_lat": 40.54804930584882, "bbox_max_lon": 141.51005098121317, "bbox_max_lat": 40.54829327566755, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:968:line"}
{"feature_id": 605469, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 969, "object_class_id": 106, "object_class": "PIPOHD", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.50970002376528, "bbox_min_lat": 40.54807471941306, "bbox_max_lon": 141.51002046317427, "bbox_max_lat": 40.54830344105737, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:969:line"}
{"feature_id": 605470, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 970, "object_class_id": 107, "object_class": "PIPSOL", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.5039321144036, "bbox_min_lat": 40.53110647814896, "bbox_max_lon": 141.504181345055, "bbox_max_lat": 40.53250964730796, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATPIP": 1, "PRODCT": [2]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:970:line"}
{"feature_id": 513457, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 527, "object_class_id": 107, "object_class": "PIPSOL", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 130, "coverage_id": 1759, "bbox_min_lon": 141.50387451555522, "bbox_min_lat": 40.531092187451655, "bbox_max_lon": 141.50411357356705, "bbox_max_lat": 40.53251569238428, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATPIP": 1, "INFORM": "PIPELINES|Mariners are advised not to anchor or trawl in the vicinity of pipelines. Gas from a damaged oil or gas pipeline could cause an explosion, loss of a vessels buoyancy or other serious hazard. Pipelines are not always buried and may effectively reduce the charted depth by up to 2 metres. They may also span seabed undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. See Annual Notice to Mariners No 24 and The Mariners Handbook.", "PRODCT": [1]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:527:line"}
{"feature_id": 605638, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1138, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5151525800578, "bbox_min_lat": 40.53628687333873, "bbox_max_lon": 141.5151525800578, "bbox_max_lat": 40.53628687333873, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Tozai Oilterminal Co.,Ltd.", "PRODCT": [1], "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1138:point"}
{"feature_id": 605639, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1139, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48837300087854, "bbox_min_lat": 40.54867955939618, "bbox_max_lon": 141.48837300087854, "bbox_max_lat": 40.54867955939618, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Tohoku Satetsu", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1139:point"}
{"feature_id": 605640, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1140, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50824024423545, "bbox_min_lat": 40.52898641683994, "bbox_max_lon": 141.50824024423545, "bbox_max_lat": 40.52898641683994, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "MRC Unitec Co., Ltd.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1140:point"}
{"feature_id": 605641, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1141, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4876761723225, "bbox_min_lat": 40.55089048260121, "bbox_max_lon": 141.4876761723225, "bbox_max_lat": 40.55089048260121, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Toshin Steel Industry", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1141:point"}
{"feature_id": 605642, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1142, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49213689234915, "bbox_min_lat": 40.531909745248655, "bbox_max_lon": 141.49213689234915, "bbox_max_lat": 40.531909745248655, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Hachinohe Gas Co., Ltd.", "PRODCT": [2]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1142:point"}
{"feature_id": 605643, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1143, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50676011934632, "bbox_min_lat": 40.53814236398398, "bbox_max_lon": 141.50676011934632, "bbox_max_lat": 40.53814236398398, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Pacific Metals CO., LTD.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1143:point"}
{"feature_id": 605644, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1144, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5025994933694, "bbox_min_lat": 40.5343093212615, "bbox_max_lon": 141.5025994933694, "bbox_max_lat": 40.5343093212615, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Pacific Metals CO., LTD.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1144:point"}
{"feature_id": 605645, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1145, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49952734411502, "bbox_min_lat": 40.52800008248382, "bbox_max_lon": 141.49952734411502, "bbox_max_lat": 40.52800008248382, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Koshuha Foundry Co., Ltd.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1145:point"}
{"feature_id": 605646, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1146, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55052298720165, "bbox_min_lat": 40.532885854333834, "bbox_max_lon": 141.55052298720165, "bbox_max_lat": 40.532885854333834, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Sumimetal Mining Co., Ltd.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1146:point"}
{"feature_id": 605647, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1147, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.49177576222155, "bbox_min_lat": 40.55442272567037, "bbox_max_lon": 141.49177576222155, "bbox_max_lat": 40.55442272567037, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Hachinohe Smelting Co., Ltd.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1147:point"}
{"feature_id": 605648, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1148, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.50546818903078, "bbox_min_lat": 40.53062858049595, "bbox_max_lon": 141.50546818903078, "bbox_max_lat": 40.53062858049595, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Kitanihon Shipbuilding Co., Ltd.", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1148:point"}
{"feature_id": 605649, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1149, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51997443021202, "bbox_min_lat": 40.53397887627707, "bbox_max_lon": 141.51997443021202, "bbox_max_lat": 40.53397887627707, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "JX Nippon Oil & Energy Corporation", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1149:point"}
{"feature_id": 604522, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 22, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.47556051085908, "bbox_min_lat": 40.56808744764105, "bbox_max_lon": 141.48006700794411, "bbox_max_lat": 40.57377814151934, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Mitsubishi Paper Mills Limited"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:22:area"}
{"feature_id": 604533, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 33, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51657166886898, "bbox_min_lat": 40.5301455953626, "bbox_max_lon": 141.5218156852287, "bbox_max_lat": 40.5327638414758, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:33:area"}
{"feature_id": 604534, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 34, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5151525800578, "bbox_min_lat": 40.53412122200863, "bbox_max_lon": 141.51980149465794, "bbox_max_lat": 40.53723750099305, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:34:area"}
{"feature_id": 604559, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 59, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51973028590038, "bbox_min_lat": 40.53194533280882, "bbox_max_lon": 141.5224667367263, "bbox_max_lat": 40.53397887627707, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:59:area"}
{"feature_id": 604560, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 60, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5130926124286, "bbox_min_lat": 40.53118273809742, "bbox_max_lon": 141.5149745581639, "bbox_max_lat": 40.53331289758738, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm|Oil Tank Yard", "PRODCT": [1]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:60:area"}
{"feature_id": 604563, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 63, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49270147606973, "bbox_min_lat": 40.547246232251226, "bbox_max_lon": 141.49581940238252, "bbox_max_lat": 40.54980790173839, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Tokyotekko Co., Ltd."}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:63:area"}
{"feature_id": 604582, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 82, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.51023917578672, "bbox_min_lat": 40.5325198150932, "bbox_max_lon": 141.51196344498743, "bbox_max_lat": 40.53362301062516, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:82:area"}
{"feature_id": 604591, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 91, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49783359295327, "bbox_min_lat": 40.54635165791852, "bbox_max_lon": 141.49958838019293, "bbox_max_lat": 40.54775450779876, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area", "OBJNAM": "Yoshida Sangyo Corporation"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:91:area"}
{"feature_id": 604654, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 154, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48168955034834, "bbox_min_lat": 40.562335290300744, "bbox_max_lon": 141.48241689694333, "bbox_max_lat": 40.56347356561492, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:154:area"}
{"feature_id": 604658, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 158, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.55021780681213, "bbox_min_lat": 40.531416601398206, "bbox_max_lon": 141.55095532608678, "bbox_max_lat": 40.532753673727576, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area|Silo farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:158:area"}
{"feature_id": 604702, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 202, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4880830795085, "bbox_min_lat": 40.55522063103808, "bbox_max_lon": 141.4891105201532, "bbox_max_lat": 40.55577458522323, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Tank farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:202:area"}
{"feature_id": 604737, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 237, "object_class_id": 111, "object_class": "PRDINS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54511620796754, "bbox_min_lat": 40.52835597799762, "bbox_max_lon": 141.54565535998898, "bbox_max_lat": 40.528828807685365, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Production area|Silo farm"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:237:area"}
{"feature_id": 513650, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 720, "object_class_id": 112, "object_class": "PYLONS", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.55533302419232, "bbox_min_lat": 40.53861100186131, "bbox_max_lon": 141.55533302419232, "bbox_max_lat": 40.53861100186131, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Power transmission pylon/pole"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:720:point"}
{"feature_id": 513651, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 721, "object_class_id": 112, "object_class": "PYLONS", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.55657917765836, "bbox_min_lat": 40.53857541784393, "bbox_max_lon": 141.55657917765836, "bbox_max_lat": 40.53857541784393, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Power transmission pylon/pole"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:721:point"}
{"feature_id": 605471, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 971, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.46667976152443, "bbox_min_lat": 40.58934378105781, "bbox_max_lon": 141.46818531811266, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:971:line"}
{"feature_id": 605472, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 972, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.58533587354387, "bbox_max_lon": 141.46794117380105, "bbox_max_lat": 40.589389497248476, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:972:line"}
{"feature_id": 605473, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 973, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.46657803472792, "bbox_min_lat": 40.58933362190007, "bbox_max_lon": 141.4680123825586, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:973:line"}
{"feature_id": 605474, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 974, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.58575242264449, "bbox_max_lon": 141.4680123825586, "bbox_max_lat": 40.58959775949944, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:974:line"}
{"feature_id": 357930, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 2258, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.42604500431835, "bbox_min_lat": 40.47736990683258, "bbox_max_lon": 141.50307254431448, "bbox_max_lat": 40.54153506842535, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:2258:line"}
{"feature_id": 357943, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 2271, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.49361195105027, "bbox_min_lat": 40.50205608050168, "bbox_max_lon": 141.5250455351216, "bbox_max_lat": 40.53297909710472, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:2271:line"}
{"feature_id": 357950, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 2278, "object_class_id": 130, "object_class": "RIVBNK", "geometry_type": "LINE", "scale_code": "C", "native_scale": 200000, "raw_geotype": 2, "coverage_id": 1255, "bbox_min_lon": 141.38484564655496, "bbox_min_lat": 40.59166232814556, "bbox_max_lon": 141.46498602691543, "bbox_max_lat": 40.60688658555062, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:2278:line"}
{"feature_id": 604551, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 51, "object_class_id": 129, "object_class": "RIVERS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.58533587354387, "bbox_max_lon": 141.4680123825586, "bbox_max_lat": 40.58959775949944, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Gonohe Kawa"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:51:area"}
{"feature_id": 604644, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 144, "object_class_id": 129, "object_class": "RIVERS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.46657803472792, "bbox_min_lat": 40.58933362190007, "bbox_max_lon": 141.46818531811266, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:144:area"}
{"feature_id": 355983, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 311, "object_class_id": 129, "object_class": "RIVERS", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.42604500431835, "bbox_min_lat": 40.47736990683258, "bbox_max_lon": 141.50307254431448, "bbox_max_lat": 40.54153506842535, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Mabechi River"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:311:area"}
{"feature_id": 356044, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 372, "object_class_id": 129, "object_class": "RIVERS", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.38484564655496, "bbox_min_lat": 40.59166232814556, "bbox_max_lon": 141.46498602691543, "bbox_max_lat": 40.60688658555062, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Oirase River"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:372:area"}
{"feature_id": 356056, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 384, "object_class_id": 129, "object_class": "RIVERS", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 4, "coverage_id": 1255, "bbox_min_lon": 141.49361195105027, "bbox_min_lat": 40.50205608050168, "bbox_max_lon": 141.5250455351216, "bbox_max_lat": 40.53297909710472, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:384:area"}
{"feature_id": 606545, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2045, "object_class_id": 127, "object_class": "RSCSTA", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.55643331407842, "bbox_min_lat": 40.53463976461626, "bbox_max_lon": 141.55643331407842, "bbox_max_lat": 40.53463976461626, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2045:point"}
{"feature_id": 513843, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 913, "object_class_id": 118, "object_class": "RTPBCN", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.57267744590357, "bbox_min_lat": 40.5397649304665, "bbox_max_lon": 141.57267744590357, "bbox_max_lat": 40.5397649304665, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATRTB": 1, "SORIND": "GB,MDHS,graph,LL F-6620.A"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:913:point"}
{"feature_id": 606229, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1729, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5384073257382, "bbox_min_lat": 40.579620761128076, "bbox_max_lon": 141.5384073257382, "bbox_max_lat": 40.579620761128076, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1729:point"}
{"feature_id": 606230, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1730, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58481000396276, "bbox_min_lat": 40.550524541732436, "bbox_max_lon": 141.58481000396276, "bbox_max_lat": 40.550524541732436, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1730:point"}
{"feature_id": 606231, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1731, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.59467750322347, "bbox_min_lat": 40.58652455557915, "bbox_max_lon": 141.59467750322347, "bbox_max_lat": 40.58652455557915, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1731:point"}
{"feature_id": 606232, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1732, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5693475308944, "bbox_min_lat": 40.55354349409437, "bbox_max_lon": 141.5693475308944, "bbox_max_lat": 40.55354349409437, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1732:point"}
{"feature_id": 606233, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1733, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56588373347347, "bbox_min_lat": 40.54730214275028, "bbox_max_lon": 141.56588373347347, "bbox_max_lat": 40.54730214275028, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1733:point"}
{"feature_id": 606234, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1734, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.59106620194763, "bbox_min_lat": 40.527084913912766, "bbox_max_lon": 141.59106620194763, "bbox_max_lat": 40.527084913912766, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1734:point"}
{"feature_id": 606235, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1735, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58846199595715, "bbox_min_lat": 40.55680116710043, "bbox_max_lon": 141.58846199595715, "bbox_max_lat": 40.55680116710043, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1735:point"}
{"feature_id": 606236, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1736, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57148887996075, "bbox_min_lat": 40.54992988355559, "bbox_max_lon": 141.57148887996075, "bbox_max_lat": 40.54992988355559, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1736:point"}
{"feature_id": 606237, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1737, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57569528299612, "bbox_min_lat": 40.551861232717016, "bbox_max_lon": 141.57569528299612, "bbox_max_lat": 40.551861232717016, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1737:point"}
{"feature_id": 606238, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1738, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55759299955852, "bbox_min_lat": 40.54935555055996, "bbox_max_lon": 141.55759299955852, "bbox_max_lat": 40.54935555055996, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1738:point"}
{"feature_id": 606239, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1739, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51468463679387, "bbox_min_lat": 40.57942262847366, "bbox_max_lon": 141.51468463679387, "bbox_max_lat": 40.57942262847366, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1739:point"}
{"feature_id": 606240, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1740, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51186171819094, "bbox_min_lat": 40.56033309836147, "bbox_max_lon": 141.51186171819094, "bbox_max_lat": 40.56033309836147, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATQUA": [1], "NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1740:point"}
{"feature_id": 604952, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 452, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.58220071163242, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59028799195437, "bbox_max_lat": 40.531360677639675, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:452:area"}
{"feature_id": 604953, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 453, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5762140896583, "bbox_min_lat": 40.537105328971435, "bbox_max_lon": 141.58281107241146, "bbox_max_lat": 40.542453004138665, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:453:area"}
{"feature_id": 604956, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 456, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5799830674687, "bbox_min_lat": 40.53413138954932, "bbox_max_lon": 141.58195148098105, "bbox_max_lat": 40.53714599731356, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:456:area"}
{"feature_id": 604960, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 460, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.58185484052436, "bbox_min_lat": 40.53263166062886, "bbox_max_lon": 141.58383851305615, "bbox_max_lat": 40.53412122200863, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:460:area"}
{"feature_id": 604962, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 462, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.47098280501646, "bbox_min_lat": 40.58631628375762, "bbox_max_lon": 141.47273759225612, "bbox_max_lat": 40.587997679213444, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [4]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:462:area"}
{"feature_id": 604963, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 463, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5822312296714, "bbox_min_lat": 40.53122849402484, "bbox_max_lon": 141.5833909151515, "bbox_max_lat": 40.53234187862896, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:463:area"}
{"feature_id": 604973, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 473, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5819667400005, "bbox_min_lat": 40.53194533280882, "bbox_max_lon": 141.58253132372107, "bbox_max_lat": 40.532926525237144, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [5]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:473:area"}
{"feature_id": 513200, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 270, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.56559725968006, "bbox_min_lat": 40.542804700099516, "bbox_max_lon": 141.5678759403037, "bbox_max_lat": 40.54351633192592, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:270:area"}
{"feature_id": 356970, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1298, "object_class_id": 138, "object_class": "SBDARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.60323276074365, "bbox_min_lat": 40.50786694748101, "bbox_max_lon": 141.61269335400783, "bbox_max_lat": 40.51605129318746, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATSUR": [9]}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1298:area"}
{"feature_id": 356820, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1148, "object_class_id": 136, "object_class": "SEAARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.37538505329078, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 143.08335783594634, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "North Pacific Ocean"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1148:area"}
{"feature_id": 356905, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1233, "object_class_id": 136, "object_class": "SEAARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.5926735179391, "bbox_min_lat": 40.533603657525966, "bbox_max_lon": 141.59932645126682, "bbox_max_lat": 40.53859993131931, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Hamanaka"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1233:area"}
{"feature_id": 606440, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1940, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.54422101215832, "bbox_min_lat": 40.527369634362906, "bbox_max_lon": 141.54422101215832, "bbox_max_lat": 40.527369634362906, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1940:point"}
{"feature_id": 606441, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1941, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.54400229954584, "bbox_min_lat": 40.527339128658255, "bbox_max_lon": 141.54400229954584, "bbox_max_lat": 40.527339128658255, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1941:point"}
{"feature_id": 513719, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 789, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.54410238397577, "bbox_min_lat": 40.5283416869048, "bbox_max_lon": 141.54410238397577, "bbox_max_lat": 40.5283416869048, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "More than one", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:789:point"}
{"feature_id": 513720, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 790, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.5090066332991, "bbox_min_lat": 40.54605781244458, "bbox_max_lon": 141.5090066332991, "bbox_max_lat": 40.54605781244458, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "more than one", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:790:point"}
{"feature_id": 513721, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 791, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 129, "coverage_id": 1759, "bbox_min_lon": 141.54427023321813, "bbox_min_lat": 40.52743160734014, "bbox_max_lon": 141.54427023321813, "bbox_max_lat": 40.52743160734014, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "SILOS"}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:791:point"}
{"feature_id": 604966, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 466, "object_class_id": 142, "object_class": "SILBUI", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 4, "coverage_id": 2200, "bbox_min_lon": 141.5076451424759, "bbox_min_lat": 40.54524358905386, "bbox_max_lon": 141.50872853285864, "bbox_max_lat": 40.5461839239009, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:466:area"}
{"feature_id": 606546, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2046, "object_class_id": 140, "object_class": "SISTAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5214392960816, "bbox_min_lat": 40.52813227246671, "bbox_max_lon": 141.5214392960816, "bbox_max_lat": 40.52813227246671, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSIT": [2]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2046:point"}
{"feature_id": 606547, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2047, "object_class_id": 140, "object_class": "SISTAT", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52367219926484, "bbox_min_lat": 40.52990155944516, "bbox_max_lon": 141.52367219926484, "bbox_max_lat": 40.52990155944516, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSIT": [2]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2047:point"}
{"feature_id": 513844, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 914, "object_class_id": 140, "object_class": "SISTAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.52138678650883, "bbox_min_lat": 40.52817899202388, "bbox_max_lon": 141.52138678650883, "bbox_max_lat": 40.52817899202388, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:914:point"}
{"feature_id": 513845, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 915, "object_class_id": 140, "object_class": "SISTAT", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.52366546713245, "bbox_min_lat": 40.529897436757, "bbox_max_lon": 141.52366546713245, "bbox_max_lat": 40.529897436757, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:915:point"}
{"feature_id": 606548, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2048, "object_class_id": 141, "object_class": "SISTAW", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55547708219132, "bbox_min_lat": 40.535127801051665, "bbox_max_lon": 141.55547708219132, "bbox_max_lat": 40.535127801051665, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSIW": [10]}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2048:point"}
{"feature_id": 605475, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 975, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.51969976786143, "bbox_min_lat": 40.535381985287216, "bbox_max_lon": 141.51973028590038, "bbox_max_lat": 40.53540231998442, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:975:line"}
{"feature_id": 605476, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 976, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.52770058040633, "bbox_min_lat": 40.5314572731933, "bbox_max_lon": 141.52799050177637, "bbox_max_lat": 40.53179281456082, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:976:line"}
{"feature_id": 605477, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 977, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.48515334776926, "bbox_min_lat": 40.558874611203855, "bbox_max_lon": 141.48675045847435, "bbox_max_lat": 40.559870654654276, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:977:line"}
{"feature_id": 605478, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 978, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.52725298250175, "bbox_min_lat": 40.5271408412395, "bbox_max_lon": 141.53649486196397, "bbox_max_lat": 40.5315386167094, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:978:line"}
{"feature_id": 605479, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 979, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.48589086704388, "bbox_min_lat": 40.53130475383445, "bbox_max_lon": 141.48606888893775, "bbox_max_lat": 40.53144710524684, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:979:line"}
{"feature_id": 605480, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 980, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.5424967429576, "bbox_min_lat": 40.52762384802846, "bbox_max_lon": 141.54268493753113, "bbox_max_lat": 40.52763910081771, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:980:line"}
{"feature_id": 605481, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 981, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.54248148393813, "bbox_min_lat": 40.52790348194681, "bbox_max_lon": 141.54266967851163, "bbox_max_lat": 40.52791365043095, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:981:line"}
{"feature_id": 605482, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 982, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.50949657017225, "bbox_min_lat": 40.547896824260796, "bbox_max_lon": 141.5098322686007, "bbox_max_lat": 40.54815096004797, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:982:line"}
{"feature_id": 605483, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 983, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.51555440090397, "bbox_min_lat": 40.53871679313628, "bbox_max_lon": 141.5158290632545, "bbox_max_lat": 40.538915046302165, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:983:line"}
{"feature_id": 605484, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 984, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.4957634526444, "bbox_min_lat": 40.53131492180248, "bbox_max_lon": 141.49584992042145, "bbox_max_lat": 40.531767394819084, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:984:line"}
{"feature_id": 605485, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 985, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.51920639289838, "bbox_min_lat": 40.5301455953626, "bbox_max_lon": 141.5192674289763, "bbox_max_lat": 40.530155763506556, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:985:line"}
{"feature_id": 605486, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 986, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 130, "coverage_id": 2200, "bbox_min_lon": 141.48506687999222, "bbox_min_lat": 40.53057774011952, "bbox_max_lon": 141.48525507456577, "bbox_max_lat": 40.530730261133066, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:986:line"}
{"feature_id": 604998, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 498, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.48233042916632, "bbox_min_lat": 40.563702234660056, "bbox_max_lon": 141.49193343875612, "bbox_max_lat": 40.571181822467274, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 6, "OBJNAM": "No 4 Wharf", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:498:area"}
{"feature_id": 604999, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 499, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.50182128337616, "bbox_min_lat": 40.54334763054349, "bbox_max_lon": 141.5100357221937, "bbox_max_lat": 40.54897943601769, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 6, "OBJNAM": "No 3 Wharf", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:499:area"}
{"feature_id": 605000, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 500, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49338304560627, "bbox_min_lat": 40.55327413182146, "bbox_max_lon": 141.50128213135469, "bbox_max_lat": 40.558183470304584, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 6, "OBJNAM": "No 1 Wharf", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:500:area"}
{"feature_id": 605001, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 501, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49832696791628, "bbox_min_lat": 40.54858298867289, "bbox_max_lon": 141.50594630497434, "bbox_max_lat": 40.55272523930777, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 6, "OBJNAM": "No 2 Wharf", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:501:area"}
{"feature_id": 605002, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 502, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5107579824489, "bbox_min_lat": 40.53889471267114, "bbox_max_lon": 141.5174261739596, "bbox_max_lat": 40.54304772870506, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 6, "OBJNAM": "Kawaragi No 2 Wharf", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:502:area"}
{"feature_id": 605003, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 503, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.47699485868978, "bbox_min_lat": 40.55540867104595, "bbox_max_lon": 141.52820921438885, "bbox_max_lat": 40.57845227802509, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATCON": [3], "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:503:area"}
{"feature_id": 605004, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 504, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53498930537572, "bbox_min_lat": 40.54922340244798, "bbox_max_lon": 141.5454925971146, "bbox_max_lat": 40.56592282453552, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 1, "NATCON": [3], "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:504:area"}
{"feature_id": 605005, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 505, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.53481636982167, "bbox_min_lat": 40.54910141934393, "bbox_max_lon": 141.54553837417302, "bbox_max_lat": 40.56589233638616, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 1, "OBJNAM": "Middle Breakwater", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:505:area"}
{"feature_id": 605006, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 506, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.47721357130226, "bbox_min_lat": 40.56706103884022, "bbox_max_lon": 141.4916892944445, "bbox_max_lat": 40.57847259964477, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"NATCON": [3], "WATLEV": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:506:area"}
{"feature_id": 605007, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 507, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.54939381976047, "bbox_min_lat": 40.54470479665162, "bbox_max_lon": 141.5603192777048, "bbox_max_lat": 40.549960378975165, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 1, "NATCON": [3], "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:507:area"}
{"feature_id": 605008, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 508, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.49187748901807, "bbox_min_lat": 40.55859002463888, "bbox_max_lon": 141.5066431335304, "bbox_max_lat": 40.56627851858513, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 1, "OBJNAM": "Hattaro North Breakwater", "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:508:area"}
{"feature_id": 605009, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 509, "object_class_id": 139, "object_class": "SLCONS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5338296198956, "bbox_min_lat": 40.536088612395424, "bbox_max_lon": 141.54678452743016, "bbox_max_lat": 40.538432120897646, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATSLC": 1, "NATCON": [3], "WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:509:area"}
{"feature_id": 604975, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 475, "object_class_id": 143, "object_class": "SLIPWY", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.4736175290459, "bbox_min_lat": 40.58537651259471, "bbox_max_lon": 141.4746347970109, "bbox_max_lat": 40.58675822563124, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"OBJNAM": "Ichikawa Slipway", "WATLEV": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:475:area"}
{"feature_id": 513212, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 282, "object_class_id": 143, "object_class": "SLIPWY", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48513643649827, "bbox_min_lat": 40.55965309509652, "bbox_max_lon": 141.48580783346776, "bbox_max_lat": 40.55996308617321, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 4}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:282:area"}
{"feature_id": 513213, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 283, "object_class_id": 143, "object_class": "SLIPWY", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.48477530631015, "bbox_min_lat": 40.559505721786124, "bbox_max_lon": 141.48520764526776, "bbox_max_lat": 40.55974456802254, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"WATLEV": 2}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:283:area"}
{"feature_id": 606738, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2238, "object_class_id": 147, "object_class": "SOUNDG", "geometry_type": "SOUNDING", "scale_code": "F", "native_scale": 20000, "raw_geotype": 8, "coverage_id": null, "bbox_min_lon": 141.47073357436506, "bbox_min_lat": 40.52099872504556, "bbox_max_lon": 141.59583718870357, "bbox_max_lat": 40.5929095500782, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2238:sounding"}
{"feature_id": 513921, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 991, "object_class_id": 147, "object_class": "SOUNDG", "geometry_type": "SOUNDING", "scale_code": "E", "native_scale": 50000, "raw_geotype": 8, "coverage_id": null, "bbox_min_lon": 141.48180488335433, "bbox_min_lat": 40.52569276174202, "bbox_max_lon": 141.57742300175593, "bbox_max_lat": 40.57195000057247, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:991:sounding"}
{"feature_id": 362107, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 6435, "object_class_id": 147, "object_class": "SOUNDG", "geometry_type": "SOUNDING", "scale_code": "C", "native_scale": 200000, "raw_geotype": 8, "coverage_id": null, "bbox_min_lon": 140.00018100919212, "bbox_min_lat": 40.00088065242476, "bbox_max_lon": 143.984799783809, "bbox_max_lat": 43.997398301187744, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:6435:sounding"}
{"feature_id": 329756, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 1933, "object_class_id": 147, "object_class": "SOUNDG", "geometry_type": "SOUNDING", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 8, "coverage_id": null, "bbox_min_lon": 140.06225470926594, "bbox_min_lat": 40.00962335193312, "bbox_max_lon": 149.9995399683786, "bbox_max_lat": 49.99972078852007, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:1933:sounding"}
{"feature_id": 605582, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1082, "object_class_id": 154, "object_class": "TELPHC", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.50892181377202, "bbox_min_lat": 40.547246232251226, "bbox_max_lon": 141.50962881500772, "bbox_max_lat": 40.547896824260796, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1082:line"}
{"feature_id": 605583, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1083, "object_class_id": 154, "object_class": "TELPHC", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.50817920815757, "bbox_min_lat": 40.54612801246834, "bbox_max_lon": 141.50892181377202, "bbox_max_lat": 40.547246232251226, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1083:line"}
{"feature_id": 513504, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 574, "object_class_id": 154, "object_class": "TELPHC", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 2, "coverage_id": 1759, "bbox_min_lon": 141.5093931951906, "bbox_min_lat": 40.54792828049828, "bbox_max_lon": 141.50956104443296, "bbox_max_lat": 40.54801976944343, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:574:line"}
{"feature_id": 513505, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 575, "object_class_id": 154, "object_class": "TELPHC", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 2, "coverage_id": 1759, "bbox_min_lon": 141.50799953784488, "bbox_min_lat": 40.54614930394491, "bbox_max_lon": 141.5089354245296, "bbox_max_lat": 40.54745050286525, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:575:line"}
{"feature_id": 513506, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 576, "object_class_id": 154, "object_class": "TELPHC", "geometry_type": "LINE", "scale_code": "E", "native_scale": 50000, "raw_geotype": 2, "coverage_id": 1759, "bbox_min_lon": 141.5090524103652, "bbox_min_lat": 40.54759790271135, "bbox_max_lon": 141.50924569131095, "bbox_max_lat": 40.54778088137933, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:576:line"}
{"feature_id": 604942, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 442, "object_class_id": 155, "object_class": "TESARE", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.46794117380105, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:442:area"}
{"feature_id": 356833, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 1161, "object_class_id": 155, "object_class": "TESARE", "geometry_type": "AREA", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.30000548760523, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 142.22018551373947, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:1161:area"}
{"feature_id": 328188, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 365, "object_class_id": 155, "object_class": "TESARE", "geometry_type": "AREA", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1184, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 40.29440769058278, "bbox_max_lon": 141.7972054708302, "bbox_max_lat": 41.606003535658594, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"INFORM": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "NATION": "JP"}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:365:area"}
{"feature_id": 606442, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1942, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.49212671966947, "bbox_min_lat": 40.53255540232935, "bbox_max_lon": 141.49212671966947, "bbox_max_lat": 40.53255540232935, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1942:point"}
{"feature_id": 606443, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1943, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50403384120006, "bbox_min_lat": 40.52984563442224, "bbox_max_lon": 141.50403384120006, "bbox_max_lat": 40.52984563442224, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1943:point"}
{"feature_id": 606444, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1944, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.49338304560627, "bbox_min_lat": 40.5522373310738, "bbox_max_lon": 141.49338304560627, "bbox_max_lat": 40.5522373310738, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1944:point"}
{"feature_id": 606445, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1945, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50641424823823, "bbox_min_lat": 40.53310446014887, "bbox_max_lon": 141.50641424823823, "bbox_max_lat": 40.53310446014887, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1945:point"}
{"feature_id": 606446, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1946, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50633795314087, "bbox_min_lat": 40.52989139126262, "bbox_max_lon": 141.50633795314087, "bbox_max_lat": 40.52989139126262, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1946:point"}
{"feature_id": 606447, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1947, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.49321011005222, "bbox_min_lat": 40.552471120879524, "bbox_max_lon": 141.49321011005222, "bbox_max_lat": 40.552471120879524, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1947:point"}
{"feature_id": 606448, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1948, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50628200340276, "bbox_min_lat": 40.529459242079696, "bbox_max_lon": 141.50628200340276, "bbox_max_lat": 40.529459242079696, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1948:point"}
{"feature_id": 606449, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1949, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.5448873226754, "bbox_min_lat": 40.529042342579885, "bbox_max_lon": 141.5448873226754, "bbox_max_lat": 40.529042342579885, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1949:point"}
{"feature_id": 606450, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1950, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50394737342305, "bbox_min_lat": 40.52946941032777, "bbox_max_lon": 141.50394737342305, "bbox_max_lat": 40.52946941032777, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1950:point"}
{"feature_id": 606451, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1951, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 1, "coverage_id": 2200, "bbox_min_lon": 141.50741117084394, "bbox_min_lat": 40.532951944539185, "bbox_max_lon": 141.50741117084394, "bbox_max_lat": 40.532951944539185, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1951:point"}
{"feature_id": 513722, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 792, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.49175885206074, "bbox_min_lat": 40.53238859495904, "bbox_max_lon": 141.49175885206074, "bbox_max_lat": 40.53238859495904, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:792:point"}
{"feature_id": 513723, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 793, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "POINT", "scale_code": "E", "native_scale": 50000, "raw_geotype": 1, "coverage_id": 1759, "bbox_min_lon": 141.51709391497675, "bbox_min_lat": 40.534935581368444, "bbox_max_lon": 141.51709391497675, "bbox_max_lat": 40.534935581368444, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:793:point"}
{"feature_id": 513195, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 265, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.5195607902055, "bbox_min_lat": 40.53207847622974, "bbox_max_lon": 141.52256173120537, "bbox_max_lat": 40.53418318827337, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:265:area"}
{"feature_id": 513196, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 266, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.5129638063464, "bbox_min_lat": 40.53195137797524, "bbox_max_lon": 141.51426082321922, "bbox_max_lat": 40.533359613173054, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:266:area"}
{"feature_id": 513197, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 267, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.51565448056496, "bbox_min_lat": 40.53507792505766, "bbox_max_lon": 141.51788229778182, "bbox_max_lat": 40.53626749977913, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:267:area"}
{"feature_id": 513199, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 269, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.5174296134615, "bbox_min_lat": 40.53449329726174, "bbox_max_lon": 141.51903689711568, "bbox_max_lat": 40.53570321696747, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:269:area"}
{"feature_id": 513201, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 271, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.5164937267768, "bbox_min_lat": 40.531015927405434, "bbox_max_lon": 141.51713969204286, "bbox_max_lat": 40.53275463489108, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:271:area"}
{"feature_id": 513202, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 272, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.55022125181117, "bbox_min_lat": 40.53134638697893, "bbox_max_lon": 141.5511062750891, "bbox_max_lat": 40.53286648002703, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:272:area"}
{"feature_id": 513205, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 275, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.51548663132257, "bbox_min_lat": 40.53575405345159, "bbox_max_lon": 141.5169972745039, "bbox_max_lat": 40.53680127644309, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:275:area"}
{"feature_id": 513206, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 276, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.553507027889, "bbox_min_lat": 40.529699156921296, "bbox_max_lon": 141.5544683462771, "bbox_max_lat": 40.530395675806176, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:276:area"}
{"feature_id": 513208, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 278, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.54991098502978, "bbox_min_lat": 40.52829084479693, "bbox_max_lon": 141.55055695029588, "bbox_max_lat": 40.52878401161566, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:278:area"}
{"feature_id": 513209, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 279, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.5169464110971, "bbox_min_lat": 40.530629541837506, "bbox_max_lon": 141.51764323976997, "bbox_max_lat": 40.5309600033164, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:279:area"}
{"feature_id": 513211, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 281, "object_class_id": 153, "object_class": "TNKCON", "geometry_type": "AREA", "scale_code": "E", "native_scale": 50000, "raw_geotype": 4, "coverage_id": 1759, "bbox_min_lon": 141.4954057583267, "bbox_min_lat": 40.52982625944759, "bbox_max_lon": 141.49569567974532, "bbox_max_lat": 40.53028382654616, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:281:area"}
{"feature_id": 606452, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1952, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.54813240748382, "bbox_min_lat": 40.53939288485493, "bbox_max_lon": 141.54813240748382, "bbox_max_lat": 40.53939288485493, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6622", "VERLEN": 8, "_cm93_relation20_raw": 2243}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1952:point"}
{"feature_id": 606453, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1953, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.56767921143177, "bbox_min_lat": 40.54238692330532, "bbox_max_lon": 141.56767921143177, "bbox_max_lat": 40.54238692330532, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6621", "VERLEN": 9, "_cm93_relation20_raw": 2240}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1953:point"}
{"feature_id": 606454, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1954, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.51452696025927, "bbox_min_lat": 40.55241521469589, "bbox_max_lon": 141.51452696025927, "bbox_max_lat": 40.55241521469589, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6625.5", "VERLEN": 10, "_cm93_relation20_raw": 2239}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1954:point"}
{"feature_id": 606455, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1955, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5759546863272, "bbox_min_lat": 40.53986563666468, "bbox_max_lon": 141.5759546863272, "bbox_max_lat": 40.53986563666468, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "NATCON": [2], "SORIND": "GB,UKHO,graph,LL M-6620", "VERLEN": 23, "_cm93_relation20_raw": 2241}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1955:point"}
{"feature_id": 606456, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1956, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.5350198234147, "bbox_min_lat": 40.56587201094555, "bbox_max_lon": 141.5350198234147, "bbox_max_lat": 40.56587201094555, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.86", "VERLEN": 5, "_cm93_relation20_raw": 2242}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1956:point"}
{"feature_id": 606457, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1957, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 161, "coverage_id": 2200, "bbox_min_lon": 141.55521767886023, "bbox_min_lat": 40.536297040550764, "bbox_max_lon": 141.55521767886023, "bbox_max_lat": 40.536297040550764, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 1, "COLOUR": [1], "CONVIS": 1, "SORIND": "GB,UKHO,graph,LL M-6624.4", "VERLEN": 9, "_cm93_relation20_raw": 2244}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1957:point"}
{"feature_id": 606458, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1958, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48809833852798, "bbox_min_lat": 40.556491161360874, "bbox_max_lon": 141.48809833852798, "bbox_max_lat": 40.556491161360874, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 3, "CONVIS": 2, "INFORM": "Radio", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1958:point"}
{"feature_id": 606459, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1959, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.487254006117, "bbox_min_lat": 40.55602869111419, "bbox_max_lon": 141.487254006117, "bbox_max_lat": 40.55602869111419, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 3, "CONVIS": 2, "INFORM": "Radio", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1959:point"}
{"feature_id": 606460, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1960, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.487370991933, "bbox_min_lat": 40.55682149529551, "bbox_max_lon": 141.487370991933, "bbox_max_lat": 40.55682149529551, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 3, "CONVIS": 2, "INFORM": "Radio", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1960:point"}
{"feature_id": 606461, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1961, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.48819497898467, "bbox_min_lat": 40.55577458522323, "bbox_max_lon": 141.48819497898467, "bbox_max_lat": 40.55577458522323, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 3, "CONVIS": 2, "INFORM": "Radio", "QUAPOS": 4}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1961:point"}
{"feature_id": 606462, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1962, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5214392960816, "bbox_min_lat": 40.52781196552014, "bbox_max_lon": 141.5214392960816, "bbox_max_lat": 40.52781196552014, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CONVIS": 1, "HEIGHT": 51}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1962:point"}
{"feature_id": 606463, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1963, "object_class_id": 158, "object_class": "TOWERS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.553798590049, "bbox_min_lat": 40.526698505652824, "bbox_max_lon": 141.553798590049, "bbox_max_lat": 40.526698505652824, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATTOW": 3, "HEIGHT": 53}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1963:point"}
{"feature_id": 606549, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2049, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57399644549454, "bbox_min_lat": 40.54368819540977, "bbox_max_lon": 141.57399644549454, "bbox_max_lat": 40.54368819540977, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 0.3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2049:point"}
{"feature_id": 606550, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2050, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5783045753264, "bbox_min_lat": 40.54233100870312, "bbox_max_lon": 141.5783045753264, "bbox_max_lat": 40.54233100870312, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 0.5, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2050:point"}
{"feature_id": 606551, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2051, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.59056265430493, "bbox_min_lat": 40.52279870812551, "bbox_max_lon": 141.59056265430493, "bbox_max_lat": 40.52279870812551, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 0.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2051:point"}
{"feature_id": 606552, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2052, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5803899746547, "bbox_min_lat": 40.541166957748345, "bbox_max_lon": 141.5803899746547, "bbox_max_lat": 40.541166957748345, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 0.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2052:point"}
{"feature_id": 606553, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2053, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57795361787848, "bbox_min_lat": 40.54323580289634, "bbox_max_lon": 141.57795361787848, "bbox_max_lat": 40.54323580289634, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 0.8, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2053:point"}
{"feature_id": 606554, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2054, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.57343186177394, "bbox_min_lat": 40.54388643386297, "bbox_max_lon": 141.57343186177394, "bbox_max_lat": 40.54388643386297, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 1.4, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2054:point"}
{"feature_id": 606555, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2055, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55662150865197, "bbox_min_lat": 40.53705957705704, "bbox_max_lon": 141.55662150865197, "bbox_max_lat": 40.53705957705704, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 1.6, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2055:point"}
{"feature_id": 606556, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2056, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56846250776482, "bbox_min_lat": 40.547566446295754, "bbox_max_lon": 141.56846250776482, "bbox_max_lat": 40.547566446295754, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 1.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2056:point"}
{"feature_id": 606557, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2057, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58233295646792, "bbox_min_lat": 40.53549382604538, "bbox_max_lon": 141.58233295646792, "bbox_max_lat": 40.53549382604538, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2057:point"}
{"feature_id": 606558, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2058, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58351807364716, "bbox_min_lat": 40.538264367047745, "bbox_max_lon": 141.58351807364716, "bbox_max_lat": 40.538264367047745, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2058:point"}
{"feature_id": 606559, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2059, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58104102615232, "bbox_min_lat": 40.53694773891256, "bbox_max_lon": 141.58104102615232, "bbox_max_lat": 40.53694773891256, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2059:point"}
{"feature_id": 606560, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2060, "object_class_id": 168, "object_class": "UWTROC", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58472353618572, "bbox_min_lat": 40.53782210488448, "bbox_max_lon": 141.58472353618572, "bbox_max_lat": 40.53782210488448, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"VALSOU": 2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2060:point"}
{"feature_id": 605650, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1150, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.58328918835502, "bbox_min_lat": 40.54721065281842, "bbox_max_lon": 141.58328918835502, "bbox_max_lat": 40.54721065281842, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 2, "VALSOU": 23.5, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1150:point"}
{"feature_id": 605651, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1151, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54923105688604, "bbox_min_lat": 40.530267612988084, "bbox_max_lon": 141.54923105688604, "bbox_max_lat": 40.530267612988084, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1151:point"}
{"feature_id": 605652, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1152, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52744117707525, "bbox_min_lat": 40.53349083147308, "bbox_max_lon": 141.52744117707525, "bbox_max_lat": 40.53349083147308, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1152:point"}
{"feature_id": 605653, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1153, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52830585484554, "bbox_min_lat": 40.53366876488627, "bbox_max_lon": 141.52830585484554, "bbox_max_lat": 40.53366876488627, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3.2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1153:point"}
{"feature_id": 605654, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1154, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5516267229437, "bbox_min_lat": 40.53403479785053, "bbox_max_lon": 141.5516267229437, "bbox_max_lat": 40.53403479785053, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3.3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1154:point"}
{"feature_id": 605655, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1155, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54553837417302, "bbox_min_lat": 40.52969311139527, "bbox_max_lon": 141.54553837417302, "bbox_max_lat": 40.52969311139527, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1155:point"}
{"feature_id": 605656, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1156, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.4865012278229, "bbox_min_lat": 40.55870182664797, "bbox_max_lon": 141.4865012278229, "bbox_max_lat": 40.55870182664797, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 3.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1156:point"}
{"feature_id": 605657, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1157, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5523184651599, "bbox_min_lat": 40.53377044091027, "bbox_max_lon": 141.5523184651599, "bbox_max_lat": 40.53377044091027, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 4.2, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1157:point"}
{"feature_id": 605658, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1158, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5341500593046, "bbox_min_lat": 40.5340093789593, "bbox_max_lon": 141.5341500593046, "bbox_max_lat": 40.5340093789593, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 4.3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1158:point"}
{"feature_id": 605659, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1159, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.53132205436182, "bbox_min_lat": 40.532311375187646, "bbox_max_lon": 141.53132205436182, "bbox_max_lat": 40.532311375187646, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 4.3, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1159:point"}
{"feature_id": 605660, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1160, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52803119249498, "bbox_min_lat": 40.533180717823534, "bbox_max_lon": 141.52803119249498, "bbox_max_lat": 40.533180717823534, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 4.7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1160:point"}
{"feature_id": 605661, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1161, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5324969988614, "bbox_min_lat": 40.5331705501386, "bbox_max_lon": 141.5324969988614, "bbox_max_lat": 40.5331705501386, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 3, "VALSOU": 4.9, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1161:point"}
{"feature_id": 604833, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 333, "object_class_id": 176, "object_class": "WRECKS", "geometry_type": "AREA", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.5422932893646, "bbox_min_lat": 40.53198092035005, "bbox_max_lon": 141.5425526926957, "bbox_max_lat": 40.53225545217583, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CATWRK": 2, "VALSOU": 7, "WATLEV": 3}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:333:area"}
{"feature_id": 605584, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1084, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.58070532772385, "bbox_min_lat": 40.5343093212615, "bbox_max_lon": 141.58281107241146, "bbox_max_lat": 40.538737126821324, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1084:line"}
{"feature_id": 605585, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1085, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.58311116646112, "bbox_min_lat": 40.53356708870802, "bbox_max_lon": 141.58351807364716, "bbox_max_lat": 40.53412122200863, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1085:line"}
{"feature_id": 605586, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1086, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5604210045013, "bbox_min_lat": 40.538915046302165, "bbox_max_lon": 141.5646528392358, "bbox_max_lat": 40.54126862239338, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1086:line"}
{"feature_id": 605587, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1087, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5817632864075, "bbox_min_lat": 40.53728325278595, "bbox_max_lon": 141.58183958150488, "bbox_max_lat": 40.53735950570467, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1087:line"}
{"feature_id": 605588, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1088, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5819667400005, "bbox_min_lat": 40.53936746799647, "bbox_max_lon": 141.58213967555454, "bbox_max_lat": 40.539413218334765, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1088:line"}
{"feature_id": 605589, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1089, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.58143267431888, "bbox_min_lat": 40.53975380320449, "bbox_max_lon": 141.58175311372784, "bbox_max_lat": 40.539809719957944, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1089:line"}
{"feature_id": 605590, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1090, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.57656504710624, "bbox_min_lat": 40.543434042688425, "bbox_max_lon": 141.57663625586378, "bbox_max_lat": 40.54348995636987, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1090:line"}
{"feature_id": 605591, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1091, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.56779619724773, "bbox_min_lat": 40.542839321551995, "bbox_max_lon": 141.5713159444067, "bbox_max_lat": 40.544074505699285, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1091:line"}
{"feature_id": 605592, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1092, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.590211696857, "bbox_min_lat": 40.52260040727397, "bbox_max_lon": 141.59034394169245, "bbox_max_lat": 40.52266650762302, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1092:line"}
{"feature_id": 605593, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1093, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5803035068777, "bbox_min_lat": 40.54241742215959, "bbox_max_lon": 141.58037471563523, "bbox_max_lat": 40.54247333668963, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1093:line"}
{"feature_id": 605594, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1094, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.5674503261396, "bbox_min_lat": 40.544130418846095, "bbox_max_lon": 141.56753679391664, "bbox_max_lat": 40.5441964979594, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1094:line"}
{"feature_id": 605595, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1095, "object_class_id": 177, "object_class": "ZEMCNT", "geometry_type": "LINE", "scale_code": "F", "native_scale": 20000, "raw_geotype": 2, "coverage_id": 2200, "bbox_min_lon": 141.51177525041393, "bbox_min_lat": 40.542981648458436, "bbox_max_lon": 141.51403358529626, "bbox_max_lat": 40.54647364603113, "geometry_repaired": 0, "geometry_issue": null, "attributes": {}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1095:line"}
{"feature_id": 606716, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2216, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.51800601669967, "bbox_min_lat": 40.54032821853955, "bbox_max_lon": 141.51800601669967, "bbox_max_lat": 40.54032821853955, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2262}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2216:point"}
{"feature_id": 606717, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2217, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.56030401868534, "bbox_min_lat": 40.544648883984316, "bbox_max_lon": 141.56030401868534, "bbox_max_lat": 40.544648883984316, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2264}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2217:point"}
{"feature_id": 606718, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2218, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.47915655311542, "bbox_min_lat": 40.58768781797142, "bbox_max_lon": 141.47915655311542, "bbox_max_lat": 40.58768781797142, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2252}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2218:point"}
{"feature_id": 606719, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2219, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.5254269865045, "bbox_min_lat": 40.53363317824145, "bbox_max_lon": 141.5254269865045, "bbox_max_lat": 40.53363317824145, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2270}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2219:point"}
{"feature_id": 606720, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2220, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.5075434156794, "bbox_min_lat": 40.549081088805, "bbox_max_lon": 141.5075434156794, "bbox_max_lat": 40.549081088805, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2260}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2220:point"}
{"feature_id": 606721, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2221, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.53280217925092, "bbox_min_lat": 40.535966605369474, "bbox_max_lon": 141.53280217925092, "bbox_max_lat": 40.535966605369474, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2275}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2221:point"}
{"feature_id": 606722, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2222, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.50160257076368, "bbox_min_lat": 40.552715074589145, "bbox_max_lon": 141.50160257076368, "bbox_max_lat": 40.552715074589145, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2269}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2222:point"}
{"feature_id": 606723, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2223, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.52411979716945, "bbox_min_lat": 40.545101266953736, "bbox_max_lon": 141.52411979716945, "bbox_max_lat": 40.545101266953736, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2274}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2223:point"}
{"feature_id": 606724, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2224, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.4824321559628, "bbox_min_lat": 40.58365441116841, "bbox_max_lon": 141.4824321559628, "bbox_max_lat": 40.58365441116841, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2277}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2224:point"}
{"feature_id": 606725, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2225, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.5251777558531, "bbox_min_lat": 40.5334501609123, "bbox_max_lon": 141.5251777558531, "bbox_max_lat": 40.5334501609123, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2276}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2225:point"}
{"feature_id": 606726, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2226, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.52561518107802, "bbox_min_lat": 40.53350099910942, "bbox_max_lon": 141.52561518107802, "bbox_max_lat": 40.53350099910942, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2266}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2226:point"}
{"feature_id": 606727, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2227, "object_class_id": 201, "object_class": "_extgn", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 33, "coverage_id": 2200, "bbox_min_lon": 141.47109979083245, "bbox_min_lat": 40.546926016675656, "bbox_max_lon": 141.47109979083245, "bbox_max_lat": 40.546926016675656, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_cm93_relation20_raw": 2257}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2227:point"}
{"feature_id": 604501, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 1, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "F", "native_scale": 20000, "raw_geotype": 132, "coverage_id": 2200, "bbox_min_lon": 141.45999631099423, "bbox_min_lat": 40.520830927549845, "bbox_max_lon": 141.59638651340472, "bbox_max_lat": 40.5930568498369, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 12000, "HORDAT": 2, "MARSYS": 2, "NMDATE": "20140328", "RECDAT": "20140505", "SORIND": "JP,JHOD,graph,W65", "VERDAT": 11, "_chcod": "31-0F700", "_dgdat": "20120313", "_hvdat": 3, "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:1:meta"}
{"feature_id": 512931, "cell_id": 351, "source_relative_path": "03900420\\E\\03910424.E", "source_record_index": 1, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "E", "native_scale": 50000, "raw_geotype": 132, "coverage_id": 1759, "bbox_min_lon": 141.47966862026965, "bbox_min_lat": 40.52133528089739, "bbox_max_lon": 141.5780028445932, "bbox_max_lat": 40.572168478876776, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 20000, "HORDAT": 2, "MARSYS": 2, "NMDATE": "20060323", "RECDAT": "20060322", "SORIND": "GB,MDHS,graph,2959B", "VERDAT": 10, "_chcod": "31-0684B", "_dgdat": "20030320", "_hvdat": 21, "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900420/E/03910424.E:1:meta"}
{"feature_id": 355675, "cell_id": 40, "source_relative_path": "03900420\\C\\03900420.C", "source_record_index": 3, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "C", "native_scale": 200000, "raw_geotype": 132, "coverage_id": 1255, "bbox_min_lon": 141.30000548760523, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 143.08335783594634, "bbox_max_lat": 41.33307476146743, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 250000, "HORDAT": 2, "MARSYS": 2, "NMDATE": "20140523", "RECDAT": "20140602", "SORIND": "JP,JHOD,graph,W53", "VERDAT": 11, "_chcod": "31-0F710", "_dgdat": "20070914", "_hvdat": 3, "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900420/C/03900420.C:3:meta"}
{"feature_id": 327828, "cell_id": 12, "source_relative_path": "03900420\\B\\03900420.B", "source_record_index": 5, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "B", "native_scale": 1000000, "raw_geotype": 132, "coverage_id": 1184, "bbox_min_lon": 139.9999979009354, "bbox_min_lat": 39.99999935237068, "bbox_max_lon": 141.8321486304079, "bbox_max_lat": 45.254135718959375, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 1200000, "HORDAT": 2, "MARSYS": 2, "NMDATE": "20140926", "RECDAT": "20141006", "SORIND": "JP,JHOD,graph,W1154", "VERDAT": 11, "_chcod": "31-0F270", "_dgdat": "20081003", "_hvdat": 3, "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900420/B/03900420.B:5:meta"}
{"feature_id": 322991, "cell_id": 4, "source_relative_path": "03900420\\A\\03900420.A", "source_record_index": 1, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "A", "native_scale": 3000000, "raw_geotype": 132, "coverage_id": 1160, "bbox_min_lon": 140.00000125369664, "bbox_min_lat": 40.00000035819904, "bbox_max_lon": 160.00000143279615, "bbox_max_lat": 60.00000053729857, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 3000000, "HORDAT": 2, "MARSYS": 1, "NMDATE": "20021101", "RECDAT": "20080102", "SORIND": "IT,CMAP,graph,W-135", "_chcod": "90-01520", "_dgdat": "20000101", "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900420/A/03900420.A:1:meta"}
{"feature_id": 644517, "cell_id": 784, "source_relative_path": "03900360\\Z\\03900360.Z", "source_record_index": 1, "object_class_id": 217, "object_class": "_m_sor", "geometry_type": "META", "scale_code": "Z", "native_scale": 20000000, "raw_geotype": 132, "coverage_id": 2311, "bbox_min_lon": 120.00000107459711, "bbox_min_lat": 40.00000035819904, "bbox_max_lon": 160.00000143279615, "bbox_max_lat": 80.00000071639808, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"CSCALE": 20000000, "HORDAT": 2, "MARSYS": 1, "NMDATE": "20021101", "RECDAT": "20080102", "SORIND": "IT,CMAP,graph,W-14", "_chcod": "90-00310", "_dgdat": "20000101", "_quart": 4, "_sorhd": 2, "_wgsox": 0, "_wgsoy": 0}, "suggested_source_id": "cm95:1:03900360/Z/03900360.Z:1:meta"}
{"feature_id": 606649, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2149, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5033268399644, "bbox_min_lat": 40.52367325872837, "bbox_max_lon": 141.5033268399644, "bbox_max_lat": 40.52367325872837, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Aomori", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2149:point"}
{"feature_id": 606650, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2150, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54125058970044, "bbox_min_lat": 40.526820529554534, "bbox_max_lon": 141.54125058970044, "bbox_max_lat": 40.526820529554534, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Area 1 Chikkogai", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2150:point"}
{"feature_id": 606651, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2151, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54794421291032, "bbox_min_lat": 40.52869661907635, "bbox_max_lon": 141.54794421291032, "bbox_max_lat": 40.52869661907635, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Area 2 Chikkogai", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2151:point"}
{"feature_id": 606652, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2152, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.5038354739469, "bbox_min_lat": 40.5271713470344, "bbox_max_lon": 141.5038354739469, "bbox_max_lat": 40.5271713470344, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Area 3 Koyo", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2152:point"}
{"feature_id": 606653, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2153, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51512206201883, "bbox_min_lat": 40.52610363595054, "bbox_max_lon": 141.51512206201883, "bbox_max_lat": 40.52610363595054, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Area 4 Koyo", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2153:point"}
{"feature_id": 606654, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2154, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.54897165355496, "bbox_min_lat": 40.52447661492469, "bbox_max_lon": 141.54897165355496, "bbox_max_lat": 40.52447661492469, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Area 5 Shirogane", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2154:point"}
{"feature_id": 606655, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2155, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55846276366864, "bbox_min_lat": 40.53757809692398, "bbox_max_lon": 141.55846276366864, "bbox_max_lat": 40.53757809692398, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Kabu Island Marine Park", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2155:point"}
{"feature_id": 606656, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2156, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.55759299955852, "bbox_min_lat": 40.5390929653105, "bbox_max_lon": 141.55759299955852, "bbox_max_lat": 40.5390929653105, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Kabu Shima", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2156:point"}
{"feature_id": 606657, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2157, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.52664262172271, "bbox_min_lat": 40.53770010101532, "bbox_max_lon": 141.52664262172271, "bbox_max_lat": 40.53770010101532, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Kawaragi No 1 Wharf [Port Island]", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2157:point"}
{"feature_id": 606658, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2158, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.46334312259916, "bbox_min_lat": 40.5742963770966, "bbox_max_lon": 141.46334312259916, "bbox_max_lat": 40.5742963770966, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Kikyono Industrial Park", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2158:point"}
{"feature_id": 606659, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2159, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.56571079791942, "bbox_min_lat": 40.54243775472137, "bbox_max_lon": 141.56571079791942, "bbox_max_lat": 40.54243775472137, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "O Saki", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2159:point"}
{"feature_id": 606660, "cell_id": 693, "source_relative_path": "03900420\\F\\03910424.F", "source_record_index": 2160, "object_class_id": 198, "object_class": "_texto", "geometry_type": "POINT", "scale_code": "F", "native_scale": 20000, "raw_geotype": 129, "coverage_id": 2200, "bbox_min_lon": 141.51662761860706, "bbox_min_lat": 40.5377102680129, "bbox_max_lon": 141.51662761860706, "bbox_max_lat": 40.5377102680129, "geometry_repaired": 0, "geometry_issue": null, "attributes": {"_texta": {"text": "Pier for Tohoku Port", "prefix": [0, 12, 0]}}, "suggested_source_id": "cm95:1:03900420/F/03910424.F:2160:point"}

View File

@@ -0,0 +1,81 @@
cm95_object_class_id,cm95_object_class,cm95_description,geometry_type,aoi_feature_count,aoi_cell_count,min_native_scale,max_native_scale,available_attributes,target_source_layer,canonical_family,canonical_object_type,chart_render_type,safety_class,mapping_status,notes
176,WRECKS,Wreck,POINT,480,3,20000,200000,"[""CATWRK"", ""VALSOU"", ""WATLEV""]",,,,,,UNMAPPED,
45,DEPCNT,Depth contour,LINE,451,6,20000,20000000,"[""QUAPOS"", ""VALDCO""]",,,,,,UNMAPPED,
44,DEPARE,Depth area,AREA,414,6,20000,20000000,"[""DRVAL1"", ""DRVAL2""]",,,,,,UNMAPPED,
138,SBDARE,Seabed area,POINT,287,3,20000,200000,"[""NATQUA"", ""NATSUR""]",,,,,,UNMAPPED,
139,SLCONS,Shoreline construction,LINE,209,4,20000,1000000,"[""CATSLC"", ""CONDTN"", ""INFORM"", ""OBJNAM"", ""WATLEV""]",,,,,,UNMAPPED,
168,UWTROC,Underwater rock,POINT,176,4,20000,1000000,"[""EXPSOU"", ""VALSOU"", ""WATLEV""]",,,,,,UNMAPPED,
35,COALNE,Coastline,LINE,171,6,20000,20000000,"[""CATCOA""]",,,,,,UNMAPPED,
81,LNDARE,Land area,AREA,159,6,20000,20000000,"[""OBJNAM""]",,,,,,UNMAPPED,
139,SLCONS,Shoreline construction,AREA,119,2,20000,50000,"[""CATSLC"", ""CONDTN"", ""INFORM"", ""NATCON"", ""OBJNAM"", ""WATLEV""]",,,,,,UNMAPPED,
198,_texto,Text,POINT,113,5,20000,3000000,"[""_texta""]",,,,,,UNMAPPED,
86,LIGHTS,Light,POINT,96,4,20000,1000000,"[""CATLIT"", ""COLOUR"", ""HEIGHT"", ""INFORM"", ""LITCHR"", ""OBJNAM"", ""QUAVEM"", ""SECTR1"", ""SECTR2"", ""SIGGRP"", ""SIGPER"", ""SORIND"", ""STATUS"", ""VALNMR""]",,,,,,UNMAPPED,
10,BRTFAC,Berthing facility,POINT,89,2,20000,50000,"[""OBJNAM""]",,,,,,UNMAPPED,
177,ZEMCNT,Zero meter contour,LINE,84,3,20000,200000,[],,,,,,UNMAPPED,
99,OBSTRN,Obstruction,AREA,70,4,20000,1000000,"[""INFORM"", ""VALSOU"", ""WATLEV""]",,,,,,UNMAPPED,
78,ITDARE,Intertidal area,AREA,69,3,20000,200000,"[""NATSUR""]",,,,,,UNMAPPED,
158,TOWERS,Tower,POINT,54,4,20000,1000000,"[""CATTOW"", ""COLOUR"", ""CONVIS"", ""HEIGHT"", ""INFORM"", ""NATCON"", ""QUAPOS"", ""SORIND"", ""VERLEN""]",,,,,,UNMAPPED,
153,TNKCON,Tank,POINT,46,2,20000,50000,[],,,,,,UNMAPPED,
201,_extgn,"Extended navigational aid, generic",POINT,42,2,20000,50000,"[""COLMAR"", ""INFORM""]",,,,,,UNMAPPED,
14,BUAARE,Built-up area,POINT,35,3,20000,1000000,"[""OBJNAM""]",,,,,,UNMAPPED,
33,CHIMNY,Chimney,POINT,35,3,20000,200000,"[""COLOUR"", ""CONVIS"", ""HEIGHT"", ""INFORM""]",,,,,,UNMAPPED,
13,BUISGL,"Building, single",AREA,20,1,20000,20000,"[""CATBUI"", ""INFORM"", ""OBJNAM""]",,,,,,UNMAPPED,
103,PILPNT,Pile,POINT,20,3,20000,200000,"[""INFORM""]",,,,,,UNMAPPED,
60,FSHHAV,Fish haven,POINT,18,3,20000,200000,"[""INFORM""]",,,,,,UNMAPPED,
11,BRIDGE,Bridge,AREA,17,3,20000,200000,"[""CATBRG"", ""INFORM"", ""OBJNAM"", ""VERCLR""]",,,,,,UNMAPPED,
29,CTNARE,Caution area,AREA,16,4,20000,1000000,"[""INFORM""]",,,,,,UNMAPPED,
193,$LINES,Cartographic line,LINE,15,2,20000,50000,"[""$SCODE""]",,,,,,UNMAPPED,
7,BCNLAT,"Beacon, lateral",POINT,15,3,20000,200000,"[""BCNSHP"", ""CATLAM"", ""COLMAR"", ""INFORM"", ""SORIND"", ""VERLEN""]",,,,,,UNMAPPED,
39,CRANES,Crane,POINT,15,2,20000,50000,"[""CATCRN""]",,,,,,UNMAPPED,
111,PRDINS,Production installation,AREA,15,1,20000,20000,"[""INFORM"", ""OBJNAM"", ""PRODCT""]",,,,,,UNMAPPED,
50,DRGARE,Dredged area,AREA,14,1,50000,50000,"[""DRVAL1"", ""INFORM""]",,,,,,UNMAPPED,
29,CTNARE,Caution area,POINT,13,2,20000,50000,"[""INFORM""]",,,,,,UNMAPPED,
9,BCNSPP,"Beacon, special purpose",POINT,12,4,20000,1000000,"[""CATSPM"", ""COLMAR"", ""INFORM"", ""SORIND"", ""VERLEN""]",,,,,,UNMAPPED,
13,BUISGL,"Building, single",POINT,12,3,20000,200000,"[""BUISHP"", ""CATBUI"", ""CONVIS"", ""INFORM"", ""OBJNAM"", ""QUAPOS""]",,,,,,UNMAPPED,
22,CBLSUB,"Cable, submarine",LINE,12,3,20000,200000,"[""CATCBL"", ""STATUS""]",,,,,,UNMAPPED,
111,PRDINS,Production installation,POINT,12,1,20000,20000,"[""INFORM"", ""OBJNAM"", ""PRODCT"", ""QUAPOS""]",,,,,,UNMAPPED,
194,$AREAS,Cartographic area,AREA,11,3,20000,200000,"[""$SCODE""]",,,,,,UNMAPPED,
153,TNKCON,Tank,AREA,11,1,50000,50000,[],,,,,,UNMAPPED,
138,SBDARE,Seabed area,AREA,9,3,20000,200000,"[""NATSUR""]",,,,,,UNMAPPED,
20,BOYSPP,"Buoy, special purpose",POINT,8,2,20000,50000,"[""BOYSHP"", ""CATSPM"", ""COLMAR"", ""INFORM"", ""STATUS""]",,,,,,UNMAPPED,
96,MORFAC,Mooring/Warping facility,POINT,7,1,50000,50000,"[""CATMOR"", ""INFORM""]",,,,,,UNMAPPED,
210,M_PROD,Production information,AREA,7,7,20000,20000000,"[""CPDATE""]",,,,,,UNMAPPED,
130,RIVBNK,River bank,LINE,7,2,20000,200000,[],,,,,,UNMAPPED,
38,CTRPNT,Control point,POINT,6,2,20000,50000,"[""CATCTR"", ""OBJNAM""]",,,,,,UNMAPPED,
99,OBSTRN,Obstruction,POINT,6,3,20000,200000,"[""EXPSOU"", ""INFORM"", ""VALSOU"", ""WATLEV""]",,,,,,UNMAPPED,
217,_m_sor,Source of data,META,6,6,20000,20000000,"[""CSCALE"", ""HORDAT"", ""MARSYS"", ""NMDATE"", ""RECDAT"", ""SORIND"", ""VERDAT"", ""_chcod"", ""_dgdat"", ""_hvdat"", ""_quart"", ""_sorhd"", ""_wgsox"", ""_wgsoy""]",,,,,,UNMAPPED,
191,$COMPS,Compass,POINT,5,2,20000,50000,"[""$ANNCH"", ""$CYEAR"", ""$VARIA""]",,,,,,UNMAPPED,
12,BUIREL,"Building, religious",POINT,5,2,20000,50000,"[""CATREB""]",,,,,,UNMAPPED,
21,CBLOHD,"Cable, overhead",LINE,5,2,20000,50000,"[""CATCBL"", ""QUAVEM"", ""VERCLR""]",,,,,,UNMAPPED,
57,FAIRWY,Fairway,AREA,5,2,20000,50000,"[""OBJNAM""]",,,,,,UNMAPPED,
129,RIVERS,River,AREA,5,2,20000,200000,"[""OBJNAM""]",,,,,,UNMAPPED,
142,SILBUI,Silo,POINT,5,2,20000,50000,"[""INFORM"", ""QUAPOS""]",,,,,,UNMAPPED,
154,TELPHC,Telepheric,LINE,5,2,20000,50000,[],,,,,,UNMAPPED,
11,BRIDGE,Bridge,LINE,4,2,20000,200000,[],,,,,,UNMAPPED,
72,HRBARE,Harbour area (administrative),AREA,4,2,20000,50000,"[""OBJNAM""]",,,,,,UNMAPPED,
95,MONUMT,Monument,POINT,4,2,20000,50000,"[""CONVIS""]",,,,,,UNMAPPED,
140,SISTAT,"Signal station, traffic",POINT,4,2,20000,50000,"[""CATSIT""]",,,,,,UNMAPPED,
147,SOUNDG,Spot soundings,SOUNDING,4,4,20000,1000000,[],,,,,,UNMAPPED,
1,AIRARE,Airport area,POINT,3,2,20000,200000,"[""OBJNAM""]",,,,,,UNMAPPED,
14,BUAARE,Built-up area,AREA,3,1,200000,200000,"[""OBJNAM""]",,,,,,UNMAPPED,
79,LAKARE,Lake,AREA,3,2,20000,200000,"[""OBJNAM""]",,,,,,UNMAPPED,
80,LAKSHR,Lake shore,LINE,3,2,20000,200000,[],,,,,,UNMAPPED,
97,NATARE,National territorial area,AREA,3,3,20000,1000000,"[""INFORM"", ""NATION""]",,,,,,UNMAPPED,
104,PILBOP,Pilot boarding place,POINT,3,2,20000,50000,[],,,,,,UNMAPPED,
143,SLIPWY,Slipway,AREA,3,2,20000,50000,"[""OBJNAM"", ""WATLEV""]",,,,,,UNMAPPED,
155,TESARE,Territorial sea area,AREA,3,3,20000,1000000,"[""INFORM"", ""NATION""]",,,,,,UNMAPPED,
4,ACHARE,Anchorage area,AREA,2,2,20000,50000,"[""CATACH""]",,,,,,UNMAPPED,
36,CONZNE,Contiguous zone,AREA,2,2,200000,1000000,"[""INFORM"", ""NATION"", ""SORIND""]",,,,,,UNMAPPED,
56,EXEZNE,Exclusive economic zone,AREA,2,2,200000,1000000,"[""INFORM"", ""NATION"", ""SORIND""]",,,,,,UNMAPPED,
96,MORFAC,Mooring/Warping facility,AREA,2,1,20000,20000,"[""CATMOR"", ""INFORM""]",,,,,,UNMAPPED,
106,PIPOHD,"Pipeline, overhead",LINE,2,1,20000,20000,[],,,,,,UNMAPPED,
107,PIPSOL,"Pipeline, submarine/on land",LINE,2,2,20000,50000,"[""CATPIP"", ""INFORM"", ""PRODCT""]",,,,,,UNMAPPED,
112,PYLONS,Pylon,POINT,2,1,50000,50000,"[""INFORM""]",,,,,,UNMAPPED,
136,SEAARE,Sea area,AREA,2,1,200000,200000,"[""OBJNAM""]",,,,,,UNMAPPED,
73,HRBFAC,Harbour facility,POINT,1,1,20000,20000,"[""OBJNAM""]",,,,,,UNMAPPED,
73,HRBFAC,Harbour facility,AREA,1,1,20000,20000,"[""CATHAF""]",,,,,,UNMAPPED,
127,RSCSTA,Rescue station,POINT,1,1,20000,20000,[],,,,,,UNMAPPED,
118,RTPBCN,Radar transponder beacon,POINT,1,1,50000,50000,"[""CATRTB"", ""SORIND""]",,,,,,UNMAPPED,
142,SILBUI,Silo,AREA,1,1,20000,20000,[],,,,,,UNMAPPED,
141,SISTAW,"Signal station, warning",POINT,1,1,20000,20000,"[""CATSIW""]",,,,,,UNMAPPED,
176,WRECKS,Wreck,AREA,1,1,20000,20000,"[""CATWRK"", ""VALSOU"", ""WATLEV""]",,,,,,UNMAPPED,
1 cm95_object_class_id cm95_object_class cm95_description geometry_type aoi_feature_count aoi_cell_count min_native_scale max_native_scale available_attributes target_source_layer canonical_family canonical_object_type chart_render_type safety_class mapping_status notes
2 176 WRECKS Wreck POINT 480 3 20000 200000 ["CATWRK", "VALSOU", "WATLEV"] UNMAPPED
3 45 DEPCNT Depth contour LINE 451 6 20000 20000000 ["QUAPOS", "VALDCO"] UNMAPPED
4 44 DEPARE Depth area AREA 414 6 20000 20000000 ["DRVAL1", "DRVAL2"] UNMAPPED
5 138 SBDARE Seabed area POINT 287 3 20000 200000 ["NATQUA", "NATSUR"] UNMAPPED
6 139 SLCONS Shoreline construction LINE 209 4 20000 1000000 ["CATSLC", "CONDTN", "INFORM", "OBJNAM", "WATLEV"] UNMAPPED
7 168 UWTROC Underwater rock POINT 176 4 20000 1000000 ["EXPSOU", "VALSOU", "WATLEV"] UNMAPPED
8 35 COALNE Coastline LINE 171 6 20000 20000000 ["CATCOA"] UNMAPPED
9 81 LNDARE Land area AREA 159 6 20000 20000000 ["OBJNAM"] UNMAPPED
10 139 SLCONS Shoreline construction AREA 119 2 20000 50000 ["CATSLC", "CONDTN", "INFORM", "NATCON", "OBJNAM", "WATLEV"] UNMAPPED
11 198 _texto Text POINT 113 5 20000 3000000 ["_texta"] UNMAPPED
12 86 LIGHTS Light POINT 96 4 20000 1000000 ["CATLIT", "COLOUR", "HEIGHT", "INFORM", "LITCHR", "OBJNAM", "QUAVEM", "SECTR1", "SECTR2", "SIGGRP", "SIGPER", "SORIND", "STATUS", "VALNMR"] UNMAPPED
13 10 BRTFAC Berthing facility POINT 89 2 20000 50000 ["OBJNAM"] UNMAPPED
14 177 ZEMCNT Zero meter contour LINE 84 3 20000 200000 [] UNMAPPED
15 99 OBSTRN Obstruction AREA 70 4 20000 1000000 ["INFORM", "VALSOU", "WATLEV"] UNMAPPED
16 78 ITDARE Intertidal area AREA 69 3 20000 200000 ["NATSUR"] UNMAPPED
17 158 TOWERS Tower POINT 54 4 20000 1000000 ["CATTOW", "COLOUR", "CONVIS", "HEIGHT", "INFORM", "NATCON", "QUAPOS", "SORIND", "VERLEN"] UNMAPPED
18 153 TNKCON Tank POINT 46 2 20000 50000 [] UNMAPPED
19 201 _extgn Extended navigational aid, generic POINT 42 2 20000 50000 ["COLMAR", "INFORM"] UNMAPPED
20 14 BUAARE Built-up area POINT 35 3 20000 1000000 ["OBJNAM"] UNMAPPED
21 33 CHIMNY Chimney POINT 35 3 20000 200000 ["COLOUR", "CONVIS", "HEIGHT", "INFORM"] UNMAPPED
22 13 BUISGL Building, single AREA 20 1 20000 20000 ["CATBUI", "INFORM", "OBJNAM"] UNMAPPED
23 103 PILPNT Pile POINT 20 3 20000 200000 ["INFORM"] UNMAPPED
24 60 FSHHAV Fish haven POINT 18 3 20000 200000 ["INFORM"] UNMAPPED
25 11 BRIDGE Bridge AREA 17 3 20000 200000 ["CATBRG", "INFORM", "OBJNAM", "VERCLR"] UNMAPPED
26 29 CTNARE Caution area AREA 16 4 20000 1000000 ["INFORM"] UNMAPPED
27 193 $LINES Cartographic line LINE 15 2 20000 50000 ["$SCODE"] UNMAPPED
28 7 BCNLAT Beacon, lateral POINT 15 3 20000 200000 ["BCNSHP", "CATLAM", "COLMAR", "INFORM", "SORIND", "VERLEN"] UNMAPPED
29 39 CRANES Crane POINT 15 2 20000 50000 ["CATCRN"] UNMAPPED
30 111 PRDINS Production installation AREA 15 1 20000 20000 ["INFORM", "OBJNAM", "PRODCT"] UNMAPPED
31 50 DRGARE Dredged area AREA 14 1 50000 50000 ["DRVAL1", "INFORM"] UNMAPPED
32 29 CTNARE Caution area POINT 13 2 20000 50000 ["INFORM"] UNMAPPED
33 9 BCNSPP Beacon, special purpose POINT 12 4 20000 1000000 ["CATSPM", "COLMAR", "INFORM", "SORIND", "VERLEN"] UNMAPPED
34 13 BUISGL Building, single POINT 12 3 20000 200000 ["BUISHP", "CATBUI", "CONVIS", "INFORM", "OBJNAM", "QUAPOS"] UNMAPPED
35 22 CBLSUB Cable, submarine LINE 12 3 20000 200000 ["CATCBL", "STATUS"] UNMAPPED
36 111 PRDINS Production installation POINT 12 1 20000 20000 ["INFORM", "OBJNAM", "PRODCT", "QUAPOS"] UNMAPPED
37 194 $AREAS Cartographic area AREA 11 3 20000 200000 ["$SCODE"] UNMAPPED
38 153 TNKCON Tank AREA 11 1 50000 50000 [] UNMAPPED
39 138 SBDARE Seabed area AREA 9 3 20000 200000 ["NATSUR"] UNMAPPED
40 20 BOYSPP Buoy, special purpose POINT 8 2 20000 50000 ["BOYSHP", "CATSPM", "COLMAR", "INFORM", "STATUS"] UNMAPPED
41 96 MORFAC Mooring/Warping facility POINT 7 1 50000 50000 ["CATMOR", "INFORM"] UNMAPPED
42 210 M_PROD Production information AREA 7 7 20000 20000000 ["CPDATE"] UNMAPPED
43 130 RIVBNK River bank LINE 7 2 20000 200000 [] UNMAPPED
44 38 CTRPNT Control point POINT 6 2 20000 50000 ["CATCTR", "OBJNAM"] UNMAPPED
45 99 OBSTRN Obstruction POINT 6 3 20000 200000 ["EXPSOU", "INFORM", "VALSOU", "WATLEV"] UNMAPPED
46 217 _m_sor Source of data META 6 6 20000 20000000 ["CSCALE", "HORDAT", "MARSYS", "NMDATE", "RECDAT", "SORIND", "VERDAT", "_chcod", "_dgdat", "_hvdat", "_quart", "_sorhd", "_wgsox", "_wgsoy"] UNMAPPED
47 191 $COMPS Compass POINT 5 2 20000 50000 ["$ANNCH", "$CYEAR", "$VARIA"] UNMAPPED
48 12 BUIREL Building, religious POINT 5 2 20000 50000 ["CATREB"] UNMAPPED
49 21 CBLOHD Cable, overhead LINE 5 2 20000 50000 ["CATCBL", "QUAVEM", "VERCLR"] UNMAPPED
50 57 FAIRWY Fairway AREA 5 2 20000 50000 ["OBJNAM"] UNMAPPED
51 129 RIVERS River AREA 5 2 20000 200000 ["OBJNAM"] UNMAPPED
52 142 SILBUI Silo POINT 5 2 20000 50000 ["INFORM", "QUAPOS"] UNMAPPED
53 154 TELPHC Telepheric LINE 5 2 20000 50000 [] UNMAPPED
54 11 BRIDGE Bridge LINE 4 2 20000 200000 [] UNMAPPED
55 72 HRBARE Harbour area (administrative) AREA 4 2 20000 50000 ["OBJNAM"] UNMAPPED
56 95 MONUMT Monument POINT 4 2 20000 50000 ["CONVIS"] UNMAPPED
57 140 SISTAT Signal station, traffic POINT 4 2 20000 50000 ["CATSIT"] UNMAPPED
58 147 SOUNDG Spot soundings SOUNDING 4 4 20000 1000000 [] UNMAPPED
59 1 AIRARE Airport area POINT 3 2 20000 200000 ["OBJNAM"] UNMAPPED
60 14 BUAARE Built-up area AREA 3 1 200000 200000 ["OBJNAM"] UNMAPPED
61 79 LAKARE Lake AREA 3 2 20000 200000 ["OBJNAM"] UNMAPPED
62 80 LAKSHR Lake shore LINE 3 2 20000 200000 [] UNMAPPED
63 97 NATARE National territorial area AREA 3 3 20000 1000000 ["INFORM", "NATION"] UNMAPPED
64 104 PILBOP Pilot boarding place POINT 3 2 20000 50000 [] UNMAPPED
65 143 SLIPWY Slipway AREA 3 2 20000 50000 ["OBJNAM", "WATLEV"] UNMAPPED
66 155 TESARE Territorial sea area AREA 3 3 20000 1000000 ["INFORM", "NATION"] UNMAPPED
67 4 ACHARE Anchorage area AREA 2 2 20000 50000 ["CATACH"] UNMAPPED
68 36 CONZNE Contiguous zone AREA 2 2 200000 1000000 ["INFORM", "NATION", "SORIND"] UNMAPPED
69 56 EXEZNE Exclusive economic zone AREA 2 2 200000 1000000 ["INFORM", "NATION", "SORIND"] UNMAPPED
70 96 MORFAC Mooring/Warping facility AREA 2 1 20000 20000 ["CATMOR", "INFORM"] UNMAPPED
71 106 PIPOHD Pipeline, overhead LINE 2 1 20000 20000 [] UNMAPPED
72 107 PIPSOL Pipeline, submarine/on land LINE 2 2 20000 50000 ["CATPIP", "INFORM", "PRODCT"] UNMAPPED
73 112 PYLONS Pylon POINT 2 1 50000 50000 ["INFORM"] UNMAPPED
74 136 SEAARE Sea area AREA 2 1 200000 200000 ["OBJNAM"] UNMAPPED
75 73 HRBFAC Harbour facility POINT 1 1 20000 20000 ["OBJNAM"] UNMAPPED
76 73 HRBFAC Harbour facility AREA 1 1 20000 20000 ["CATHAF"] UNMAPPED
77 127 RSCSTA Rescue station POINT 1 1 20000 20000 [] UNMAPPED
78 118 RTPBCN Radar transponder beacon POINT 1 1 50000 50000 ["CATRTB", "SORIND"] UNMAPPED
79 142 SILBUI Silo AREA 1 1 20000 20000 [] UNMAPPED
80 141 SISTAW Signal station, warning POINT 1 1 20000 20000 ["CATSIW"] UNMAPPED
81 176 WRECKS Wreck AREA 1 1 20000 20000 ["CATWRK", "VALSOU", "WATLEV"] UNMAPPED

View File

@@ -0,0 +1,627 @@
{
"version": "v2.0",
"generated_at": "2026-09-03T08:30:30",
"database": "cm93_chart",
"dataset_id": 1,
"read_only": true,
"aoi": {
"tile": {
"z": 10,
"x": 914,
"y": 385
},
"bbox_wgs84": {
"min_lon": 141.328125,
"min_lat": 40.44694705960049,
"max_lon": 141.6796875,
"max_lat": 40.71395582628604
},
"known_navsea_samples_inside": [
"z10/914/385",
"z11/1828-1829/770-771",
"z12/3656-3659/1540-1543"
]
},
"dataset": {
"id": 1,
"source_type": "CM93",
"name": "CM93JAPAN",
"source_root": "D:\\Ship\\CM93V2\\CM93JAPAN",
"parser_version": "0.2.0",
"normalized_srid": 4326
},
"warnings": [],
"counts": {
"aoi_cells": 7,
"aoi_spatial_features": 3605,
"object_class_geometry_groups": 80,
"attribute_group_count": 177,
"sample_feature_count": 600,
"related_sample_count": 0
},
"geometry_counts": [
{
"geometry_type": "POINT",
"feature_count": 1632
},
{
"geometry_type": "LINE",
"feature_count": 970
},
{
"geometry_type": "AREA",
"feature_count": 993
},
{
"geometry_type": "SOUNDING",
"feature_count": 4
},
{
"geometry_type": "META",
"feature_count": 6
}
],
"object_classes": [
{
"object_class_id": 176,
"object_class": "WRECKS",
"geometry_type": "POINT",
"feature_count": 480,
"description": "Wreck"
},
{
"object_class_id": 45,
"object_class": "DEPCNT",
"geometry_type": "LINE",
"feature_count": 451,
"description": "Depth contour"
},
{
"object_class_id": 44,
"object_class": "DEPARE",
"geometry_type": "AREA",
"feature_count": 414,
"description": "Depth area"
},
{
"object_class_id": 138,
"object_class": "SBDARE",
"geometry_type": "POINT",
"feature_count": 287,
"description": "Seabed area"
},
{
"object_class_id": 139,
"object_class": "SLCONS",
"geometry_type": "LINE",
"feature_count": 209,
"description": "Shoreline construction"
},
{
"object_class_id": 168,
"object_class": "UWTROC",
"geometry_type": "POINT",
"feature_count": 176,
"description": "Underwater rock"
},
{
"object_class_id": 35,
"object_class": "COALNE",
"geometry_type": "LINE",
"feature_count": 171,
"description": "Coastline"
},
{
"object_class_id": 81,
"object_class": "LNDARE",
"geometry_type": "AREA",
"feature_count": 159,
"description": "Land area"
},
{
"object_class_id": 139,
"object_class": "SLCONS",
"geometry_type": "AREA",
"feature_count": 119,
"description": "Shoreline construction"
},
{
"object_class_id": 198,
"object_class": "_texto",
"geometry_type": "POINT",
"feature_count": 113,
"description": "Text"
},
{
"object_class_id": 86,
"object_class": "LIGHTS",
"geometry_type": "POINT",
"feature_count": 96,
"description": "Light"
},
{
"object_class_id": 10,
"object_class": "BRTFAC",
"geometry_type": "POINT",
"feature_count": 89,
"description": "Berthing facility"
},
{
"object_class_id": 177,
"object_class": "ZEMCNT",
"geometry_type": "LINE",
"feature_count": 84,
"description": "Zero meter contour"
},
{
"object_class_id": 99,
"object_class": "OBSTRN",
"geometry_type": "AREA",
"feature_count": 70,
"description": "Obstruction"
},
{
"object_class_id": 78,
"object_class": "ITDARE",
"geometry_type": "AREA",
"feature_count": 69,
"description": "Intertidal area"
},
{
"object_class_id": 158,
"object_class": "TOWERS",
"geometry_type": "POINT",
"feature_count": 54,
"description": "Tower"
},
{
"object_class_id": 153,
"object_class": "TNKCON",
"geometry_type": "POINT",
"feature_count": 46,
"description": "Tank"
},
{
"object_class_id": 201,
"object_class": "_extgn",
"geometry_type": "POINT",
"feature_count": 42,
"description": "Extended navigational aid, generic"
},
{
"object_class_id": 14,
"object_class": "BUAARE",
"geometry_type": "POINT",
"feature_count": 35,
"description": "Built-up area"
},
{
"object_class_id": 33,
"object_class": "CHIMNY",
"geometry_type": "POINT",
"feature_count": 35,
"description": "Chimney"
},
{
"object_class_id": 13,
"object_class": "BUISGL",
"geometry_type": "AREA",
"feature_count": 20,
"description": "Building, single"
},
{
"object_class_id": 103,
"object_class": "PILPNT",
"geometry_type": "POINT",
"feature_count": 20,
"description": "Pile"
},
{
"object_class_id": 60,
"object_class": "FSHHAV",
"geometry_type": "POINT",
"feature_count": 18,
"description": "Fish haven"
},
{
"object_class_id": 11,
"object_class": "BRIDGE",
"geometry_type": "AREA",
"feature_count": 17,
"description": "Bridge"
},
{
"object_class_id": 29,
"object_class": "CTNARE",
"geometry_type": "AREA",
"feature_count": 16,
"description": "Caution area"
},
{
"object_class_id": 193,
"object_class": "$LINES",
"geometry_type": "LINE",
"feature_count": 15,
"description": "Cartographic line"
},
{
"object_class_id": 7,
"object_class": "BCNLAT",
"geometry_type": "POINT",
"feature_count": 15,
"description": "Beacon, lateral"
},
{
"object_class_id": 39,
"object_class": "CRANES",
"geometry_type": "POINT",
"feature_count": 15,
"description": "Crane"
},
{
"object_class_id": 111,
"object_class": "PRDINS",
"geometry_type": "AREA",
"feature_count": 15,
"description": "Production installation"
},
{
"object_class_id": 50,
"object_class": "DRGARE",
"geometry_type": "AREA",
"feature_count": 14,
"description": "Dredged area"
},
{
"object_class_id": 29,
"object_class": "CTNARE",
"geometry_type": "POINT",
"feature_count": 13,
"description": "Caution area"
},
{
"object_class_id": 9,
"object_class": "BCNSPP",
"geometry_type": "POINT",
"feature_count": 12,
"description": "Beacon, special purpose"
},
{
"object_class_id": 13,
"object_class": "BUISGL",
"geometry_type": "POINT",
"feature_count": 12,
"description": "Building, single"
},
{
"object_class_id": 22,
"object_class": "CBLSUB",
"geometry_type": "LINE",
"feature_count": 12,
"description": "Cable, submarine"
},
{
"object_class_id": 111,
"object_class": "PRDINS",
"geometry_type": "POINT",
"feature_count": 12,
"description": "Production installation"
},
{
"object_class_id": 194,
"object_class": "$AREAS",
"geometry_type": "AREA",
"feature_count": 11,
"description": "Cartographic area"
},
{
"object_class_id": 153,
"object_class": "TNKCON",
"geometry_type": "AREA",
"feature_count": 11,
"description": "Tank"
},
{
"object_class_id": 138,
"object_class": "SBDARE",
"geometry_type": "AREA",
"feature_count": 9,
"description": "Seabed area"
},
{
"object_class_id": 20,
"object_class": "BOYSPP",
"geometry_type": "POINT",
"feature_count": 8,
"description": "Buoy, special purpose"
},
{
"object_class_id": 96,
"object_class": "MORFAC",
"geometry_type": "POINT",
"feature_count": 7,
"description": "Mooring/Warping facility"
},
{
"object_class_id": 210,
"object_class": "M_PROD",
"geometry_type": "AREA",
"feature_count": 7,
"description": "Production information"
},
{
"object_class_id": 130,
"object_class": "RIVBNK",
"geometry_type": "LINE",
"feature_count": 7,
"description": "River bank"
},
{
"object_class_id": 38,
"object_class": "CTRPNT",
"geometry_type": "POINT",
"feature_count": 6,
"description": "Control point"
},
{
"object_class_id": 99,
"object_class": "OBSTRN",
"geometry_type": "POINT",
"feature_count": 6,
"description": "Obstruction"
},
{
"object_class_id": 217,
"object_class": "_m_sor",
"geometry_type": "META",
"feature_count": 6,
"description": "Source of data"
},
{
"object_class_id": 191,
"object_class": "$COMPS",
"geometry_type": "POINT",
"feature_count": 5,
"description": "Compass"
},
{
"object_class_id": 12,
"object_class": "BUIREL",
"geometry_type": "POINT",
"feature_count": 5,
"description": "Building, religious"
},
{
"object_class_id": 21,
"object_class": "CBLOHD",
"geometry_type": "LINE",
"feature_count": 5,
"description": "Cable, overhead"
},
{
"object_class_id": 57,
"object_class": "FAIRWY",
"geometry_type": "AREA",
"feature_count": 5,
"description": "Fairway"
},
{
"object_class_id": 129,
"object_class": "RIVERS",
"geometry_type": "AREA",
"feature_count": 5,
"description": "River"
},
{
"object_class_id": 142,
"object_class": "SILBUI",
"geometry_type": "POINT",
"feature_count": 5,
"description": "Silo"
},
{
"object_class_id": 154,
"object_class": "TELPHC",
"geometry_type": "LINE",
"feature_count": 5,
"description": "Telepheric"
},
{
"object_class_id": 11,
"object_class": "BRIDGE",
"geometry_type": "LINE",
"feature_count": 4,
"description": "Bridge"
},
{
"object_class_id": 72,
"object_class": "HRBARE",
"geometry_type": "AREA",
"feature_count": 4,
"description": "Harbour area (administrative)"
},
{
"object_class_id": 95,
"object_class": "MONUMT",
"geometry_type": "POINT",
"feature_count": 4,
"description": "Monument"
},
{
"object_class_id": 140,
"object_class": "SISTAT",
"geometry_type": "POINT",
"feature_count": 4,
"description": "Signal station, traffic"
},
{
"object_class_id": 147,
"object_class": "SOUNDG",
"geometry_type": "SOUNDING",
"feature_count": 4,
"description": "Spot soundings"
},
{
"object_class_id": 1,
"object_class": "AIRARE",
"geometry_type": "POINT",
"feature_count": 3,
"description": "Airport area"
},
{
"object_class_id": 14,
"object_class": "BUAARE",
"geometry_type": "AREA",
"feature_count": 3,
"description": "Built-up area"
},
{
"object_class_id": 79,
"object_class": "LAKARE",
"geometry_type": "AREA",
"feature_count": 3,
"description": "Lake"
},
{
"object_class_id": 80,
"object_class": "LAKSHR",
"geometry_type": "LINE",
"feature_count": 3,
"description": "Lake shore"
},
{
"object_class_id": 97,
"object_class": "NATARE",
"geometry_type": "AREA",
"feature_count": 3,
"description": "National territorial area"
},
{
"object_class_id": 104,
"object_class": "PILBOP",
"geometry_type": "POINT",
"feature_count": 3,
"description": "Pilot boarding place"
},
{
"object_class_id": 143,
"object_class": "SLIPWY",
"geometry_type": "AREA",
"feature_count": 3,
"description": "Slipway"
},
{
"object_class_id": 155,
"object_class": "TESARE",
"geometry_type": "AREA",
"feature_count": 3,
"description": "Territorial sea area"
},
{
"object_class_id": 4,
"object_class": "ACHARE",
"geometry_type": "AREA",
"feature_count": 2,
"description": "Anchorage area"
},
{
"object_class_id": 36,
"object_class": "CONZNE",
"geometry_type": "AREA",
"feature_count": 2,
"description": "Contiguous zone"
},
{
"object_class_id": 56,
"object_class": "EXEZNE",
"geometry_type": "AREA",
"feature_count": 2,
"description": "Exclusive economic zone"
},
{
"object_class_id": 96,
"object_class": "MORFAC",
"geometry_type": "AREA",
"feature_count": 2,
"description": "Mooring/Warping facility"
},
{
"object_class_id": 106,
"object_class": "PIPOHD",
"geometry_type": "LINE",
"feature_count": 2,
"description": "Pipeline, overhead"
},
{
"object_class_id": 107,
"object_class": "PIPSOL",
"geometry_type": "LINE",
"feature_count": 2,
"description": "Pipeline, submarine/on land"
},
{
"object_class_id": 112,
"object_class": "PYLONS",
"geometry_type": "POINT",
"feature_count": 2,
"description": "Pylon"
},
{
"object_class_id": 136,
"object_class": "SEAARE",
"geometry_type": "AREA",
"feature_count": 2,
"description": "Sea area"
},
{
"object_class_id": 73,
"object_class": "HRBFAC",
"geometry_type": "POINT",
"feature_count": 1,
"description": "Harbour facility"
},
{
"object_class_id": 73,
"object_class": "HRBFAC",
"geometry_type": "AREA",
"feature_count": 1,
"description": "Harbour facility"
},
{
"object_class_id": 127,
"object_class": "RSCSTA",
"geometry_type": "POINT",
"feature_count": 1,
"description": "Rescue station"
},
{
"object_class_id": 118,
"object_class": "RTPBCN",
"geometry_type": "POINT",
"feature_count": 1,
"description": "Radar transponder beacon"
},
{
"object_class_id": 142,
"object_class": "SILBUI",
"geometry_type": "AREA",
"feature_count": 1,
"description": "Silo"
},
{
"object_class_id": 141,
"object_class": "SISTAW",
"geometry_type": "POINT",
"feature_count": 1,
"description": "Signal station, warning"
},
{
"object_class_id": 176,
"object_class": "WRECKS",
"geometry_type": "AREA",
"feature_count": 1,
"description": "Wreck"
}
],
"next_step": "Use AOI_对象映射准备表_v1.csv + 属性值域汇总_v1.csv to author cm95_to_navsea_v1.yaml."
}

View File

@@ -0,0 +1,68 @@
object_class_id,object_class,geometry_code,display_code,description,raw_line
1,AIRARE,PA,6,Airport area,AIRARE|1|PA|6|Airport area|CATAIR|CONDTN|CONVIS|NATCON|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
4,ACHARE,PA,6,Anchorage area,ACHARE|4|PA|6|Anchorage area|CATACH|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
7,BCNLAT,P,8,"Beacon, lateral","BCNLAT|7|P|8|Beacon, lateral|BCNSHP|CATLAM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
9,BCNSPP,P,8,"Beacon, special purpose","BCNSPP|9|P|8|Beacon, special purpose|BCNSHP|CATSPM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
10,BRTFAC,PLA,6,Berthing facility,BRTFAC|10|PLA|6|Berthing facility|CONDTN|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|STATUS|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
11,BRIDGE,PLA,6,Bridge,BRIDGE|11|PLA|6|Bridge|CATBRG|COLOUR|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|HORCLR|NATCON|NOBJNM|OBJNAM|QUAVEM|VERCCL|VERCLR|VERCOP|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
12,BUIREL,PA,6,"Building, religious","BUIREL|12|PA|6|Building, religious|BUISHP|CATREB|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND|"
13,BUISGL,PA,6,"Building, single","BUISGL|13|PA|6|Building, single|BUISHP|CATBUI|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
14,BUAARE,PA,6,Built-up area,BUAARE|14|PA|6|Built-up area|CATBUA|CONDTN|CONRAD|CONVIS|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
20,BOYSPP,P,8,"Buoy, special purpose","BOYSPP|20|P|8|Buoy, special purpose|BOYSHP|CATSPM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
21,CBLOHD,L,7,"Cable, overhead","CBLOHD|21|L|7|Cable, overhead|CATCBL|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|QUAVEM|STATUS|VERCLR|VERCSA|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
22,CBLSUB,L,7,"Cable, submarine","CBLSUB|22|L|7|Cable, submarine|BURDEP|CATCBL|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
29,CTNARE,PA,6,Caution area,CTNARE|29|PA|6|Caution area|DATEND|DATSTA|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
33,CHIMNY,PA,6,Chimney,CHIMNY|33|PA|6|Chimney|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
35,COALNE,L,7,Coastline,COALNE|35|L|7|Coastline|CATCOA|CONRAD|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
36,CONZNE,A,5,Contiguous zone,CONZNE|36|A|5|Contiguous zone|DATEND|DATSTA|NATION|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
38,CTRPNT,P,8,Control point,CTRPNT|38|P|8|Control point|CATCTR|DATEND|DATSTA|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
39,CRANES,PA,6,Crane,CRANES|39|PA|6|Crane|CATCRN|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|LIFCAP|NOBJNM|OBJNAM|ORIENT|QUAVEM|RADIUS|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
44,DEPARE,A,1,Depth area,DEPARE|44|A|1|Depth area|DRVAL1|DRVAL2|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
45,DEPCNT,L,7,Depth contour,DEPCNT|45|L|7|Depth contour|VALDCO|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
50,DRGARE,A,5,Dredged area,DRGARE|50|A|5|Dredged area|DRVAL1|DRVAL2|NOBJNM|OBJNAM|QUASOU|TECSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
56,EXEZNE,A,5,Exclusive economic zone,EXEZNE|56|A|5|Exclusive economic zone|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
57,FAIRWY,A,5,Fairway,FAIRWY|57|A|5|Fairway|DATEND|DATSTA|DRVAL1|DRVAL2|NOBJNM|OBJNAM|QUASOU|STATUS|TECSOU|TRAFIC|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
60,FSHHAV,PA,6,Fish haven,FSHHAV|60|PA|6|Fish haven|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
72,HRBARE,A,5,Harbour area (administrative),HRBARE|72|A|5|Harbour area (administrative)|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
73,HRBFAC,PA,6,Harbour facility,HRBFAC|73|PA|6|Harbour facility|CATHAF|CONDTN|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
78,ITDARE,PLA,1,Intertidal area,ITDARE|78|PLA|1|Intertidal area|NATQUA|NATSUR|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
79,LAKARE,A,1,Lake,LAKARE|79|A|1|Lake|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
80,LAKSHR,L,7,Lake shore,LAKSHR|80|L|7|Lake shore|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
81,LNDARE,PA,1,Land area,LNDARE|81|PA|1|Land area|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
86,LIGHTS,P,8,Light,LIGHTS|86|P|8|Light|CATLIT|COLOUR|DATEND|DATSTA|EXCLIT|HEIGHT|LITCHR|LITVIS|MARSYS|NOBJNM|OBJNAM|ORIENT|PEREND|PERSTA|QUAVEM|SECTR1|SECTR2|SIGGRP|SIGPER|SIGSEQ|STATUS|SUPLIT|VALNMR|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
95,MONUMT,P,8,Monument,MONUMT|95|P|8|Monument|BUISHP|CATMNT|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
96,MORFAC,PA,6,Mooring/Warping facility,MORFAC|96|PA|6|Mooring/Warping facility|CATMOR|COLOUR|CONDTN|CONRAD|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
97,NATARE,A,5,National territorial area,NATARE|97|A|5|National territorial area|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
99,OBSTRN,PA,6,Obstruction,OBSTRN|99|PA|6|Obstruction|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
103,PILPNT,P,8,Pile,PILPNT|103|P|8|Pile|CATPLE|CONDTN|DATEND|DATSTA|EXPSOU|HEIGHT|QUASOU|QUAVEM|TECSOU|VALSOU|VERDAT|VERLEN|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
104,PILBOP,PA,8,Pilot boarding place,PILBOP|104|PA|8|Pilot boarding place|CATPIL|COMCHA|DATEND|DATSTA|NOBJNM|NPLDST|OBJNAM|PILDST|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
106,PIPOHD,L,7,"Pipeline, overhead","PIPOHD|106|L|7|Pipeline, overhead|CATPIP|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|PRODCT|QUAVEM|STATUS|VERCLR|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
107,PIPSOL,L,7,"Pipeline, submarine/on land","PIPSOL|107|L|7|Pipeline, submarine/on land|BURDEP|CATPIP|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|PRODCT|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
111,PRDINS,PA,6,Production installation,PRDINS|111|PA|6|Production installation|CATPRI|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|EXPSOU|HEIGHT|NOBJNM|OBJNAM|PRODCT|QUASOU|QUAVEM|STATUS|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
112,PYLONS,PA,6,Pylon,PYLONS|112|PA|6|Pylon|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
118,RTPBCN,P,8,Radar transponder beacon,RTPBCN|118|P|8|Radar transponder beacon|CATRTB|DATEND|DATSTA|NOBJNM|OBJNAM|RADWAL|SECTR1|SECTR2|SIGGRP|SIGSEQ|STATUS|VALMXR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
127,RSCSTA,P,8,Rescue station,RSCSTA|127|P|8|Rescue station|CATRSC|DATEND|DATSTA|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
129,RIVERS,LA,1,River,RIVERS|129|LA|1|River|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
130,RIVBNK,L,7,River bank,RIVBNK|130|L|7|River bank|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
136,SEAARE,A,5,Sea area,SEAARE|136|A|5|Sea area|CATSEA|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
138,SBDARE,PA,6,Seabed area,SBDARE|138|PA|6|Seabed area|COLOUR|NATQUA|NATSUR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
139,SLCONS,LA,7,Shoreline construction,SLCONS|139|LA|7|Shoreline construction|CATSLC|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|STATUS|VERDAT|VERLEN|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
140,SISTAT,P,8,"Signal station, traffic","SISTAT|140|P|8|Signal station, traffic|CATSIT|COMCHA|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
141,SISTAW,P,8,"Signal station, warning","SISTAW|141|P|8|Signal station, warning|CATSIW|COMCHA|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
142,SILBUI,PA,6,Silo,SILBUI|142|PA|6|Silo|BUISHP|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|PRODCT|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
143,SLIPWY,LA,6,Slipway,SLIPWY|143|LA|6|Slipway|CONDTN|HORCLR|HORLEN|HORWID|NATCON|NOBJNM|OBJNAM|STATUS|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
147,SOUNDG,S,7,Spot soundings,SOUNDG|147|S|7|Spot soundings|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
153,TNKCON,PA,6,Tank,TNKCON|153|PA|6|Tank|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NOBJNM|OBJNAM|PRODCT|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
154,TELPHC,L,7,Telepheric,TELPHC|154|L|7|Telepheric|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|LIFCAP|NOBJNM|OBJNAM|QUAVEM|STATUS|VERCLR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
155,TESARE,A,5,Territorial sea area,TESARE|155|A|5|Territorial sea area|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
158,TOWERS,PA,6,Tower,TOWERS|158|PA|6|Tower|CATTOW|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
168,UWTROC,P,8,Underwater rock,UWTROC|168|P|8|Underwater rock|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
176,WRECKS,PA,8,Wreck,WRECKS|176|PA|8|Wreck|CATWRK|CONRAD|CONVIS|EXPSOU|HEIGHT|NOBJNM|OBJNAM|QUASOU|QUAVEM|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
177,ZEMCNT,L,7,Zero meter contour,ZEMCNT|177|L|7|Zero meter contour|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
191,$COMPS,P,8,Compass,$COMPS|191|P|8|Compass|$CSIZE|$VARIA|$CYEAR|$ANNCH|SCAMIN|SCAMAX
193,$LINES,L,7,Cartographic line,$LINES|193|L|7|Cartographic line|$SCODE|SCAMIN|SCAMAX
194,$AREAS,A,5,Cartographic area,$AREAS|194|A|5|Cartographic area|$SCODE|$ROTAT|SCAMIN|SCAMAX
198,_texto,P,8,Text,_texto|198|P|8|Text|$JUSTH|$JUSTV|$SPACE|$CHARS|$COLOR|$ROTAT|_texta|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
201,_extgn,P,8,"Extended navigational aid, generic","_extgn|201|P|8|Extended navigational aid, generic|CATCAM|CATLAM|COLMAR|MARSYS|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND"
210,M_PROD,A,0,Production information,M_PROD|210|A|0|Production information|AGENCY|CPDATE|NMDATE|PRCTRY|INFORM|NINFOM|RECDAT|RECIND|SORDAT|SORIND
217,_m_sor,A,0,Source of data,_m_sor|217|A|0|Source of data|CSCALE|DUNITS|HUNITS|HORACC|NMDATE|HORDAT|_sorhd|_wgsox|_wgsoy|SORDAT|SORIND|VERACC|VERDAT|_hvdat|MARSYS|_chcod|_dgdat|_quart|INFORM|NINFOM|RECDAT|RECIND
1 object_class_id object_class geometry_code display_code description raw_line
2 1 AIRARE PA 6 Airport area AIRARE|1|PA|6|Airport area|CATAIR|CONDTN|CONVIS|NATCON|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
3 4 ACHARE PA 6 Anchorage area ACHARE|4|PA|6|Anchorage area|CATACH|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
4 7 BCNLAT P 8 Beacon, lateral BCNLAT|7|P|8|Beacon, lateral|BCNSHP|CATLAM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
5 9 BCNSPP P 8 Beacon, special purpose BCNSPP|9|P|8|Beacon, special purpose|BCNSHP|CATSPM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
6 10 BRTFAC PLA 6 Berthing facility BRTFAC|10|PLA|6|Berthing facility|CONDTN|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|STATUS|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
7 11 BRIDGE PLA 6 Bridge BRIDGE|11|PLA|6|Bridge|CATBRG|COLOUR|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|HORCLR|NATCON|NOBJNM|OBJNAM|QUAVEM|VERCCL|VERCLR|VERCOP|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
8 12 BUIREL PA 6 Building, religious BUIREL|12|PA|6|Building, religious|BUISHP|CATREB|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND|
9 13 BUISGL PA 6 Building, single BUISGL|13|PA|6|Building, single|BUISHP|CATBUI|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
10 14 BUAARE PA 6 Built-up area BUAARE|14|PA|6|Built-up area|CATBUA|CONDTN|CONRAD|CONVIS|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
11 20 BOYSPP P 8 Buoy, special purpose BOYSPP|20|P|8|Buoy, special purpose|BOYSHP|CATSPM|COLMAR|COLPAT|CONRAD|DATEND|DATSTA|MARSYS|NOBJNM|OBJNAM|PEREND|PERSTA|QUAVEM|STATUS|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
12 21 CBLOHD L 7 Cable, overhead CBLOHD|21|L|7|Cable, overhead|CATCBL|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|QUAVEM|STATUS|VERCLR|VERCSA|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
13 22 CBLSUB L 7 Cable, submarine CBLSUB|22|L|7|Cable, submarine|BURDEP|CATCBL|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
14 29 CTNARE PA 6 Caution area CTNARE|29|PA|6|Caution area|DATEND|DATSTA|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
15 33 CHIMNY PA 6 Chimney CHIMNY|33|PA|6|Chimney|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
16 35 COALNE L 7 Coastline COALNE|35|L|7|Coastline|CATCOA|CONRAD|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
17 36 CONZNE A 5 Contiguous zone CONZNE|36|A|5|Contiguous zone|DATEND|DATSTA|NATION|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
18 38 CTRPNT P 8 Control point CTRPNT|38|P|8|Control point|CATCTR|DATEND|DATSTA|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
19 39 CRANES PA 6 Crane CRANES|39|PA|6|Crane|CATCRN|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|LIFCAP|NOBJNM|OBJNAM|ORIENT|QUAVEM|RADIUS|STATUS|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
20 44 DEPARE A 1 Depth area DEPARE|44|A|1|Depth area|DRVAL1|DRVAL2|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
21 45 DEPCNT L 7 Depth contour DEPCNT|45|L|7|Depth contour|VALDCO|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
22 50 DRGARE A 5 Dredged area DRGARE|50|A|5|Dredged area|DRVAL1|DRVAL2|NOBJNM|OBJNAM|QUASOU|TECSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
23 56 EXEZNE A 5 Exclusive economic zone EXEZNE|56|A|5|Exclusive economic zone|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
24 57 FAIRWY A 5 Fairway FAIRWY|57|A|5|Fairway|DATEND|DATSTA|DRVAL1|DRVAL2|NOBJNM|OBJNAM|QUASOU|STATUS|TECSOU|TRAFIC|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
25 60 FSHHAV PA 6 Fish haven FSHHAV|60|PA|6|Fish haven|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
26 72 HRBARE A 5 Harbour area (administrative) HRBARE|72|A|5|Harbour area (administrative)|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
27 73 HRBFAC PA 6 Harbour facility HRBFAC|73|PA|6|Harbour facility|CATHAF|CONDTN|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
28 78 ITDARE PLA 1 Intertidal area ITDARE|78|PLA|1|Intertidal area|NATQUA|NATSUR|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
29 79 LAKARE A 1 Lake LAKARE|79|A|1|Lake|HEIGHT|NOBJNM|OBJNAM|QUAVEM|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
30 80 LAKSHR L 7 Lake shore LAKSHR|80|L|7|Lake shore|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
31 81 LNDARE PA 1 Land area LNDARE|81|PA|1|Land area|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
32 86 LIGHTS P 8 Light LIGHTS|86|P|8|Light|CATLIT|COLOUR|DATEND|DATSTA|EXCLIT|HEIGHT|LITCHR|LITVIS|MARSYS|NOBJNM|OBJNAM|ORIENT|PEREND|PERSTA|QUAVEM|SECTR1|SECTR2|SIGGRP|SIGPER|SIGSEQ|STATUS|SUPLIT|VALNMR|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
33 95 MONUMT P 8 Monument MONUMT|95|P|8|Monument|BUISHP|CATMNT|COLOUR|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
34 96 MORFAC PA 6 Mooring/Warping facility MORFAC|96|PA|6|Mooring/Warping facility|CATMOR|COLOUR|CONDTN|CONRAD|DATEND|DATSTA|NATCON|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
35 97 NATARE A 5 National territorial area NATARE|97|A|5|National territorial area|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
36 99 OBSTRN PA 6 Obstruction OBSTRN|99|PA|6|Obstruction|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
37 103 PILPNT P 8 Pile PILPNT|103|P|8|Pile|CATPLE|CONDTN|DATEND|DATSTA|EXPSOU|HEIGHT|QUASOU|QUAVEM|TECSOU|VALSOU|VERDAT|VERLEN|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
38 104 PILBOP PA 8 Pilot boarding place PILBOP|104|PA|8|Pilot boarding place|CATPIL|COMCHA|DATEND|DATSTA|NOBJNM|NPLDST|OBJNAM|PILDST|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
39 106 PIPOHD L 7 Pipeline, overhead PIPOHD|106|L|7|Pipeline, overhead|CATPIP|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|PRODCT|QUAVEM|STATUS|VERCLR|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
40 107 PIPSOL L 7 Pipeline, submarine/on land PIPSOL|107|L|7|Pipeline, submarine/on land|BURDEP|CATPIP|CONDTN|DATEND|DATSTA|NOBJNM|OBJNAM|PRODCT|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
41 111 PRDINS PA 6 Production installation PRDINS|111|PA|6|Production installation|CATPRI|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|EXPSOU|HEIGHT|NOBJNM|OBJNAM|PRODCT|QUASOU|QUAVEM|STATUS|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
42 112 PYLONS PA 6 Pylon PYLONS|112|PA|6|Pylon|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
43 118 RTPBCN P 8 Radar transponder beacon RTPBCN|118|P|8|Radar transponder beacon|CATRTB|DATEND|DATSTA|NOBJNM|OBJNAM|RADWAL|SECTR1|SECTR2|SIGGRP|SIGSEQ|STATUS|VALMXR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
44 127 RSCSTA P 8 Rescue station RSCSTA|127|P|8|Rescue station|CATRSC|DATEND|DATSTA|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
45 129 RIVERS LA 1 River RIVERS|129|LA|1|River|NOBJNM|OBJNAM|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
46 130 RIVBNK L 7 River bank RIVBNK|130|L|7|River bank|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
47 136 SEAARE A 5 Sea area SEAARE|136|A|5|Sea area|CATSEA|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
48 138 SBDARE PA 6 Seabed area SBDARE|138|PA|6|Seabed area|COLOUR|NATQUA|NATSUR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
49 139 SLCONS LA 7 Shoreline construction SLCONS|139|LA|7|Shoreline construction|CATSLC|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|STATUS|VERDAT|VERLEN|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
50 140 SISTAT P 8 Signal station, traffic SISTAT|140|P|8|Signal station, traffic|CATSIT|COMCHA|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
51 141 SISTAW P 8 Signal station, warning SISTAW|141|P|8|Signal station, warning|CATSIW|COMCHA|DATEND|DATSTA|NOBJNM|OBJNAM|PEREND|PERSTA|STATUS|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
52 142 SILBUI PA 6 Silo SILBUI|142|PA|6|Silo|BUISHP|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|PRODCT|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
53 143 SLIPWY LA 6 Slipway SLIPWY|143|LA|6|Slipway|CONDTN|HORCLR|HORLEN|HORWID|NATCON|NOBJNM|OBJNAM|STATUS|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
54 147 SOUNDG S 7 Spot soundings SOUNDG|147|S|7|Spot soundings|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
55 153 TNKCON PA 6 Tank TNKCON|153|PA|6|Tank|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NOBJNM|OBJNAM|PRODCT|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
56 154 TELPHC L 7 Telepheric TELPHC|154|L|7|Telepheric|CONDTN|CONRAD|CONVIS|DATEND|DATSTA|LIFCAP|NOBJNM|OBJNAM|QUAVEM|STATUS|VERCLR|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
57 155 TESARE A 5 Territorial sea area TESARE|155|A|5|Territorial sea area|NATION|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
58 158 TOWERS PA 6 Tower TOWERS|158|PA|6|Tower|CATTOW|COLOUR|COLPAT|CONDTN|CONRAD|CONVIS|HEIGHT|NATCON|NOBJNM|OBJNAM|QUAVEM|VERDAT|VERLEN|INFORM|NINFOM|PICREP|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
59 168 UWTROC P 8 Underwater rock UWTROC|168|P|8|Underwater rock|EXPSOU|NOBJNM|OBJNAM|QUASOU|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
60 176 WRECKS PA 8 Wreck WRECKS|176|PA|8|Wreck|CATWRK|CONRAD|CONVIS|EXPSOU|HEIGHT|NOBJNM|OBJNAM|QUASOU|QUAVEM|TECSOU|VALSOU|VERDAT|WATLEV|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
61 177 ZEMCNT L 7 Zero meter contour ZEMCNT|177|L|7|Zero meter contour|VERDAT|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
62 191 $COMPS P 8 Compass $COMPS|191|P|8|Compass|$CSIZE|$VARIA|$CYEAR|$ANNCH|SCAMIN|SCAMAX
63 193 $LINES L 7 Cartographic line $LINES|193|L|7|Cartographic line|$SCODE|SCAMIN|SCAMAX
64 194 $AREAS A 5 Cartographic area $AREAS|194|A|5|Cartographic area|$SCODE|$ROTAT|SCAMIN|SCAMAX
65 198 _texto P 8 Text _texto|198|P|8|Text|$JUSTH|$JUSTV|$SPACE|$CHARS|$COLOR|$ROTAT|_texta|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
66 201 _extgn P 8 Extended navigational aid, generic _extgn|201|P|8|Extended navigational aid, generic|CATCAM|CATLAM|COLMAR|MARSYS|NOBJNM|OBJNAM|INFORM|NINFOM|SCAMAX|SCAMIN|RECDAT|RECIND|SORDAT|SORIND
67 210 M_PROD A 0 Production information M_PROD|210|A|0|Production information|AGENCY|CPDATE|NMDATE|PRCTRY|INFORM|NINFOM|RECDAT|RECIND|SORDAT|SORIND
68 217 _m_sor A 0 Source of data _m_sor|217|A|0|Source of data|CSCALE|DUNITS|HUNITS|HORACC|NMDATE|HORDAT|_sorhd|_wgsox|_wgsoy|SORDAT|SORIND|VERACC|VERDAT|_hvdat|MARSYS|_chcod|_dgdat|_quart|INFORM|NINFOM|RECDAT|RECIND

View File

@@ -0,0 +1,204 @@
object_class_id,object_class,geometry_type,scale_code,native_scale,feature_count
194,$AREAS,AREA,F,20000,3
194,$AREAS,AREA,E,50000,7
194,$AREAS,AREA,C,200000,1
191,$COMPS,POINT,F,20000,4
191,$COMPS,POINT,E,50000,1
193,$LINES,LINE,F,20000,6
193,$LINES,LINE,E,50000,9
4,ACHARE,AREA,F,20000,1
4,ACHARE,AREA,E,50000,1
1,AIRARE,POINT,F,20000,1
1,AIRARE,POINT,C,200000,2
7,BCNLAT,POINT,F,20000,5
7,BCNLAT,POINT,E,50000,5
7,BCNLAT,POINT,C,200000,5
9,BCNSPP,POINT,F,20000,4
9,BCNSPP,POINT,E,50000,3
9,BCNSPP,POINT,C,200000,3
9,BCNSPP,POINT,B,1000000,2
20,BOYSPP,POINT,F,20000,6
20,BOYSPP,POINT,E,50000,2
11,BRIDGE,LINE,F,20000,1
11,BRIDGE,LINE,C,200000,3
11,BRIDGE,AREA,F,20000,12
11,BRIDGE,AREA,E,50000,4
11,BRIDGE,AREA,C,200000,1
10,BRTFAC,POINT,F,20000,45
10,BRTFAC,POINT,E,50000,44
14,BUAARE,POINT,F,20000,25
14,BUAARE,POINT,C,200000,8
14,BUAARE,POINT,B,1000000,2
14,BUAARE,AREA,C,200000,3
12,BUIREL,POINT,F,20000,4
12,BUIREL,POINT,E,50000,1
13,BUISGL,POINT,F,20000,9
13,BUISGL,POINT,E,50000,2
13,BUISGL,POINT,C,200000,1
13,BUISGL,AREA,F,20000,20
21,CBLOHD,LINE,F,20000,4
21,CBLOHD,LINE,E,50000,1
22,CBLSUB,LINE,F,20000,5
22,CBLSUB,LINE,E,50000,4
22,CBLSUB,LINE,C,200000,3
33,CHIMNY,POINT,F,20000,17
33,CHIMNY,POINT,E,50000,17
33,CHIMNY,POINT,C,200000,1
35,COALNE,LINE,F,20000,108
35,COALNE,LINE,E,50000,49
35,COALNE,LINE,C,200000,9
35,COALNE,LINE,B,1000000,2
35,COALNE,LINE,A,3000000,1
35,COALNE,LINE,Z,20000000,2
36,CONZNE,AREA,C,200000,1
36,CONZNE,AREA,B,1000000,1
39,CRANES,POINT,F,20000,7
39,CRANES,POINT,E,50000,8
29,CTNARE,POINT,F,20000,3
29,CTNARE,POINT,E,50000,10
29,CTNARE,AREA,F,20000,9
29,CTNARE,AREA,E,50000,2
29,CTNARE,AREA,C,200000,2
29,CTNARE,AREA,B,1000000,3
38,CTRPNT,POINT,F,20000,5
38,CTRPNT,POINT,E,50000,1
44,DEPARE,AREA,F,20000,239
44,DEPARE,AREA,E,50000,150
44,DEPARE,AREA,C,200000,18
44,DEPARE,AREA,B,1000000,2
44,DEPARE,AREA,A,3000000,2
44,DEPARE,AREA,Z,20000000,3
45,DEPCNT,LINE,F,20000,257
45,DEPCNT,LINE,E,50000,164
45,DEPCNT,LINE,C,200000,26
45,DEPCNT,LINE,B,1000000,1
45,DEPCNT,LINE,A,3000000,1
45,DEPCNT,LINE,Z,20000000,2
50,DRGARE,AREA,E,50000,14
56,EXEZNE,AREA,C,200000,1
56,EXEZNE,AREA,B,1000000,1
57,FAIRWY,AREA,F,20000,2
57,FAIRWY,AREA,E,50000,3
60,FSHHAV,POINT,F,20000,4
60,FSHHAV,POINT,E,50000,4
60,FSHHAV,POINT,C,200000,10
72,HRBARE,AREA,F,20000,1
72,HRBARE,AREA,E,50000,3
73,HRBFAC,POINT,F,20000,1
73,HRBFAC,AREA,F,20000,1
78,ITDARE,AREA,F,20000,40
78,ITDARE,AREA,E,50000,15
78,ITDARE,AREA,C,200000,14
79,LAKARE,AREA,F,20000,1
79,LAKARE,AREA,C,200000,2
80,LAKSHR,LINE,F,20000,1
80,LAKSHR,LINE,C,200000,2
86,LIGHTS,POINT,F,20000,41
86,LIGHTS,POINT,E,50000,35
86,LIGHTS,POINT,C,200000,17
86,LIGHTS,POINT,B,1000000,3
81,LNDARE,AREA,F,20000,95
81,LNDARE,AREA,E,50000,53
81,LNDARE,AREA,C,200000,6
81,LNDARE,AREA,B,1000000,2
81,LNDARE,AREA,A,3000000,1
81,LNDARE,AREA,Z,20000000,2
95,MONUMT,POINT,F,20000,2
95,MONUMT,POINT,E,50000,2
96,MORFAC,POINT,E,50000,7
96,MORFAC,AREA,F,20000,2
210,M_PROD,AREA,F,20000,1
210,M_PROD,AREA,E,50000,1
210,M_PROD,AREA,D,100000,1
210,M_PROD,AREA,C,200000,1
210,M_PROD,AREA,B,1000000,1
210,M_PROD,AREA,A,3000000,1
210,M_PROD,AREA,Z,20000000,1
97,NATARE,AREA,F,20000,1
97,NATARE,AREA,C,200000,1
97,NATARE,AREA,B,1000000,1
99,OBSTRN,POINT,F,20000,2
99,OBSTRN,POINT,E,50000,3
99,OBSTRN,POINT,C,200000,1
99,OBSTRN,AREA,F,20000,41
99,OBSTRN,AREA,E,50000,16
99,OBSTRN,AREA,C,200000,11
99,OBSTRN,AREA,B,1000000,2
104,PILBOP,POINT,F,20000,2
104,PILBOP,POINT,E,50000,1
103,PILPNT,POINT,F,20000,7
103,PILPNT,POINT,E,50000,12
103,PILPNT,POINT,C,200000,1
106,PIPOHD,LINE,F,20000,2
107,PIPSOL,LINE,F,20000,1
107,PIPSOL,LINE,E,50000,1
111,PRDINS,POINT,F,20000,12
111,PRDINS,AREA,F,20000,15
112,PYLONS,POINT,E,50000,2
130,RIVBNK,LINE,F,20000,4
130,RIVBNK,LINE,C,200000,3
129,RIVERS,AREA,F,20000,2
129,RIVERS,AREA,C,200000,3
127,RSCSTA,POINT,F,20000,1
118,RTPBCN,POINT,E,50000,1
138,SBDARE,POINT,F,20000,211
138,SBDARE,POINT,E,50000,67
138,SBDARE,POINT,C,200000,9
138,SBDARE,AREA,F,20000,7
138,SBDARE,AREA,E,50000,1
138,SBDARE,AREA,C,200000,1
136,SEAARE,AREA,C,200000,2
142,SILBUI,POINT,F,20000,2
142,SILBUI,POINT,E,50000,3
142,SILBUI,AREA,F,20000,1
140,SISTAT,POINT,F,20000,2
140,SISTAT,POINT,E,50000,2
141,SISTAW,POINT,F,20000,1
139,SLCONS,LINE,F,20000,107
139,SLCONS,LINE,E,50000,46
139,SLCONS,LINE,C,200000,41
139,SLCONS,LINE,B,1000000,15
139,SLCONS,AREA,F,20000,94
139,SLCONS,AREA,E,50000,25
143,SLIPWY,AREA,F,20000,1
143,SLIPWY,AREA,E,50000,2
147,SOUNDG,SOUNDING,F,20000,1
147,SOUNDG,SOUNDING,E,50000,1
147,SOUNDG,SOUNDING,C,200000,1
147,SOUNDG,SOUNDING,B,1000000,1
154,TELPHC,LINE,F,20000,2
154,TELPHC,LINE,E,50000,3
155,TESARE,AREA,F,20000,1
155,TESARE,AREA,C,200000,1
155,TESARE,AREA,B,1000000,1
153,TNKCON,POINT,F,20000,10
153,TNKCON,POINT,E,50000,36
153,TNKCON,AREA,E,50000,11
158,TOWERS,POINT,F,20000,21
158,TOWERS,POINT,E,50000,24
158,TOWERS,POINT,C,200000,8
158,TOWERS,POINT,B,1000000,1
168,UWTROC,POINT,F,20000,96
168,UWTROC,POINT,E,50000,27
168,UWTROC,POINT,C,200000,50
168,UWTROC,POINT,B,1000000,3
176,WRECKS,POINT,F,20000,467
176,WRECKS,POINT,E,50000,10
176,WRECKS,POINT,C,200000,3
176,WRECKS,AREA,F,20000,1
177,ZEMCNT,LINE,F,20000,42
177,ZEMCNT,LINE,E,50000,28
177,ZEMCNT,LINE,C,200000,14
201,_extgn,POINT,F,20000,22
201,_extgn,POINT,E,50000,20
217,_m_sor,META,F,20000,1
217,_m_sor,META,E,50000,1
217,_m_sor,META,C,200000,1
217,_m_sor,META,B,1000000,1
217,_m_sor,META,A,3000000,1
217,_m_sor,META,Z,20000000,1
198,_texto,POINT,F,20000,67
198,_texto,POINT,E,50000,27
198,_texto,POINT,C,200000,15
198,_texto,POINT,B,1000000,3
198,_texto,POINT,A,3000000,1
1 object_class_id object_class geometry_type scale_code native_scale feature_count
2 194 $AREAS AREA F 20000 3
3 194 $AREAS AREA E 50000 7
4 194 $AREAS AREA C 200000 1
5 191 $COMPS POINT F 20000 4
6 191 $COMPS POINT E 50000 1
7 193 $LINES LINE F 20000 6
8 193 $LINES LINE E 50000 9
9 4 ACHARE AREA F 20000 1
10 4 ACHARE AREA E 50000 1
11 1 AIRARE POINT F 20000 1
12 1 AIRARE POINT C 200000 2
13 7 BCNLAT POINT F 20000 5
14 7 BCNLAT POINT E 50000 5
15 7 BCNLAT POINT C 200000 5
16 9 BCNSPP POINT F 20000 4
17 9 BCNSPP POINT E 50000 3
18 9 BCNSPP POINT C 200000 3
19 9 BCNSPP POINT B 1000000 2
20 20 BOYSPP POINT F 20000 6
21 20 BOYSPP POINT E 50000 2
22 11 BRIDGE LINE F 20000 1
23 11 BRIDGE LINE C 200000 3
24 11 BRIDGE AREA F 20000 12
25 11 BRIDGE AREA E 50000 4
26 11 BRIDGE AREA C 200000 1
27 10 BRTFAC POINT F 20000 45
28 10 BRTFAC POINT E 50000 44
29 14 BUAARE POINT F 20000 25
30 14 BUAARE POINT C 200000 8
31 14 BUAARE POINT B 1000000 2
32 14 BUAARE AREA C 200000 3
33 12 BUIREL POINT F 20000 4
34 12 BUIREL POINT E 50000 1
35 13 BUISGL POINT F 20000 9
36 13 BUISGL POINT E 50000 2
37 13 BUISGL POINT C 200000 1
38 13 BUISGL AREA F 20000 20
39 21 CBLOHD LINE F 20000 4
40 21 CBLOHD LINE E 50000 1
41 22 CBLSUB LINE F 20000 5
42 22 CBLSUB LINE E 50000 4
43 22 CBLSUB LINE C 200000 3
44 33 CHIMNY POINT F 20000 17
45 33 CHIMNY POINT E 50000 17
46 33 CHIMNY POINT C 200000 1
47 35 COALNE LINE F 20000 108
48 35 COALNE LINE E 50000 49
49 35 COALNE LINE C 200000 9
50 35 COALNE LINE B 1000000 2
51 35 COALNE LINE A 3000000 1
52 35 COALNE LINE Z 20000000 2
53 36 CONZNE AREA C 200000 1
54 36 CONZNE AREA B 1000000 1
55 39 CRANES POINT F 20000 7
56 39 CRANES POINT E 50000 8
57 29 CTNARE POINT F 20000 3
58 29 CTNARE POINT E 50000 10
59 29 CTNARE AREA F 20000 9
60 29 CTNARE AREA E 50000 2
61 29 CTNARE AREA C 200000 2
62 29 CTNARE AREA B 1000000 3
63 38 CTRPNT POINT F 20000 5
64 38 CTRPNT POINT E 50000 1
65 44 DEPARE AREA F 20000 239
66 44 DEPARE AREA E 50000 150
67 44 DEPARE AREA C 200000 18
68 44 DEPARE AREA B 1000000 2
69 44 DEPARE AREA A 3000000 2
70 44 DEPARE AREA Z 20000000 3
71 45 DEPCNT LINE F 20000 257
72 45 DEPCNT LINE E 50000 164
73 45 DEPCNT LINE C 200000 26
74 45 DEPCNT LINE B 1000000 1
75 45 DEPCNT LINE A 3000000 1
76 45 DEPCNT LINE Z 20000000 2
77 50 DRGARE AREA E 50000 14
78 56 EXEZNE AREA C 200000 1
79 56 EXEZNE AREA B 1000000 1
80 57 FAIRWY AREA F 20000 2
81 57 FAIRWY AREA E 50000 3
82 60 FSHHAV POINT F 20000 4
83 60 FSHHAV POINT E 50000 4
84 60 FSHHAV POINT C 200000 10
85 72 HRBARE AREA F 20000 1
86 72 HRBARE AREA E 50000 3
87 73 HRBFAC POINT F 20000 1
88 73 HRBFAC AREA F 20000 1
89 78 ITDARE AREA F 20000 40
90 78 ITDARE AREA E 50000 15
91 78 ITDARE AREA C 200000 14
92 79 LAKARE AREA F 20000 1
93 79 LAKARE AREA C 200000 2
94 80 LAKSHR LINE F 20000 1
95 80 LAKSHR LINE C 200000 2
96 86 LIGHTS POINT F 20000 41
97 86 LIGHTS POINT E 50000 35
98 86 LIGHTS POINT C 200000 17
99 86 LIGHTS POINT B 1000000 3
100 81 LNDARE AREA F 20000 95
101 81 LNDARE AREA E 50000 53
102 81 LNDARE AREA C 200000 6
103 81 LNDARE AREA B 1000000 2
104 81 LNDARE AREA A 3000000 1
105 81 LNDARE AREA Z 20000000 2
106 95 MONUMT POINT F 20000 2
107 95 MONUMT POINT E 50000 2
108 96 MORFAC POINT E 50000 7
109 96 MORFAC AREA F 20000 2
110 210 M_PROD AREA F 20000 1
111 210 M_PROD AREA E 50000 1
112 210 M_PROD AREA D 100000 1
113 210 M_PROD AREA C 200000 1
114 210 M_PROD AREA B 1000000 1
115 210 M_PROD AREA A 3000000 1
116 210 M_PROD AREA Z 20000000 1
117 97 NATARE AREA F 20000 1
118 97 NATARE AREA C 200000 1
119 97 NATARE AREA B 1000000 1
120 99 OBSTRN POINT F 20000 2
121 99 OBSTRN POINT E 50000 3
122 99 OBSTRN POINT C 200000 1
123 99 OBSTRN AREA F 20000 41
124 99 OBSTRN AREA E 50000 16
125 99 OBSTRN AREA C 200000 11
126 99 OBSTRN AREA B 1000000 2
127 104 PILBOP POINT F 20000 2
128 104 PILBOP POINT E 50000 1
129 103 PILPNT POINT F 20000 7
130 103 PILPNT POINT E 50000 12
131 103 PILPNT POINT C 200000 1
132 106 PIPOHD LINE F 20000 2
133 107 PIPSOL LINE F 20000 1
134 107 PIPSOL LINE E 50000 1
135 111 PRDINS POINT F 20000 12
136 111 PRDINS AREA F 20000 15
137 112 PYLONS POINT E 50000 2
138 130 RIVBNK LINE F 20000 4
139 130 RIVBNK LINE C 200000 3
140 129 RIVERS AREA F 20000 2
141 129 RIVERS AREA C 200000 3
142 127 RSCSTA POINT F 20000 1
143 118 RTPBCN POINT E 50000 1
144 138 SBDARE POINT F 20000 211
145 138 SBDARE POINT E 50000 67
146 138 SBDARE POINT C 200000 9
147 138 SBDARE AREA F 20000 7
148 138 SBDARE AREA E 50000 1
149 138 SBDARE AREA C 200000 1
150 136 SEAARE AREA C 200000 2
151 142 SILBUI POINT F 20000 2
152 142 SILBUI POINT E 50000 3
153 142 SILBUI AREA F 20000 1
154 140 SISTAT POINT F 20000 2
155 140 SISTAT POINT E 50000 2
156 141 SISTAW POINT F 20000 1
157 139 SLCONS LINE F 20000 107
158 139 SLCONS LINE E 50000 46
159 139 SLCONS LINE C 200000 41
160 139 SLCONS LINE B 1000000 15
161 139 SLCONS AREA F 20000 94
162 139 SLCONS AREA E 50000 25
163 143 SLIPWY AREA F 20000 1
164 143 SLIPWY AREA E 50000 2
165 147 SOUNDG SOUNDING F 20000 1
166 147 SOUNDG SOUNDING E 50000 1
167 147 SOUNDG SOUNDING C 200000 1
168 147 SOUNDG SOUNDING B 1000000 1
169 154 TELPHC LINE F 20000 2
170 154 TELPHC LINE E 50000 3
171 155 TESARE AREA F 20000 1
172 155 TESARE AREA C 200000 1
173 155 TESARE AREA B 1000000 1
174 153 TNKCON POINT F 20000 10
175 153 TNKCON POINT E 50000 36
176 153 TNKCON AREA E 50000 11
177 158 TOWERS POINT F 20000 21
178 158 TOWERS POINT E 50000 24
179 158 TOWERS POINT C 200000 8
180 158 TOWERS POINT B 1000000 1
181 168 UWTROC POINT F 20000 96
182 168 UWTROC POINT E 50000 27
183 168 UWTROC POINT C 200000 50
184 168 UWTROC POINT B 1000000 3
185 176 WRECKS POINT F 20000 467
186 176 WRECKS POINT E 50000 10
187 176 WRECKS POINT C 200000 3
188 176 WRECKS AREA F 20000 1
189 177 ZEMCNT LINE F 20000 42
190 177 ZEMCNT LINE E 50000 28
191 177 ZEMCNT LINE C 200000 14
192 201 _extgn POINT F 20000 22
193 201 _extgn POINT E 50000 20
194 217 _m_sor META F 20000 1
195 217 _m_sor META E 50000 1
196 217 _m_sor META C 200000 1
197 217 _m_sor META B 1000000 1
198 217 _m_sor META A 3000000 1
199 217 _m_sor META Z 20000000 1
200 198 _texto POINT F 20000 67
201 198 _texto POINT E 50000 27
202 198 _texto POINT C 200000 15
203 198 _texto POINT B 1000000 3
204 198 _texto POINT A 3000000 1

View File

@@ -0,0 +1,81 @@
object_class_id,object_class,geometry_type,feature_count,cell_count,min_native_scale,max_native_scale,repaired_count,issue_count,dictionary_geometry_code,dictionary_display_code,description
176,WRECKS,POINT,480,3,20000,200000,0,0,PA,8,Wreck
45,DEPCNT,LINE,451,6,20000,20000000,0,0,L,7,Depth contour
44,DEPARE,AREA,414,6,20000,20000000,1,0,A,1,Depth area
138,SBDARE,POINT,287,3,20000,200000,0,0,PA,6,Seabed area
139,SLCONS,LINE,209,4,20000,1000000,0,0,LA,7,Shoreline construction
168,UWTROC,POINT,176,4,20000,1000000,0,0,P,8,Underwater rock
35,COALNE,LINE,171,6,20000,20000000,0,0,L,7,Coastline
81,LNDARE,AREA,159,6,20000,20000000,0,0,PA,1,Land area
139,SLCONS,AREA,119,2,20000,50000,0,0,LA,7,Shoreline construction
198,_texto,POINT,113,5,20000,3000000,0,0,P,8,Text
86,LIGHTS,POINT,96,4,20000,1000000,0,0,P,8,Light
10,BRTFAC,POINT,89,2,20000,50000,0,0,PLA,6,Berthing facility
177,ZEMCNT,LINE,84,3,20000,200000,0,0,L,7,Zero meter contour
99,OBSTRN,AREA,70,4,20000,1000000,0,0,PA,6,Obstruction
78,ITDARE,AREA,69,3,20000,200000,0,0,PLA,1,Intertidal area
158,TOWERS,POINT,54,4,20000,1000000,0,0,PA,6,Tower
153,TNKCON,POINT,46,2,20000,50000,0,0,PA,6,Tank
201,_extgn,POINT,42,2,20000,50000,0,0,P,8,"Extended navigational aid, generic"
14,BUAARE,POINT,35,3,20000,1000000,0,0,PA,6,Built-up area
33,CHIMNY,POINT,35,3,20000,200000,0,0,PA,6,Chimney
13,BUISGL,AREA,20,1,20000,20000,0,0,PA,6,"Building, single"
103,PILPNT,POINT,20,3,20000,200000,0,0,P,8,Pile
60,FSHHAV,POINT,18,3,20000,200000,0,0,PA,6,Fish haven
11,BRIDGE,AREA,17,3,20000,200000,0,0,PLA,6,Bridge
29,CTNARE,AREA,16,4,20000,1000000,0,0,PA,6,Caution area
193,$LINES,LINE,15,2,20000,50000,0,0,L,7,Cartographic line
7,BCNLAT,POINT,15,3,20000,200000,0,0,P,8,"Beacon, lateral"
39,CRANES,POINT,15,2,20000,50000,0,0,PA,6,Crane
111,PRDINS,AREA,15,1,20000,20000,0,0,PA,6,Production installation
50,DRGARE,AREA,14,1,50000,50000,0,0,A,5,Dredged area
29,CTNARE,POINT,13,2,20000,50000,0,0,PA,6,Caution area
9,BCNSPP,POINT,12,4,20000,1000000,0,0,P,8,"Beacon, special purpose"
13,BUISGL,POINT,12,3,20000,200000,0,0,PA,6,"Building, single"
22,CBLSUB,LINE,12,3,20000,200000,0,0,L,7,"Cable, submarine"
111,PRDINS,POINT,12,1,20000,20000,0,0,PA,6,Production installation
194,$AREAS,AREA,11,3,20000,200000,0,0,A,5,Cartographic area
153,TNKCON,AREA,11,1,50000,50000,0,0,PA,6,Tank
138,SBDARE,AREA,9,3,20000,200000,0,0,PA,6,Seabed area
20,BOYSPP,POINT,8,2,20000,50000,0,0,P,8,"Buoy, special purpose"
96,MORFAC,POINT,7,1,50000,50000,0,0,PA,6,Mooring/Warping facility
210,M_PROD,AREA,7,7,20000,20000000,0,0,A,0,Production information
130,RIVBNK,LINE,7,2,20000,200000,0,0,L,7,River bank
38,CTRPNT,POINT,6,2,20000,50000,0,0,P,8,Control point
99,OBSTRN,POINT,6,3,20000,200000,0,0,PA,6,Obstruction
217,_m_sor,META,6,6,20000,20000000,0,0,A,0,Source of data
191,$COMPS,POINT,5,2,20000,50000,0,0,P,8,Compass
12,BUIREL,POINT,5,2,20000,50000,0,0,PA,6,"Building, religious"
21,CBLOHD,LINE,5,2,20000,50000,0,0,L,7,"Cable, overhead"
57,FAIRWY,AREA,5,2,20000,50000,0,0,A,5,Fairway
129,RIVERS,AREA,5,2,20000,200000,0,0,LA,1,River
142,SILBUI,POINT,5,2,20000,50000,0,0,PA,6,Silo
154,TELPHC,LINE,5,2,20000,50000,0,0,L,7,Telepheric
11,BRIDGE,LINE,4,2,20000,200000,0,0,PLA,6,Bridge
72,HRBARE,AREA,4,2,20000,50000,0,0,A,5,Harbour area (administrative)
95,MONUMT,POINT,4,2,20000,50000,0,0,P,8,Monument
140,SISTAT,POINT,4,2,20000,50000,0,0,P,8,"Signal station, traffic"
147,SOUNDG,SOUNDING,4,4,20000,1000000,0,0,S,7,Spot soundings
1,AIRARE,POINT,3,2,20000,200000,0,0,PA,6,Airport area
14,BUAARE,AREA,3,1,200000,200000,0,0,PA,6,Built-up area
79,LAKARE,AREA,3,2,20000,200000,0,0,A,1,Lake
80,LAKSHR,LINE,3,2,20000,200000,0,0,L,7,Lake shore
97,NATARE,AREA,3,3,20000,1000000,0,0,A,5,National territorial area
104,PILBOP,POINT,3,2,20000,50000,0,0,PA,8,Pilot boarding place
143,SLIPWY,AREA,3,2,20000,50000,0,0,LA,6,Slipway
155,TESARE,AREA,3,3,20000,1000000,0,0,A,5,Territorial sea area
4,ACHARE,AREA,2,2,20000,50000,0,0,PA,6,Anchorage area
36,CONZNE,AREA,2,2,200000,1000000,0,0,A,5,Contiguous zone
56,EXEZNE,AREA,2,2,200000,1000000,0,0,A,5,Exclusive economic zone
96,MORFAC,AREA,2,1,20000,20000,0,0,PA,6,Mooring/Warping facility
106,PIPOHD,LINE,2,1,20000,20000,0,0,L,7,"Pipeline, overhead"
107,PIPSOL,LINE,2,2,20000,50000,0,0,L,7,"Pipeline, submarine/on land"
112,PYLONS,POINT,2,1,50000,50000,0,0,PA,6,Pylon
136,SEAARE,AREA,2,1,200000,200000,0,0,A,5,Sea area
73,HRBFAC,POINT,1,1,20000,20000,0,0,PA,6,Harbour facility
73,HRBFAC,AREA,1,1,20000,20000,0,0,PA,6,Harbour facility
127,RSCSTA,POINT,1,1,20000,20000,0,0,P,8,Rescue station
118,RTPBCN,POINT,1,1,50000,50000,0,0,P,8,Radar transponder beacon
142,SILBUI,AREA,1,1,20000,20000,0,0,PA,6,Silo
141,SISTAW,POINT,1,1,20000,20000,0,0,P,8,"Signal station, warning"
176,WRECKS,AREA,1,1,20000,20000,0,0,PA,8,Wreck
1 object_class_id object_class geometry_type feature_count cell_count min_native_scale max_native_scale repaired_count issue_count dictionary_geometry_code dictionary_display_code description
2 176 WRECKS POINT 480 3 20000 200000 0 0 PA 8 Wreck
3 45 DEPCNT LINE 451 6 20000 20000000 0 0 L 7 Depth contour
4 44 DEPARE AREA 414 6 20000 20000000 1 0 A 1 Depth area
5 138 SBDARE POINT 287 3 20000 200000 0 0 PA 6 Seabed area
6 139 SLCONS LINE 209 4 20000 1000000 0 0 LA 7 Shoreline construction
7 168 UWTROC POINT 176 4 20000 1000000 0 0 P 8 Underwater rock
8 35 COALNE LINE 171 6 20000 20000000 0 0 L 7 Coastline
9 81 LNDARE AREA 159 6 20000 20000000 0 0 PA 1 Land area
10 139 SLCONS AREA 119 2 20000 50000 0 0 LA 7 Shoreline construction
11 198 _texto POINT 113 5 20000 3000000 0 0 P 8 Text
12 86 LIGHTS POINT 96 4 20000 1000000 0 0 P 8 Light
13 10 BRTFAC POINT 89 2 20000 50000 0 0 PLA 6 Berthing facility
14 177 ZEMCNT LINE 84 3 20000 200000 0 0 L 7 Zero meter contour
15 99 OBSTRN AREA 70 4 20000 1000000 0 0 PA 6 Obstruction
16 78 ITDARE AREA 69 3 20000 200000 0 0 PLA 1 Intertidal area
17 158 TOWERS POINT 54 4 20000 1000000 0 0 PA 6 Tower
18 153 TNKCON POINT 46 2 20000 50000 0 0 PA 6 Tank
19 201 _extgn POINT 42 2 20000 50000 0 0 P 8 Extended navigational aid, generic
20 14 BUAARE POINT 35 3 20000 1000000 0 0 PA 6 Built-up area
21 33 CHIMNY POINT 35 3 20000 200000 0 0 PA 6 Chimney
22 13 BUISGL AREA 20 1 20000 20000 0 0 PA 6 Building, single
23 103 PILPNT POINT 20 3 20000 200000 0 0 P 8 Pile
24 60 FSHHAV POINT 18 3 20000 200000 0 0 PA 6 Fish haven
25 11 BRIDGE AREA 17 3 20000 200000 0 0 PLA 6 Bridge
26 29 CTNARE AREA 16 4 20000 1000000 0 0 PA 6 Caution area
27 193 $LINES LINE 15 2 20000 50000 0 0 L 7 Cartographic line
28 7 BCNLAT POINT 15 3 20000 200000 0 0 P 8 Beacon, lateral
29 39 CRANES POINT 15 2 20000 50000 0 0 PA 6 Crane
30 111 PRDINS AREA 15 1 20000 20000 0 0 PA 6 Production installation
31 50 DRGARE AREA 14 1 50000 50000 0 0 A 5 Dredged area
32 29 CTNARE POINT 13 2 20000 50000 0 0 PA 6 Caution area
33 9 BCNSPP POINT 12 4 20000 1000000 0 0 P 8 Beacon, special purpose
34 13 BUISGL POINT 12 3 20000 200000 0 0 PA 6 Building, single
35 22 CBLSUB LINE 12 3 20000 200000 0 0 L 7 Cable, submarine
36 111 PRDINS POINT 12 1 20000 20000 0 0 PA 6 Production installation
37 194 $AREAS AREA 11 3 20000 200000 0 0 A 5 Cartographic area
38 153 TNKCON AREA 11 1 50000 50000 0 0 PA 6 Tank
39 138 SBDARE AREA 9 3 20000 200000 0 0 PA 6 Seabed area
40 20 BOYSPP POINT 8 2 20000 50000 0 0 P 8 Buoy, special purpose
41 96 MORFAC POINT 7 1 50000 50000 0 0 PA 6 Mooring/Warping facility
42 210 M_PROD AREA 7 7 20000 20000000 0 0 A 0 Production information
43 130 RIVBNK LINE 7 2 20000 200000 0 0 L 7 River bank
44 38 CTRPNT POINT 6 2 20000 50000 0 0 P 8 Control point
45 99 OBSTRN POINT 6 3 20000 200000 0 0 PA 6 Obstruction
46 217 _m_sor META 6 6 20000 20000000 0 0 A 0 Source of data
47 191 $COMPS POINT 5 2 20000 50000 0 0 P 8 Compass
48 12 BUIREL POINT 5 2 20000 50000 0 0 PA 6 Building, religious
49 21 CBLOHD LINE 5 2 20000 50000 0 0 L 7 Cable, overhead
50 57 FAIRWY AREA 5 2 20000 50000 0 0 A 5 Fairway
51 129 RIVERS AREA 5 2 20000 200000 0 0 LA 1 River
52 142 SILBUI POINT 5 2 20000 50000 0 0 PA 6 Silo
53 154 TELPHC LINE 5 2 20000 50000 0 0 L 7 Telepheric
54 11 BRIDGE LINE 4 2 20000 200000 0 0 PLA 6 Bridge
55 72 HRBARE AREA 4 2 20000 50000 0 0 A 5 Harbour area (administrative)
56 95 MONUMT POINT 4 2 20000 50000 0 0 P 8 Monument
57 140 SISTAT POINT 4 2 20000 50000 0 0 P 8 Signal station, traffic
58 147 SOUNDG SOUNDING 4 4 20000 1000000 0 0 S 7 Spot soundings
59 1 AIRARE POINT 3 2 20000 200000 0 0 PA 6 Airport area
60 14 BUAARE AREA 3 1 200000 200000 0 0 PA 6 Built-up area
61 79 LAKARE AREA 3 2 20000 200000 0 0 A 1 Lake
62 80 LAKSHR LINE 3 2 20000 200000 0 0 L 7 Lake shore
63 97 NATARE AREA 3 3 20000 1000000 0 0 A 5 National territorial area
64 104 PILBOP POINT 3 2 20000 50000 0 0 PA 8 Pilot boarding place
65 143 SLIPWY AREA 3 2 20000 50000 0 0 LA 6 Slipway
66 155 TESARE AREA 3 3 20000 1000000 0 0 A 5 Territorial sea area
67 4 ACHARE AREA 2 2 20000 50000 0 0 PA 6 Anchorage area
68 36 CONZNE AREA 2 2 200000 1000000 0 0 A 5 Contiguous zone
69 56 EXEZNE AREA 2 2 200000 1000000 0 0 A 5 Exclusive economic zone
70 96 MORFAC AREA 2 1 20000 20000 0 0 PA 6 Mooring/Warping facility
71 106 PIPOHD LINE 2 1 20000 20000 0 0 L 7 Pipeline, overhead
72 107 PIPSOL LINE 2 2 20000 50000 0 0 L 7 Pipeline, submarine/on land
73 112 PYLONS POINT 2 1 50000 50000 0 0 PA 6 Pylon
74 136 SEAARE AREA 2 1 200000 200000 0 0 A 5 Sea area
75 73 HRBFAC POINT 1 1 20000 20000 0 0 PA 6 Harbour facility
76 73 HRBFAC AREA 1 1 20000 20000 0 0 PA 6 Harbour facility
77 127 RSCSTA POINT 1 1 20000 20000 0 0 P 8 Rescue station
78 118 RTPBCN POINT 1 1 50000 50000 0 0 P 8 Radar transponder beacon
79 142 SILBUI AREA 1 1 20000 20000 0 0 PA 6 Silo
80 141 SISTAW POINT 1 1 20000 20000 0 0 P 8 Signal station, warning
81 176 WRECKS AREA 1 1 20000 20000 0 0 PA 8 Wreck

View File

@@ -0,0 +1,681 @@
object_class_id,object_class,geometry_type,attribute_id,attribute_name,value_type,rank,value,count,total_distinct_values
194,$AREAS,AREA,129,$SCODE,STRING,1,II25,11,1
191,$COMPS,POINT,128,$ANNCH,STRING,1,00.00 E,4,2
191,$COMPS,POINT,128,$ANNCH,STRING,2,01.00 W,1,2
191,$COMPS,POINT,127,$CYEAR,REAL,1,2012,4,2
191,$COMPS,POINT,127,$CYEAR,REAL,2,2002,1,2
191,$COMPS,POINT,126,$VARIA,STRING,1,08.25 W,5,1
193,$LINES,LINE,129,$SCODE,STRING,1,IH40,6,3
193,$LINES,LINE,129,$SCODE,STRING,2,IH41,6,3
193,$LINES,LINE,129,$SCODE,STRING,3,IK1,3,3
4,ACHARE,AREA,3,CATACH,LIST,1,[5],2,1
1,AIRARE,POINT,80,OBJNAM,STRING,1,Hachinohe Airfield,1,1
7,BCNLAT,POINT,103,BCNSHP,BYTE,1,3,4,1
7,BCNLAT,POINT,24,CATLAM,BYTE,1,2,15,1
7,BCNLAT,POINT,60,COLMAR,BYTE,1,3,15,1
7,BCNLAT,POINT,78,INFORM,STRING,1,Concrete,3,3
7,BCNLAT,POINT,78,INFORM,STRING,2,Metal,2,3
7,BCNLAT,POINT,78,INFORM,STRING,3,Metal|Framework tower,1,3
7,BCNLAT,POINT,108,SORIND,STRING,1,"GB,UKHO,graph,LL M-6623",2,11
7,BCNLAT,POINT,108,SORIND,STRING,2,"GB,UKHO,graph,LL M-6624.8",2,11
7,BCNLAT,POINT,108,SORIND,STRING,3,"GB,UKHO,graph,LL M-6624.7",2,11
7,BCNLAT,POINT,108,SORIND,STRING,4,"GB,UKHO,graph,LL M-6624",2,11
7,BCNLAT,POINT,108,SORIND,STRING,5,"GB,UKHO,graph,LL M-6619",1,11
7,BCNLAT,POINT,108,SORIND,STRING,6,"GB,MDHS,graph,LL F-6623",1,11
7,BCNLAT,POINT,108,SORIND,STRING,7,"GB,MDHS,graph,LL F-6623.6",1,11
7,BCNLAT,POINT,108,SORIND,STRING,8,"GB,MDHS,graph,LL F-6624.8",1,11
7,BCNLAT,POINT,108,SORIND,STRING,9,"GB,MDHS,graph,LL F-6624.7",1,11
7,BCNLAT,POINT,108,SORIND,STRING,10,"GB,MDHS,graph,LL F-6624",1,11
7,BCNLAT,POINT,108,SORIND,STRING,11,"GB,UKHO,graph,LL M-6623.6",1,11
7,BCNLAT,POINT,122,VERLEN,REAL,1,10,6,4
7,BCNLAT,POINT,122,VERLEN,REAL,2,9,5,4
7,BCNLAT,POINT,122,VERLEN,REAL,3,16,3,4
7,BCNLAT,POINT,122,VERLEN,REAL,4,6,1,4
9,BCNSPP,POINT,51,CATSPM,BYTE,1,6,4,2
9,BCNSPP,POINT,51,CATSPM,BYTE,2,27,1,2
9,BCNSPP,POINT,60,COLMAR,BYTE,1,5,2,1
9,BCNSPP,POINT,78,INFORM,STRING,1,Metal,4,1
9,BCNSPP,POINT,108,SORIND,STRING,1,"GB,UKHO,graph,LL M-6625",2,3
9,BCNSPP,POINT,108,SORIND,STRING,2,"GB,UKHO,graph,LL M-6626",2,3
9,BCNSPP,POINT,108,SORIND,STRING,3,"GB,UKHO,graph,LL M-6623.2",2,3
9,BCNSPP,POINT,122,VERLEN,REAL,1,43,2,2
9,BCNSPP,POINT,122,VERLEN,REAL,2,9,2,2
20,BOYSPP,POINT,105,BOYSHP,BYTE,1,1,5,2
20,BOYSPP,POINT,105,BOYSHP,BYTE,2,4,3,2
20,BOYSPP,POINT,51,CATSPM,BYTE,1,27,3,3
20,BOYSPP,POINT,51,CATSPM,BYTE,2,10,1,3
20,BOYSPP,POINT,51,CATSPM,BYTE,3,13,1,3
20,BOYSPP,POINT,60,COLMAR,BYTE,1,4,8,1
20,BOYSPP,POINT,78,INFORM,STRING,1,Private mark|Wave recorder,1,1
20,BOYSPP,POINT,109,STATUS,LIST,1,[8],6,1
11,BRIDGE,AREA,4,CATBRG,LIST,1,[1],2,1
11,BRIDGE,AREA,78,INFORM,STRING,1,Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m,2,2
11,BRIDGE,AREA,78,INFORM,STRING,2,Vertical Datum: Nearly highest high water,1,2
11,BRIDGE,AREA,80,OBJNAM,STRING,1,Hachinohe Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,2,Hattaro Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,3,The Numadate Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,4,The Shin-O-Hashi Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,5,Seagull Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,6,Minato Bridge,1,7
11,BRIDGE,AREA,80,OBJNAM,STRING,7,Ichikawa Bridge,1,7
11,BRIDGE,AREA,117,VERCLR,REAL,1,4.5,2,3
11,BRIDGE,AREA,117,VERCLR,REAL,2,31,2,3
11,BRIDGE,AREA,117,VERCLR,REAL,3,5.30000019073486,1,3
10,BRTFAC,POINT,80,OBJNAM,STRING,1,2,8,25
10,BRTFAC,POINT,80,OBJNAM,STRING,2,1,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,3,3,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,4,4,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,5,A,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,6,B,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,7,C,6,25
10,BRTFAC,POINT,80,OBJNAM,STRING,8,5,4,25
10,BRTFAC,POINT,80,OBJNAM,STRING,9,6,4,25
10,BRTFAC,POINT,80,OBJNAM,STRING,10,D,4,25
10,BRTFAC,POINT,80,OBJNAM,STRING,11,F,4,25
10,BRTFAC,POINT,80,OBJNAM,STRING,12,G,4,25
10,BRTFAC,POINT,80,OBJNAM,STRING,13,7,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,14,8,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,15,9,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,16,E,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,17,H,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,18,I,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,19,J,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,20,L,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,21,M,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,22,N,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,23,O,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,24,10,2,25
10,BRTFAC,POINT,80,OBJNAM,STRING,25,P,1,25
14,BUAARE,POINT,80,OBJNAM,STRING,1,Hachinohe,2,33
14,BUAARE,POINT,80,OBJNAM,STRING,2,Hashimukai,2,33
14,BUAARE,POINT,80,OBJNAM,STRING,3,Misawa,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,4,Same,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,5,Okuki,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,6,Minato,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,7,Mikawame,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,8,Shirahama,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,9,Hitokawame,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,10,Oirase Town,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,11,Tate,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,12,Osawa,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,13,Hinode,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,14,Toyosu,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,15,Hattaro,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,16,Hasunuma,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,17,Kawaragi,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,18,Kitanuma,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,19,Numadate,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,20,Sunamori,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,21,Tatehana,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,22,Uenoyama,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,23,Kami-Same,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,24,Hikagezawa,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,25,Shinminato,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,26,Uheikawara,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,27,Senzogakubo,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,28,Hamana-Yachi,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,29,Shimo-Oyachi,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,30,Minami-Oyachi,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,31,Toyama-Shinden,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,32,Shimo-Matsunaeba,1,33
14,BUAARE,POINT,80,OBJNAM,STRING,33,Shimo-Mekurakubo,1,33
14,BUAARE,AREA,80,OBJNAM,STRING,1,Hachinohe,1,2
14,BUAARE,AREA,80,OBJNAM,STRING,2,Misawa,1,2
12,BUIREL,POINT,41,CATREB,BYTE,1,6,2,3
12,BUIREL,POINT,41,CATREB,BYTE,2,7,2,3
12,BUIREL,POINT,41,CATREB,BYTE,3,4,1,3
13,BUISGL,POINT,104,BUISHP,BYTE,1,4,1,1
13,BUISGL,POINT,49,CATBUI,LIST,1,[6],5,5
13,BUISGL,POINT,49,CATBUI,LIST,2,[2],1,5
13,BUISGL,POINT,49,CATBUI,LIST,3,[3],1,5
13,BUISGL,POINT,49,CATBUI,LIST,4,[17],1,5
13,BUISGL,POINT,49,CATBUI,LIST,5,[5],1,5
13,BUISGL,POINT,65,CONVIS,BYTE,1,2,2,1
13,BUISGL,POINT,78,INFORM,STRING,1,Light support|Not in use,1,1
13,BUISGL,POINT,80,OBJNAM,STRING,1,Tohoku Electric Power Thermal Power Plants,1,2
13,BUISGL,POINT,80,OBJNAM,STRING,2,Japan Maritime Self Defense Force Air Base,1,2
13,BUISGL,POINT,91,QUAPOS,BYTE,1,4,2,1
13,BUISGL,AREA,49,CATBUI,LIST,1,[19],7,4
13,BUISGL,AREA,49,CATBUI,LIST,2,[13],1,4
13,BUISGL,AREA,49,CATBUI,LIST,3,"[3,2]",1,4
13,BUISGL,AREA,49,CATBUI,LIST,4,[10],1,4
13,BUISGL,AREA,78,INFORM,STRING,1,Port Management Office,1,7
13,BUISGL,AREA,78,INFORM,STRING,2,Fisheries High School,1,7
13,BUISGL,AREA,78,INFORM,STRING,3,Fishery Hall,1,7
13,BUISGL,AREA,78,INFORM,STRING,4,Fisheries Laboratory,1,7
13,BUISGL,AREA,78,INFORM,STRING,5,Coast Guard Office|Marine Procedure Commission Agent Office,1,7
13,BUISGL,AREA,78,INFORM,STRING,6,Fishing Harbor Development Office,1,7
13,BUISGL,AREA,78,INFORM,STRING,7,"Regional Development Bureau,Port And Airport Office",1,7
13,BUISGL,AREA,80,OBJNAM,STRING,1,Tohoku Electric Power Electric Substation,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,2,No.1 Fish Market,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,3,No.2 Fish Market,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,4,No.3 Fish Market,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,5,Maritime Office,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,6,Construction Office,1,7
13,BUISGL,AREA,80,OBJNAM,STRING,7,Fisherman's Union,1,7
21,CBLOHD,LINE,6,CATCBL,BYTE,1,1,5,1
21,CBLOHD,LINE,93,QUAVEM,BYTE,1,1,1,1
21,CBLOHD,LINE,117,VERCLR,REAL,1,12,1,1
22,CBLSUB,LINE,6,CATCBL,BYTE,1,1,2,1
22,CBLSUB,LINE,109,STATUS,LIST,1,[4],3,1
33,CHIMNY,POINT,59,COLOUR,LIST,1,"[3,1]",2,1
33,CHIMNY,POINT,65,CONVIS,BYTE,1,2,8,2
33,CHIMNY,POINT,65,CONVIS,BYTE,2,1,1,2
33,CHIMNY,POINT,73,HEIGHT,REAL,1,123,2,7
33,CHIMNY,POINT,73,HEIGHT,REAL,2,30,2,7
33,CHIMNY,POINT,73,HEIGHT,REAL,3,27,1,7
33,CHIMNY,POINT,73,HEIGHT,REAL,4,81,1,7
33,CHIMNY,POINT,73,HEIGHT,REAL,5,40,1,7
33,CHIMNY,POINT,73,HEIGHT,REAL,6,71,1,7
33,CHIMNY,POINT,73,HEIGHT,REAL,7,82,1,7
33,CHIMNY,POINT,78,INFORM,STRING,1,3 CHYS,1,1
35,COALNE,LINE,147,CATCOA,BYTE,1,1,8,1
36,CONZNE,AREA,78,INFORM,STRING,1,"Jeppesen adopts ""International Boundaries and National Limits"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.",2,1
36,CONZNE,AREA,81,NATION,STRING,1,JP,2,1
36,CONZNE,AREA,108,SORIND,STRING,1,"CM,PAD,graph,B3900420",1,1
39,CRANES,POINT,10,CATCRN,BYTE,1,4,9,2
39,CRANES,POINT,10,CATCRN,BYTE,2,2,2,2
29,CTNARE,POINT,78,INFORM,STRING,1,Works in progress|Source date: 2005,2,12
29,CTNARE,POINT,78,INFORM,STRING,2,FOUL,1,12
29,CTNARE,POINT,78,INFORM,STRING,3,Marked by buoys,1,12
29,CTNARE,POINT,78,INFORM,STRING,4,(liable to shoal),1,12
29,CTNARE,POINT,78,INFORM,STRING,5,WORKS IN PROGRESS (1998),1,12
29,CTNARE,POINT,78,INFORM,STRING,6,Works in progress|Source date: 2000,1,12
29,CTNARE,POINT,78,INFORM,STRING,7,Works in progress|Source date: 2002,1,12
29,CTNARE,POINT,78,INFORM,STRING,8,Ebb stream|Orientation: 130 Deg|Current velocity: 0.2kn,1,12
29,CTNARE,POINT,78,INFORM,STRING,9,Flood stream|Orientation: 290 Deg|Current velocity: 0.3kn,1,12
29,CTNARE,POINT,78,INFORM,STRING,10,Slipway,1,12
29,CTNARE,POINT,78,INFORM,STRING,11,Ebb stream|Orientation: 133 Deg|Current velocity: 0.3kn,1,12
29,CTNARE,POINT,78,INFORM,STRING,12,Flood stream|Orientation: 299 Deg|Current velocity: 0.3kn,1,12
29,CTNARE,AREA,78,INFORM,STRING,1,Caisson Temporary Storage Area,3,12
29,CTNARE,AREA,78,INFORM,STRING,2,"The contents of the charts affected by earthquakes etc. occured offshore Pacific Ocean in Tohoku region in Japan.|By earthquakes and tsunami occured offshore Pacific Ocean in Tohoku region in Japan on 11th March 2011, damages of breakwaters, quays, etc. and existance of foul bottoms (i.e. houses and vehicles) on the seafloor which were pushed and flowed from land area in the east coast of Honshu and each ports and harbours. Users are aware that contents of the charts may be different from existing situations. Notices to Mariners about these matters will be issued as soon as survey results are received.Notices to Mariners address http://www1.kaiho.mlit.go.jp/TUHO/tuho_db/tuhoserch.html",2,12
29,CTNARE,AREA,78,INFORM,STRING,3,Unassessed. Surveys before the earthquake (11th Mar. 2011),2,12
29,CTNARE,AREA,78,INFORM,STRING,4,"Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution.|Caution|Only the principal lights are shown on this chart. For the details of these and other lights, the larger scale charts and the List of Lights should be consulted.|Note|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|Note|Owing to scale, only major points of the straight baselines given in the Enforcement Order are shown.|Caution|As submarine cables are not shown on this chart, take care with regard to the fishing industry, submarine exploration etc. For submarine cable information, refer to JP charts with scales of larger than 1:750,000 or the JP chart with scale 1:3,500,000.",1,12
29,CTNARE,AREA,78,INFORM,STRING,5,Jeppesen digital nautical charts do not reflect all soundings present on the official paper charts published by Japan Hydrographic and Oceanographic Department. This product is not an Electronic Navigational Chart. Mariners are required to use official paper charts for navigational judgements.,1,12
29,CTNARE,AREA,78,INFORM,STRING,6,"CAUTION|As undiscovered shoals may exist around charted shoals, mariners are warned to excercise cautions.|NOTE|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|NOTE|Of all the base points of the straight baselines given in the Enforcement Order, only major points are shown on this chart due to its small scale.",1,12
29,CTNARE,AREA,78,INFORM,STRING,7,"CABLES|1. Submarine and overhead cables may conduct high voltages; contact with or proximity to these poses an extreme danger and mariners may risk prosecution if damage is caused.|2. Anchoring or trawling in the vicinity of submarine cables should be avoided. Seabed mobility may leave a cable spanning undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. If a cable is snagged, care must be taken not to sever it.|3. Sufficient clearance must be allowed under overhead cables.|4. Some cables, particularly those installed since this edition was published, may not be charted.|5. For further information, see The Mariner's Handbook.",1,12
29,CTNARE,AREA,78,INFORM,STRING,8,Dredged to 7.5m|Source date: 1994,1,12
29,CTNARE,AREA,78,INFORM,STRING,9,Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution. |Caution|Depths are very changeable at the entrance to river mouths. Mariners are advised to exercise caution.,1,12
29,CTNARE,AREA,78,INFORM,STRING,10,Section 3,1,12
29,CTNARE,AREA,78,INFORM,STRING,11,Section 2,1,12
29,CTNARE,AREA,78,INFORM,STRING,12,Section 1,1,12
38,CTRPNT,POINT,9,CATCTR,BYTE,1,1,4,2
38,CTRPNT,POINT,9,CATCTR,BYTE,2,4,2,2
38,CTRPNT,POINT,80,OBJNAM,STRING,1,Monomiiwa,1,1
44,DEPARE,AREA,66,DRVAL1,REAL,1,2,188,7
44,DEPARE,AREA,66,DRVAL1,REAL,2,0,117,7
44,DEPARE,AREA,66,DRVAL1,REAL,3,5,81,7
44,DEPARE,AREA,66,DRVAL1,REAL,4,10,18,7
44,DEPARE,AREA,66,DRVAL1,REAL,5,20,5,7
44,DEPARE,AREA,66,DRVAL1,REAL,6,200,4,7
44,DEPARE,AREA,66,DRVAL1,REAL,7,30,1,7
44,DEPARE,AREA,67,DRVAL2,REAL,1,5,203,8
44,DEPARE,AREA,67,DRVAL2,REAL,2,2,96,8
44,DEPARE,AREA,67,DRVAL2,REAL,3,10,84,8
44,DEPARE,AREA,67,DRVAL2,REAL,4,20,18,8
44,DEPARE,AREA,67,DRVAL2,REAL,5,200,4,8
44,DEPARE,AREA,67,DRVAL2,REAL,6,50,4,8
44,DEPARE,AREA,67,DRVAL2,REAL,7,30,1,8
44,DEPARE,AREA,67,DRVAL2,REAL,8,2000,1,8
45,DEPCNT,LINE,91,QUAPOS,BYTE,1,4,1,1
45,DEPCNT,LINE,113,VALDCO,REAL,1,5,230,6
45,DEPCNT,LINE,113,VALDCO,REAL,2,2,102,6
45,DEPCNT,LINE,113,VALDCO,REAL,3,10,100,6
45,DEPCNT,LINE,113,VALDCO,REAL,4,20,14,6
45,DEPCNT,LINE,113,VALDCO,REAL,5,200,4,6
45,DEPCNT,LINE,113,VALDCO,REAL,6,30,1,6
50,DRGARE,AREA,66,DRVAL1,REAL,1,7.5,5,6
50,DRGARE,AREA,66,DRVAL1,REAL,2,13,4,6
50,DRGARE,AREA,66,DRVAL1,REAL,3,14,1,6
50,DRGARE,AREA,66,DRVAL1,REAL,4,12,1,6
50,DRGARE,AREA,66,DRVAL1,REAL,5,9.59999942779541,1,6
50,DRGARE,AREA,66,DRVAL1,REAL,6,10,1,6
50,DRGARE,AREA,78,INFORM,STRING,1,(1981-2000),4,7
50,DRGARE,AREA,78,INFORM,STRING,2,Source date: 1990,2,7
50,DRGARE,AREA,78,INFORM,STRING,3,(1995-2000),1,7
50,DRGARE,AREA,78,INFORM,STRING,4,Source date: 1991,1,7
50,DRGARE,AREA,78,INFORM,STRING,5,1980,1,7
50,DRGARE,AREA,78,INFORM,STRING,6,1994,1,7
50,DRGARE,AREA,78,INFORM,STRING,7,Source date: 1977,1,7
56,EXEZNE,AREA,78,INFORM,STRING,1,"Jeppesen adopts ""International Boundaries and National Limits"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.",2,1
56,EXEZNE,AREA,81,NATION,STRING,1,JP,2,1
56,EXEZNE,AREA,108,SORIND,STRING,1,"CM,PAD,graph,B3900420",1,1
57,FAIRWY,AREA,80,OBJNAM,STRING,1,East Fairway,1,4
57,FAIRWY,AREA,80,OBJNAM,STRING,2,West Fairway,1,4
57,FAIRWY,AREA,80,OBJNAM,STRING,3,East Passage,1,4
57,FAIRWY,AREA,80,OBJNAM,STRING,4,West Passage,1,4
60,FSHHAV,POINT,78,INFORM,STRING,1,Always under water/submerged,18,1
72,HRBARE,AREA,80,OBJNAM,STRING,1,No 3 Area,1,3
72,HRBARE,AREA,80,OBJNAM,STRING,2,No 2 Area,1,3
72,HRBARE,AREA,80,OBJNAM,STRING,3,No1 Area,1,3
73,HRBFAC,POINT,80,OBJNAM,STRING,1,Tohoku Grain Terminal,1,1
73,HRBFAC,AREA,20,CATHAF,LIST,1,[9],1,1
78,ITDARE,AREA,82,NATSUR,LIST,1,[9],25,4
78,ITDARE,AREA,82,NATSUR,LIST,2,[56],5,4
78,ITDARE,AREA,82,NATSUR,LIST,3,[1],4,4
78,ITDARE,AREA,82,NATSUR,LIST,4,[4],4,4
79,LAKARE,AREA,80,OBJNAM,STRING,1,Ane Lake,1,1
86,LIGHTS,POINT,25,CATLIT,BYTE,1,5,5,4
86,LIGHTS,POINT,25,CATLIT,BYTE,2,8,2,4
86,LIGHTS,POINT,25,CATLIT,BYTE,3,6,1,4
86,LIGHTS,POINT,25,CATLIT,BYTE,4,11,1,4
86,LIGHTS,POINT,59,COLOUR,LIST,1,[6],28,6
86,LIGHTS,POINT,59,COLOUR,LIST,2,[4],23,6
86,LIGHTS,POINT,59,COLOUR,LIST,3,[3],23,6
86,LIGHTS,POINT,59,COLOUR,LIST,4,[1],15,6
86,LIGHTS,POINT,59,COLOUR,LIST,5,"[1,1,4]",2,6
86,LIGHTS,POINT,59,COLOUR,LIST,6,"[1,4]",2,6
86,LIGHTS,POINT,73,HEIGHT,REAL,1,12,10,16
86,LIGHTS,POINT,73,HEIGHT,REAL,2,14,6,16
86,LIGHTS,POINT,73,HEIGHT,REAL,3,57,4,16
86,LIGHTS,POINT,73,HEIGHT,REAL,4,11,4,16
86,LIGHTS,POINT,73,HEIGHT,REAL,5,5,4,16
86,LIGHTS,POINT,73,HEIGHT,REAL,6,9,3,16
86,LIGHTS,POINT,73,HEIGHT,REAL,7,17,3,16
86,LIGHTS,POINT,73,HEIGHT,REAL,8,22,3,16
86,LIGHTS,POINT,73,HEIGHT,REAL,9,69,2,16
86,LIGHTS,POINT,73,HEIGHT,REAL,10,79,2,16
86,LIGHTS,POINT,73,HEIGHT,REAL,11,7,2,16
86,LIGHTS,POINT,73,HEIGHT,REAL,12,16,2,16
86,LIGHTS,POINT,73,HEIGHT,REAL,13,4,2,16
86,LIGHTS,POINT,73,HEIGHT,REAL,14,8,1,16
86,LIGHTS,POINT,73,HEIGHT,REAL,15,31,1,16
86,LIGHTS,POINT,73,HEIGHT,REAL,16,10,1,16
86,LIGHTS,POINT,78,INFORM,STRING,1,2 fl in 3s,4,5
86,LIGHTS,POINT,78,INFORM,STRING,2,The white light can be apparent on 8M,2,5
86,LIGHTS,POINT,78,INFORM,STRING,3,Illuminates Hinode Iwa 430m NNW,2,5
86,LIGHTS,POINT,78,INFORM,STRING,4,FW spotlight illuminates Hinode Iwa.,1,5
86,LIGHTS,POINT,78,INFORM,STRING,5,More than one,1,5
86,LIGHTS,POINT,58,LITCHR,BYTE,1,2,35,4
86,LIGHTS,POINT,58,LITCHR,BYTE,2,7,13,4
86,LIGHTS,POINT,58,LITCHR,BYTE,3,1,6,4
86,LIGHTS,POINT,58,LITCHR,BYTE,4,19,4,4
86,LIGHTS,POINT,80,OBJNAM,STRING,1,C1,2,6
86,LIGHTS,POINT,80,OBJNAM,STRING,2,C2,1,6
86,LIGHTS,POINT,80,OBJNAM,STRING,3,R1,1,6
86,LIGHTS,POINT,80,OBJNAM,STRING,4,R2,1,6
86,LIGHTS,POINT,80,OBJNAM,STRING,5,L1,1,6
86,LIGHTS,POINT,80,OBJNAM,STRING,6,L2,1,6
86,LIGHTS,POINT,93,QUAVEM,BYTE,1,1,12,1
86,LIGHTS,POINT,100,SECTR1,WORD10,1,228,3,2
86,LIGHTS,POINT,100,SECTR1,WORD10,2,48,3,2
86,LIGHTS,POINT,101,SECTR2,WORD10,1,48,3,2
86,LIGHTS,POINT,101,SECTR2,WORD10,2,228,3,2
86,LIGHTS,POINT,72,SIGGRP,STRING,1,(1),38,2
86,LIGHTS,POINT,72,SIGGRP,STRING,2,(2),14,2
86,LIGHTS,POINT,86,SIGPER,WORD10,1,3,10,7
86,LIGHTS,POINT,86,SIGPER,WORD10,2,6,10,7
86,LIGHTS,POINT,86,SIGPER,WORD10,3,4,7,7
86,LIGHTS,POINT,86,SIGPER,WORD10,4,9,6,7
86,LIGHTS,POINT,86,SIGPER,WORD10,5,5,5,7
86,LIGHTS,POINT,86,SIGPER,WORD10,6,10,4,7
86,LIGHTS,POINT,86,SIGPER,WORD10,7,8,4,7
86,LIGHTS,POINT,108,SORIND,STRING,1,"GB,MDHS,graph,LL F-6624.7.C",1,14
86,LIGHTS,POINT,108,SORIND,STRING,2,"GB,MDHS,graph,LL F-6624.7.D",1,14
86,LIGHTS,POINT,108,SORIND,STRING,3,"GB,MDHS,graph,LL F-6624.7.E",1,14
86,LIGHTS,POINT,108,SORIND,STRING,4,"GB,MDHS,graph,LL F-6624.7.F",1,14
86,LIGHTS,POINT,108,SORIND,STRING,5,"GB,MDHS,graph,LL F-6624.7.A",1,14
86,LIGHTS,POINT,108,SORIND,STRING,6,"GB,MDHS,graph,LL F-6624.7.B",1,14
86,LIGHTS,POINT,108,SORIND,STRING,7,"GB,MDHS,graph,LL F-6623.2.A",1,14
86,LIGHTS,POINT,108,SORIND,STRING,8,"GB,UKHO,graph,LL M-6624.62",1,14
86,LIGHTS,POINT,108,SORIND,STRING,9,"GB,UKHO,graph,LL M-6624.621",1,14
86,LIGHTS,POINT,108,SORIND,STRING,10,"GB,UKHO,graph,LL M-6624.64",1,14
86,LIGHTS,POINT,108,SORIND,STRING,11,"GB,UKHO,graph,LL M-6624.641",1,14
86,LIGHTS,POINT,108,SORIND,STRING,12,"GB,UKHO,graph,LL M-6624.63",1,14
86,LIGHTS,POINT,108,SORIND,STRING,13,"GB,UKHO,graph,LL M-6624.631",1,14
86,LIGHTS,POINT,108,SORIND,STRING,14,"GB,UKHO,graph,LL M-6624.5",1,14
86,LIGHTS,POINT,109,STATUS,LIST,1,[8],26,1
86,LIGHTS,POINT,115,VALNMR,WORD10,1,4,16,7
86,LIGHTS,POINT,115,VALNMR,WORD10,2,6,7,7
86,LIGHTS,POINT,115,VALNMR,WORD10,3,3,7,7
86,LIGHTS,POINT,115,VALNMR,WORD10,4,5,7,7
86,LIGHTS,POINT,115,VALNMR,WORD10,5,19,4,7
86,LIGHTS,POINT,115,VALNMR,WORD10,6,7,3,7
86,LIGHTS,POINT,115,VALNMR,WORD10,7,2,1,7
81,LNDARE,AREA,80,OBJNAM,STRING,1,Honshu,1,3
81,LNDARE,AREA,80,OBJNAM,STRING,2,Todo Shima,1,3
81,LNDARE,AREA,80,OBJNAM,STRING,3,Hinode Iwa,1,3
95,MONUMT,POINT,65,CONVIS,BYTE,1,2,2,1
96,MORFAC,POINT,29,CATMOR,BYTE,1,1,7,1
96,MORFAC,POINT,78,INFORM,STRING,1,Always dry,1,1
96,MORFAC,AREA,29,CATMOR,BYTE,1,1,2,1
96,MORFAC,AREA,78,INFORM,STRING,1,Always dry,2,1
210,M_PROD,AREA,150,CPDATE,STRING,1,20080102,2,5
210,M_PROD,AREA,150,CPDATE,STRING,2,20060322,2,5
210,M_PROD,AREA,150,CPDATE,STRING,3,20141006,1,5
210,M_PROD,AREA,150,CPDATE,STRING,4,20140602,1,5
210,M_PROD,AREA,150,CPDATE,STRING,5,20140505,1,5
97,NATARE,AREA,78,INFORM,STRING,1,"Jeppesen adopts ""International Boundaries and National Limits"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.",3,1
97,NATARE,AREA,81,NATION,STRING,1,JP,3,1
99,OBSTRN,POINT,69,EXPSOU,BYTE,1,2,1,1
99,OBSTRN,POINT,78,INFORM,STRING,1,Wave Meter,2,1
99,OBSTRN,POINT,116,VALSOU,WORD10,1,25,2,4
99,OBSTRN,POINT,116,VALSOU,WORD10,2,1.5,2,4
99,OBSTRN,POINT,116,VALSOU,WORD10,3,1.2,1,4
99,OBSTRN,POINT,116,VALSOU,WORD10,4,4.9,1,4
99,OBSTRN,POINT,124,WATLEV,BYTE,1,3,6,1
99,OBSTRN,AREA,78,INFORM,STRING,1,Crib|Caissons,2,2
99,OBSTRN,AREA,78,INFORM,STRING,2,Crib|Caisson Area,1,2
99,OBSTRN,AREA,116,VALSOU,WORD10,1,4.9,1,3
99,OBSTRN,AREA,116,VALSOU,WORD10,2,1.2,1,3
99,OBSTRN,AREA,116,VALSOU,WORD10,3,1.5,1,3
99,OBSTRN,AREA,124,WATLEV,BYTE,1,3,70,1
103,PILPNT,POINT,78,INFORM,STRING,1,Always dry,8,2
103,PILPNT,POINT,78,INFORM,STRING,2,Private,1,2
107,PIPSOL,LINE,35,CATPIP,BYTE,1,1,2,1
107,PIPSOL,LINE,78,INFORM,STRING,1,"PIPELINES|Mariners are advised not to anchor or trawl in the vicinity of pipelines. Gas from a damaged oil or gas pipeline could cause an explosion, loss of a vessels buoyancy or other serious hazard. Pipelines are not always buried and may effectively reduce the charted depth by up to 2 metres. They may also span seabed undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. See Annual Notice to Mariners No 24 and The Mariners Handbook.",1,1
107,PIPSOL,LINE,89,PRODCT,LIST,1,[1],1,2
107,PIPSOL,LINE,89,PRODCT,LIST,2,[2],1,2
111,PRDINS,POINT,78,INFORM,STRING,1,Production area,12,1
111,PRDINS,POINT,80,OBJNAM,STRING,1,"Pacific Metals CO., LTD.",2,11
111,PRDINS,POINT,80,OBJNAM,STRING,2,"Tozai Oilterminal Co.,Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,3,Tohoku Satetsu,1,11
111,PRDINS,POINT,80,OBJNAM,STRING,4,"MRC Unitec Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,5,Toshin Steel Industry,1,11
111,PRDINS,POINT,80,OBJNAM,STRING,6,"Hachinohe Gas Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,7,"Koshuha Foundry Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,8,"Sumimetal Mining Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,9,"Hachinohe Smelting Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,10,"Kitanihon Shipbuilding Co., Ltd.",1,11
111,PRDINS,POINT,80,OBJNAM,STRING,11,JX Nippon Oil & Energy Corporation,1,11
111,PRDINS,POINT,89,PRODCT,LIST,1,[1],1,2
111,PRDINS,POINT,89,PRODCT,LIST,2,[2],1,2
111,PRDINS,POINT,91,QUAPOS,BYTE,1,4,11,1
111,PRDINS,AREA,78,INFORM,STRING,1,Tank farm,9,4
111,PRDINS,AREA,78,INFORM,STRING,2,Production area,3,4
111,PRDINS,AREA,78,INFORM,STRING,3,Production area|Silo farm,2,4
111,PRDINS,AREA,78,INFORM,STRING,4,Tank farm|Oil Tank Yard,1,4
111,PRDINS,AREA,80,OBJNAM,STRING,1,Mitsubishi Paper Mills Limited,1,3
111,PRDINS,AREA,80,OBJNAM,STRING,2,"Tokyotekko Co., Ltd.",1,3
111,PRDINS,AREA,80,OBJNAM,STRING,3,Yoshida Sangyo Corporation,1,3
111,PRDINS,AREA,89,PRODCT,LIST,1,[1],1,1
112,PYLONS,POINT,78,INFORM,STRING,1,Power transmission pylon/pole,2,1
129,RIVERS,AREA,80,OBJNAM,STRING,1,Mabechi River,1,3
129,RIVERS,AREA,80,OBJNAM,STRING,2,Oirase River,1,3
129,RIVERS,AREA,80,OBJNAM,STRING,3,Gonohe Kawa,1,3
118,RTPBCN,POINT,38,CATRTB,BYTE,1,1,1,1
118,RTPBCN,POINT,108,SORIND,STRING,1,"GB,MDHS,graph,LL F-6620.A",1,1
138,SBDARE,POINT,90,NATQUA,LIST,1,[1],144,2
138,SBDARE,POINT,90,NATQUA,LIST,2,[3],1,2
138,SBDARE,POINT,82,NATSUR,LIST,1,[4],176,11
138,SBDARE,POINT,82,NATSUR,LIST,2,[1],54,11
138,SBDARE,POINT,82,NATSUR,LIST,3,[9],15,11
138,SBDARE,POINT,82,NATSUR,LIST,4,[5],14,11
138,SBDARE,POINT,82,NATSUR,LIST,5,"[4,17]",9,11
138,SBDARE,POINT,82,NATSUR,LIST,6,"[1,4]",8,11
138,SBDARE,POINT,82,NATSUR,LIST,7,"[4,1]",7,11
138,SBDARE,POINT,82,NATSUR,LIST,8,"[6,17,61]",1,11
138,SBDARE,POINT,82,NATSUR,LIST,9,"[1,4,17]",1,11
138,SBDARE,POINT,82,NATSUR,LIST,10,"[1,6]",1,11
138,SBDARE,POINT,82,NATSUR,LIST,11,"[1,4,5]",1,11
138,SBDARE,AREA,82,NATSUR,LIST,1,[9],5,3
138,SBDARE,AREA,82,NATSUR,LIST,2,[4],3,3
138,SBDARE,AREA,82,NATSUR,LIST,3,[5],1,3
136,SEAARE,AREA,80,OBJNAM,STRING,1,North Pacific Ocean,1,2
136,SEAARE,AREA,80,OBJNAM,STRING,2,Hamanaka,1,2
142,SILBUI,POINT,78,INFORM,STRING,1,More than one,1,3
142,SILBUI,POINT,78,INFORM,STRING,2,more than one,1,3
142,SILBUI,POINT,78,INFORM,STRING,3,SILOS,1,3
142,SILBUI,POINT,91,QUAPOS,BYTE,1,4,2,1
140,SISTAT,POINT,47,CATSIT,LIST,1,[2],2,1
141,SISTAW,POINT,48,CATSIW,LIST,1,[10],1,1
139,SLCONS,LINE,46,CATSLC,BYTE,1,6,3,1
139,SLCONS,LINE,63,CONDTN,BYTE,1,2,5,1
139,SLCONS,LINE,78,INFORM,STRING,1,Land Area,2,1
139,SLCONS,LINE,80,OBJNAM,STRING,1,No 3,1,3
139,SLCONS,LINE,80,OBJNAM,STRING,2,Kawaragi No 1,1,3
139,SLCONS,LINE,80,OBJNAM,STRING,3,Kawaragi No 2,1,3
139,SLCONS,LINE,124,WATLEV,BYTE,1,2,204,1
139,SLCONS,AREA,46,CATSLC,BYTE,1,1,34,3
139,SLCONS,AREA,46,CATSLC,BYTE,2,6,10,3
139,SLCONS,AREA,46,CATSLC,BYTE,3,4,4,3
139,SLCONS,AREA,63,CONDTN,BYTE,1,2,8,2
139,SLCONS,AREA,63,CONDTN,BYTE,2,3,1,2
139,SLCONS,AREA,78,INFORM,STRING,1,Source date: 2005,1,1
139,SLCONS,AREA,83,NATCON,LIST,1,[3],78,1
139,SLCONS,AREA,80,OBJNAM,STRING,1,Hattaro North Breakwater,3,25
139,SLCONS,AREA,80,OBJNAM,STRING,2,Middle Breakwater,2,25
139,SLCONS,AREA,80,OBJNAM,STRING,3,Hattaro East Breakwater,2,25
139,SLCONS,AREA,80,OBJNAM,STRING,4,West Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,5,Grain Terminal,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,6,No 4 Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,7,No 3 Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,8,No 1 Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,9,No 2 Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,10,Kawaragi No 2 Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,11,No 2 Middle Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,12,Shirogane West Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,13,Japan Maritime Self Defense Force Quay,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,14,Ichikawa East Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,15,Shirogane North Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,16,Grain Terminal Pier,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,17,Ichikawa North Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,18,Ferry Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,19,Mitsubishi Paper Mills Limited Quay,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,20,Kabu Island Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,21,Shirogane Wharf,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,22,Kawaragi South Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,23,Kawaragi West Breakwater,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,24,Hachinohe Smelting Quay,1,25
139,SLCONS,AREA,80,OBJNAM,STRING,25,Kawaragi Breakwater,1,25
139,SLCONS,AREA,124,WATLEV,BYTE,1,2,100,3
139,SLCONS,AREA,124,WATLEV,BYTE,2,4,9,3
139,SLCONS,AREA,124,WATLEV,BYTE,3,3,1,3
143,SLIPWY,AREA,80,OBJNAM,STRING,1,Ichikawa Slipway,1,1
143,SLIPWY,AREA,124,WATLEV,BYTE,1,4,2,2
143,SLIPWY,AREA,124,WATLEV,BYTE,2,2,1,2
155,TESARE,AREA,78,INFORM,STRING,1,"Jeppesen adopts ""International Boundaries and National Limits"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.",3,1
155,TESARE,AREA,81,NATION,STRING,1,JP,3,1
158,TOWERS,POINT,52,CATTOW,BYTE,1,1,22,3
158,TOWERS,POINT,52,CATTOW,BYTE,2,3,19,3
158,TOWERS,POINT,52,CATTOW,BYTE,3,2,10,3
158,TOWERS,POINT,59,COLOUR,LIST,1,[1],22,1
158,TOWERS,POINT,65,CONVIS,BYTE,1,1,23,2
158,TOWERS,POINT,65,CONVIS,BYTE,2,2,4,2
158,TOWERS,POINT,73,HEIGHT,REAL,1,51,1,2
158,TOWERS,POINT,73,HEIGHT,REAL,2,53,1,2
158,TOWERS,POINT,78,INFORM,STRING,1,Radio,4,3
158,TOWERS,POINT,78,INFORM,STRING,2,Ice Supply Tower,2,3
158,TOWERS,POINT,78,INFORM,STRING,3,Framework tower,1,3
158,TOWERS,POINT,83,NATCON,LIST,1,[2],12,1
158,TOWERS,POINT,91,QUAPOS,BYTE,1,4,6,1
158,TOWERS,POINT,108,SORIND,STRING,1,"GB,UKHO,graph,LL M-6620",3,17
158,TOWERS,POINT,108,SORIND,STRING,2,"GB,UKHO,graph,LL M-6621",2,17
158,TOWERS,POINT,108,SORIND,STRING,3,"GB,UKHO,graph,LL M-6625.5",2,17
158,TOWERS,POINT,108,SORIND,STRING,4,"GB,UKHO,graph,LL M-6624.86",2,17
158,TOWERS,POINT,108,SORIND,STRING,5,"GB,UKHO,graph,LL M-6619.5",1,17
158,TOWERS,POINT,108,SORIND,STRING,6,"GB,UKHO,graph,LL M-6618.4",1,17
158,TOWERS,POINT,108,SORIND,STRING,7,"GB,UKHO,graph,LL M-6625.7",1,17
158,TOWERS,POINT,108,SORIND,STRING,8,"GB,UKHO,graph,LL M-6624.85",1,17
158,TOWERS,POINT,108,SORIND,STRING,9,"GB,MDHS,graph,LL F-6623.2",1,17
158,TOWERS,POINT,108,SORIND,STRING,10,"GB,MDHS,graph,LL F-6621",1,17
158,TOWERS,POINT,108,SORIND,STRING,11,"GB,MDHS,graph,LL F-6622",1,17
158,TOWERS,POINT,108,SORIND,STRING,12,"GB,MDHS,graph,LL F-6625.5",1,17
158,TOWERS,POINT,108,SORIND,STRING,13,"GB,MDHS,graph,LL F-6620",1,17
158,TOWERS,POINT,108,SORIND,STRING,14,"GB,MDHS,graph,LL F-6624.4",1,17
158,TOWERS,POINT,108,SORIND,STRING,15,"GB,MDHS,graph,LL F-6624.85",1,17
158,TOWERS,POINT,108,SORIND,STRING,16,"GB,UKHO,graph,LL M-6622",1,17
158,TOWERS,POINT,108,SORIND,STRING,17,"GB,UKHO,graph,LL M-6624.4",1,17
158,TOWERS,POINT,122,VERLEN,REAL,1,9,7,7
158,TOWERS,POINT,122,VERLEN,REAL,2,23,4,7
158,TOWERS,POINT,122,VERLEN,REAL,3,10,4,7
158,TOWERS,POINT,122,VERLEN,REAL,4,5,3,7
158,TOWERS,POINT,122,VERLEN,REAL,5,16,2,7
158,TOWERS,POINT,122,VERLEN,REAL,6,6,1,7
158,TOWERS,POINT,122,VERLEN,REAL,7,8,1,7
168,UWTROC,POINT,69,EXPSOU,BYTE,1,2,3,1
168,UWTROC,POINT,116,VALSOU,WORD10,1,15,5,69
168,UWTROC,POINT,116,VALSOU,WORD10,2,9.9,4,69
168,UWTROC,POINT,116,VALSOU,WORD10,3,2.6,4,69
168,UWTROC,POINT,116,VALSOU,WORD10,4,4.4,4,69
168,UWTROC,POINT,116,VALSOU,WORD10,5,2,4,69
168,UWTROC,POINT,116,VALSOU,WORD10,6,17,3,69
168,UWTROC,POINT,116,VALSOU,WORD10,7,18,3,69
168,UWTROC,POINT,116,VALSOU,WORD10,8,19,3,69
168,UWTROC,POINT,116,VALSOU,WORD10,9,21,3,69
168,UWTROC,POINT,116,VALSOU,WORD10,10,0.3,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,11,1.7,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,12,2.2,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,13,4.1,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,14,0.7,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,15,2.3,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,16,7.7,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,17,7.8,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,18,8.8,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,19,16,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,20,20,2,69
168,UWTROC,POINT,116,VALSOU,WORD10,21,0.5,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,22,0.8,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,23,1.4,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,24,1.6,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,25,2.5,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,26,2.7,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,27,3.1,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,28,4,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,29,4.7,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,30,4.8,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,31,5.7,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,32,5.9,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,33,6.2,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,34,6.3,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,35,6.5,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,36,6.8,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,37,6.9,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,38,7,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,39,7.3,1,69
168,UWTROC,POINT,116,VALSOU,WORD10,40,7.4,1,69
168,UWTROC,POINT,124,WATLEV,BYTE,1,3,110,3
168,UWTROC,POINT,124,WATLEV,BYTE,2,2,56,3
168,UWTROC,POINT,124,WATLEV,BYTE,3,4,10,3
176,WRECKS,POINT,57,CATWRK,BYTE,1,3,477,2
176,WRECKS,POINT,57,CATWRK,BYTE,2,2,2,2
176,WRECKS,POINT,116,VALSOU,WORD10,1,11.2,7,103
176,WRECKS,POINT,116,VALSOU,WORD10,2,12.2,5,103
176,WRECKS,POINT,116,VALSOU,WORD10,3,12.6,5,103
176,WRECKS,POINT,116,VALSOU,WORD10,4,9.6,4,103
176,WRECKS,POINT,116,VALSOU,WORD10,5,10.2,4,103
176,WRECKS,POINT,116,VALSOU,WORD10,6,11.1,4,103
176,WRECKS,POINT,116,VALSOU,WORD10,7,12,4,103
176,WRECKS,POINT,116,VALSOU,WORD10,8,12.5,4,103
176,WRECKS,POINT,116,VALSOU,WORD10,9,6.3,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,10,7,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,11,7.3,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,12,8.3,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,13,9,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,14,9.5,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,15,11.4,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,16,11.9,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,17,12.3,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,18,12.7,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,19,13,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,20,13.1,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,21,13.4,3,103
176,WRECKS,POINT,116,VALSOU,WORD10,22,23.5,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,23,21.5,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,24,3,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,25,3.7,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,26,4.3,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,27,5,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,28,5.1,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,29,5.7,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,30,6,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,31,6.2,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,32,6.9,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,33,7.8,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,34,8.1,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,35,8.5,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,36,8.7,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,37,9.1,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,38,9.4,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,39,9.9,2,103
176,WRECKS,POINT,116,VALSOU,WORD10,40,10.3,2,103
176,WRECKS,POINT,124,WATLEV,BYTE,1,3,480,1
176,WRECKS,AREA,57,CATWRK,BYTE,1,2,1,1
176,WRECKS,AREA,116,VALSOU,WORD10,1,7,1,1
176,WRECKS,AREA,124,WATLEV,BYTE,1,3,1,1
201,_extgn,POINT,60,COLMAR,BYTE,1,11,1,1
201,_extgn,POINT,78,INFORM,STRING,1,Height: 123m|Chimney|Visually conspicuous,1,1
217,_m_sor,META,151,CSCALE,LONG,1,3000000,1,6
217,_m_sor,META,151,CSCALE,LONG,2,1200000,1,6
217,_m_sor,META,151,CSCALE,LONG,3,250000,1,6
217,_m_sor,META,151,CSCALE,LONG,4,20000,1,6
217,_m_sor,META,151,CSCALE,LONG,5,12000,1,6
217,_m_sor,META,151,CSCALE,LONG,6,20000000,1,6
217,_m_sor,META,75,HORDAT,BYTE,1,2,6,1
217,_m_sor,META,84,MARSYS,BYTE,1,2,4,2
217,_m_sor,META,84,MARSYS,BYTE,2,1,2,2
217,_m_sor,META,156,NMDATE,STRING,1,20021101,2,5
217,_m_sor,META,156,NMDATE,STRING,2,20140926,1,5
217,_m_sor,META,156,NMDATE,STRING,3,20140523,1,5
217,_m_sor,META,156,NMDATE,STRING,4,20060323,1,5
217,_m_sor,META,156,NMDATE,STRING,5,20140328,1,5
217,_m_sor,META,96,RECDAT,STRING,1,20080102,2,5
217,_m_sor,META,96,RECDAT,STRING,2,20141006,1,5
217,_m_sor,META,96,RECDAT,STRING,3,20140602,1,5
217,_m_sor,META,96,RECDAT,STRING,4,20060322,1,5
217,_m_sor,META,96,RECDAT,STRING,5,20140505,1,5
217,_m_sor,META,108,SORIND,STRING,1,"IT,CMAP,graph,W-135",1,6
217,_m_sor,META,108,SORIND,STRING,2,"JP,JHOD,graph,W1154",1,6
217,_m_sor,META,108,SORIND,STRING,3,"JP,JHOD,graph,W53",1,6
217,_m_sor,META,108,SORIND,STRING,4,"GB,MDHS,graph,2959B",1,6
217,_m_sor,META,108,SORIND,STRING,5,"JP,JHOD,graph,W65",1,6
217,_m_sor,META,108,SORIND,STRING,6,"IT,CMAP,graph,W-14",1,6
217,_m_sor,META,121,VERDAT,BYTE,1,11,3,2
217,_m_sor,META,121,VERDAT,BYTE,2,10,1,2
217,_m_sor,META,173,_chcod,STRING,1,90-01520,1,6
217,_m_sor,META,173,_chcod,STRING,2,31-0F270,1,6
217,_m_sor,META,173,_chcod,STRING,3,31-0F710,1,6
217,_m_sor,META,173,_chcod,STRING,4,31-0684B,1,6
217,_m_sor,META,173,_chcod,STRING,5,31-0F700,1,6
217,_m_sor,META,173,_chcod,STRING,6,90-00310,1,6
217,_m_sor,META,174,_dgdat,STRING,1,20000101,2,5
217,_m_sor,META,174,_dgdat,STRING,2,20081003,1,5
217,_m_sor,META,174,_dgdat,STRING,3,20070914,1,5
217,_m_sor,META,174,_dgdat,STRING,4,20030320,1,5
217,_m_sor,META,174,_dgdat,STRING,5,20120313,1,5
217,_m_sor,META,180,_hvdat,BYTE,1,3,3,2
217,_m_sor,META,180,_hvdat,BYTE,2,21,1,2
217,_m_sor,META,175,_quart,BYTE,1,4,6,1
217,_m_sor,META,177,_sorhd,BYTE,1,2,6,1
217,_m_sor,META,178,_wgsox,REAL,1,0,6,1
217,_m_sor,META,179,_wgsoy,REAL,1,0,6,1
198,_texto,POINT,139,_texta,COMPLEX,1,"{""prefix"":[0,12,0],""text"":""Same Kado""}",3,104
198,_texto,POINT,139,_texta,COMPLEX,2,"{""prefix"":[0,12,0],""text"":""Hachinohe""}",3,104
198,_texto,POINT,139,_texta,COMPLEX,3,"{""prefix"":[0,12,0],""text"":""Hachinohe Fishing Harbour""}",3,104
198,_texto,POINT,139,_texta,COMPLEX,4,"{""prefix"":[0,12,0],""text"":""Misawa""}",2,104
198,_texto,POINT,139,_texta,COMPLEX,5,"{""prefix"":[0,12,0],""text"":""Hamanaka""}",2,104
198,_texto,POINT,139,_texta,COMPLEX,6,"{""prefix"":[0,12,0],""text"":""Hashimukai""}",2,104
198,_texto,POINT,139,_texta,COMPLEX,7,"{""prefix"":[128,12,0],""text"":""HACHINOHE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,8,"{""prefix"":[0,12,0],""text"":""AOMORI""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,9,"{""prefix"":[0,12,0],""text"":""Hachinohe Ko""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,10,"{""prefix"":[0,12,0],""text"":""Kabayama Reef""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,11,"{""prefix"":[0,12,0],""text"":""Hitokawame""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,12,"{""prefix"":[0,12,0],""text"":""Mikawame""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,13,"{""prefix"":[0,12,0],""text"":""Minato""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,14,"{""prefix"":[0,12,0],""text"":""Oirase Town""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,15,"{""prefix"":[0,12,0],""text"":""Okuki""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,16,"{""prefix"":[0,12,0],""text"":""Same""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,17,"{""prefix"":[0,12,0],""text"":""Shirahama""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,18,"{""prefix"":[0,12,0],""text"":""CONVEYOR""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,19,"{""prefix"":[0,12,0],""text"":""H A C H I T A R O""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,20,"{""prefix"":[0,12,0],""text"":""HACHINOHE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,21,"{""prefix"":[16,12,0],""text"":""HACHINOHE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,22,"{""prefix"":[0,12,0],""text"":""HINODE IWA(ILLUM)""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,23,"{""prefix"":[0,12,0],""text"":""HOUSE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,24,"{""prefix"":[0,12,0],""text"":""K A W A R A G I""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,25,"{""prefix"":[0,12,0],""text"":""KABAYAMA NE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,26,"{""prefix"":[0,12,0],""text"":""KABU SH.""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,27,"{""prefix"":[0,12,0],""text"":""KO NE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,28,"{""prefix"":[0,12,0],""text"":""MABECHI KAWA""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,29,"{""prefix"":[0,12,0],""text"":""MITSUBUSHI JETTY""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,30,"{""prefix"":[0,12,0],""text"":""MONOMIWA""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,31,"{""prefix"":[0,12,0],""text"":""N. BREAKWATER""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,32,"{""prefix"":[0,12,0],""text"":""NIIDA KAWA""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,33,"{""prefix"":[0,12,0],""text"":""No 1 WHARF""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,34,"{""prefix"":[0,12,0],""text"":""No 2 WHARF""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,35,"{""prefix"":[0,12,0],""text"":""No 4 WHARF""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,36,"{""prefix"":[0,12,0],""text"":""O SAKI""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,37,"{""prefix"":[0,12,0],""text"":""OGOMUNE""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,38,"{""prefix"":[0,12,0],""text"":""SAME KADO""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,39,"{""prefix"":[0,12,0],""text"":""SHIROGANE WHARF""}",1,104
198,_texto,POINT,139,_texta,COMPLEX,40,"{""prefix"":[0,12,0],""text"":""SILOS""}",1,104
1 object_class_id object_class geometry_type attribute_id attribute_name value_type rank value count total_distinct_values
2 194 $AREAS AREA 129 $SCODE STRING 1 II25 11 1
3 191 $COMPS POINT 128 $ANNCH STRING 1 00.00 E 4 2
4 191 $COMPS POINT 128 $ANNCH STRING 2 01.00 W 1 2
5 191 $COMPS POINT 127 $CYEAR REAL 1 2012 4 2
6 191 $COMPS POINT 127 $CYEAR REAL 2 2002 1 2
7 191 $COMPS POINT 126 $VARIA STRING 1 08.25 W 5 1
8 193 $LINES LINE 129 $SCODE STRING 1 IH40 6 3
9 193 $LINES LINE 129 $SCODE STRING 2 IH41 6 3
10 193 $LINES LINE 129 $SCODE STRING 3 IK1 3 3
11 4 ACHARE AREA 3 CATACH LIST 1 [5] 2 1
12 1 AIRARE POINT 80 OBJNAM STRING 1 Hachinohe Airfield 1 1
13 7 BCNLAT POINT 103 BCNSHP BYTE 1 3 4 1
14 7 BCNLAT POINT 24 CATLAM BYTE 1 2 15 1
15 7 BCNLAT POINT 60 COLMAR BYTE 1 3 15 1
16 7 BCNLAT POINT 78 INFORM STRING 1 Concrete 3 3
17 7 BCNLAT POINT 78 INFORM STRING 2 Metal 2 3
18 7 BCNLAT POINT 78 INFORM STRING 3 Metal|Framework tower 1 3
19 7 BCNLAT POINT 108 SORIND STRING 1 GB,UKHO,graph,LL M-6623 2 11
20 7 BCNLAT POINT 108 SORIND STRING 2 GB,UKHO,graph,LL M-6624.8 2 11
21 7 BCNLAT POINT 108 SORIND STRING 3 GB,UKHO,graph,LL M-6624.7 2 11
22 7 BCNLAT POINT 108 SORIND STRING 4 GB,UKHO,graph,LL M-6624 2 11
23 7 BCNLAT POINT 108 SORIND STRING 5 GB,UKHO,graph,LL M-6619 1 11
24 7 BCNLAT POINT 108 SORIND STRING 6 GB,MDHS,graph,LL F-6623 1 11
25 7 BCNLAT POINT 108 SORIND STRING 7 GB,MDHS,graph,LL F-6623.6 1 11
26 7 BCNLAT POINT 108 SORIND STRING 8 GB,MDHS,graph,LL F-6624.8 1 11
27 7 BCNLAT POINT 108 SORIND STRING 9 GB,MDHS,graph,LL F-6624.7 1 11
28 7 BCNLAT POINT 108 SORIND STRING 10 GB,MDHS,graph,LL F-6624 1 11
29 7 BCNLAT POINT 108 SORIND STRING 11 GB,UKHO,graph,LL M-6623.6 1 11
30 7 BCNLAT POINT 122 VERLEN REAL 1 10 6 4
31 7 BCNLAT POINT 122 VERLEN REAL 2 9 5 4
32 7 BCNLAT POINT 122 VERLEN REAL 3 16 3 4
33 7 BCNLAT POINT 122 VERLEN REAL 4 6 1 4
34 9 BCNSPP POINT 51 CATSPM BYTE 1 6 4 2
35 9 BCNSPP POINT 51 CATSPM BYTE 2 27 1 2
36 9 BCNSPP POINT 60 COLMAR BYTE 1 5 2 1
37 9 BCNSPP POINT 78 INFORM STRING 1 Metal 4 1
38 9 BCNSPP POINT 108 SORIND STRING 1 GB,UKHO,graph,LL M-6625 2 3
39 9 BCNSPP POINT 108 SORIND STRING 2 GB,UKHO,graph,LL M-6626 2 3
40 9 BCNSPP POINT 108 SORIND STRING 3 GB,UKHO,graph,LL M-6623.2 2 3
41 9 BCNSPP POINT 122 VERLEN REAL 1 43 2 2
42 9 BCNSPP POINT 122 VERLEN REAL 2 9 2 2
43 20 BOYSPP POINT 105 BOYSHP BYTE 1 1 5 2
44 20 BOYSPP POINT 105 BOYSHP BYTE 2 4 3 2
45 20 BOYSPP POINT 51 CATSPM BYTE 1 27 3 3
46 20 BOYSPP POINT 51 CATSPM BYTE 2 10 1 3
47 20 BOYSPP POINT 51 CATSPM BYTE 3 13 1 3
48 20 BOYSPP POINT 60 COLMAR BYTE 1 4 8 1
49 20 BOYSPP POINT 78 INFORM STRING 1 Private mark|Wave recorder 1 1
50 20 BOYSPP POINT 109 STATUS LIST 1 [8] 6 1
51 11 BRIDGE AREA 4 CATBRG LIST 1 [1] 2 1
52 11 BRIDGE AREA 78 INFORM STRING 1 Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m 2 2
53 11 BRIDGE AREA 78 INFORM STRING 2 Vertical Datum: Nearly highest high water 1 2
54 11 BRIDGE AREA 80 OBJNAM STRING 1 Hachinohe Bridge 1 7
55 11 BRIDGE AREA 80 OBJNAM STRING 2 Hattaro Bridge 1 7
56 11 BRIDGE AREA 80 OBJNAM STRING 3 The Numadate Bridge 1 7
57 11 BRIDGE AREA 80 OBJNAM STRING 4 The Shin-O-Hashi Bridge 1 7
58 11 BRIDGE AREA 80 OBJNAM STRING 5 Seagull Bridge 1 7
59 11 BRIDGE AREA 80 OBJNAM STRING 6 Minato Bridge 1 7
60 11 BRIDGE AREA 80 OBJNAM STRING 7 Ichikawa Bridge 1 7
61 11 BRIDGE AREA 117 VERCLR REAL 1 4.5 2 3
62 11 BRIDGE AREA 117 VERCLR REAL 2 31 2 3
63 11 BRIDGE AREA 117 VERCLR REAL 3 5.30000019073486 1 3
64 10 BRTFAC POINT 80 OBJNAM STRING 1 2 8 25
65 10 BRTFAC POINT 80 OBJNAM STRING 2 1 6 25
66 10 BRTFAC POINT 80 OBJNAM STRING 3 3 6 25
67 10 BRTFAC POINT 80 OBJNAM STRING 4 4 6 25
68 10 BRTFAC POINT 80 OBJNAM STRING 5 A 6 25
69 10 BRTFAC POINT 80 OBJNAM STRING 6 B 6 25
70 10 BRTFAC POINT 80 OBJNAM STRING 7 C 6 25
71 10 BRTFAC POINT 80 OBJNAM STRING 8 5 4 25
72 10 BRTFAC POINT 80 OBJNAM STRING 9 6 4 25
73 10 BRTFAC POINT 80 OBJNAM STRING 10 D 4 25
74 10 BRTFAC POINT 80 OBJNAM STRING 11 F 4 25
75 10 BRTFAC POINT 80 OBJNAM STRING 12 G 4 25
76 10 BRTFAC POINT 80 OBJNAM STRING 13 7 2 25
77 10 BRTFAC POINT 80 OBJNAM STRING 14 8 2 25
78 10 BRTFAC POINT 80 OBJNAM STRING 15 9 2 25
79 10 BRTFAC POINT 80 OBJNAM STRING 16 E 2 25
80 10 BRTFAC POINT 80 OBJNAM STRING 17 H 2 25
81 10 BRTFAC POINT 80 OBJNAM STRING 18 I 2 25
82 10 BRTFAC POINT 80 OBJNAM STRING 19 J 2 25
83 10 BRTFAC POINT 80 OBJNAM STRING 20 L 2 25
84 10 BRTFAC POINT 80 OBJNAM STRING 21 M 2 25
85 10 BRTFAC POINT 80 OBJNAM STRING 22 N 2 25
86 10 BRTFAC POINT 80 OBJNAM STRING 23 O 2 25
87 10 BRTFAC POINT 80 OBJNAM STRING 24 10 2 25
88 10 BRTFAC POINT 80 OBJNAM STRING 25 P 1 25
89 14 BUAARE POINT 80 OBJNAM STRING 1 Hachinohe 2 33
90 14 BUAARE POINT 80 OBJNAM STRING 2 Hashimukai 2 33
91 14 BUAARE POINT 80 OBJNAM STRING 3 Misawa 1 33
92 14 BUAARE POINT 80 OBJNAM STRING 4 Same 1 33
93 14 BUAARE POINT 80 OBJNAM STRING 5 Okuki 1 33
94 14 BUAARE POINT 80 OBJNAM STRING 6 Minato 1 33
95 14 BUAARE POINT 80 OBJNAM STRING 7 Mikawame 1 33
96 14 BUAARE POINT 80 OBJNAM STRING 8 Shirahama 1 33
97 14 BUAARE POINT 80 OBJNAM STRING 9 Hitokawame 1 33
98 14 BUAARE POINT 80 OBJNAM STRING 10 Oirase Town 1 33
99 14 BUAARE POINT 80 OBJNAM STRING 11 Tate 1 33
100 14 BUAARE POINT 80 OBJNAM STRING 12 Osawa 1 33
101 14 BUAARE POINT 80 OBJNAM STRING 13 Hinode 1 33
102 14 BUAARE POINT 80 OBJNAM STRING 14 Toyosu 1 33
103 14 BUAARE POINT 80 OBJNAM STRING 15 Hattaro 1 33
104 14 BUAARE POINT 80 OBJNAM STRING 16 Hasunuma 1 33
105 14 BUAARE POINT 80 OBJNAM STRING 17 Kawaragi 1 33
106 14 BUAARE POINT 80 OBJNAM STRING 18 Kitanuma 1 33
107 14 BUAARE POINT 80 OBJNAM STRING 19 Numadate 1 33
108 14 BUAARE POINT 80 OBJNAM STRING 20 Sunamori 1 33
109 14 BUAARE POINT 80 OBJNAM STRING 21 Tatehana 1 33
110 14 BUAARE POINT 80 OBJNAM STRING 22 Uenoyama 1 33
111 14 BUAARE POINT 80 OBJNAM STRING 23 Kami-Same 1 33
112 14 BUAARE POINT 80 OBJNAM STRING 24 Hikagezawa 1 33
113 14 BUAARE POINT 80 OBJNAM STRING 25 Shinminato 1 33
114 14 BUAARE POINT 80 OBJNAM STRING 26 Uheikawara 1 33
115 14 BUAARE POINT 80 OBJNAM STRING 27 Senzogakubo 1 33
116 14 BUAARE POINT 80 OBJNAM STRING 28 Hamana-Yachi 1 33
117 14 BUAARE POINT 80 OBJNAM STRING 29 Shimo-Oyachi 1 33
118 14 BUAARE POINT 80 OBJNAM STRING 30 Minami-Oyachi 1 33
119 14 BUAARE POINT 80 OBJNAM STRING 31 Toyama-Shinden 1 33
120 14 BUAARE POINT 80 OBJNAM STRING 32 Shimo-Matsunaeba 1 33
121 14 BUAARE POINT 80 OBJNAM STRING 33 Shimo-Mekurakubo 1 33
122 14 BUAARE AREA 80 OBJNAM STRING 1 Hachinohe 1 2
123 14 BUAARE AREA 80 OBJNAM STRING 2 Misawa 1 2
124 12 BUIREL POINT 41 CATREB BYTE 1 6 2 3
125 12 BUIREL POINT 41 CATREB BYTE 2 7 2 3
126 12 BUIREL POINT 41 CATREB BYTE 3 4 1 3
127 13 BUISGL POINT 104 BUISHP BYTE 1 4 1 1
128 13 BUISGL POINT 49 CATBUI LIST 1 [6] 5 5
129 13 BUISGL POINT 49 CATBUI LIST 2 [2] 1 5
130 13 BUISGL POINT 49 CATBUI LIST 3 [3] 1 5
131 13 BUISGL POINT 49 CATBUI LIST 4 [17] 1 5
132 13 BUISGL POINT 49 CATBUI LIST 5 [5] 1 5
133 13 BUISGL POINT 65 CONVIS BYTE 1 2 2 1
134 13 BUISGL POINT 78 INFORM STRING 1 Light support|Not in use 1 1
135 13 BUISGL POINT 80 OBJNAM STRING 1 Tohoku Electric Power Thermal Power Plants 1 2
136 13 BUISGL POINT 80 OBJNAM STRING 2 Japan Maritime Self Defense Force Air Base 1 2
137 13 BUISGL POINT 91 QUAPOS BYTE 1 4 2 1
138 13 BUISGL AREA 49 CATBUI LIST 1 [19] 7 4
139 13 BUISGL AREA 49 CATBUI LIST 2 [13] 1 4
140 13 BUISGL AREA 49 CATBUI LIST 3 [3,2] 1 4
141 13 BUISGL AREA 49 CATBUI LIST 4 [10] 1 4
142 13 BUISGL AREA 78 INFORM STRING 1 Port Management Office 1 7
143 13 BUISGL AREA 78 INFORM STRING 2 Fisheries High School 1 7
144 13 BUISGL AREA 78 INFORM STRING 3 Fishery Hall 1 7
145 13 BUISGL AREA 78 INFORM STRING 4 Fisheries Laboratory 1 7
146 13 BUISGL AREA 78 INFORM STRING 5 Coast Guard Office|Marine Procedure Commission Agent Office 1 7
147 13 BUISGL AREA 78 INFORM STRING 6 Fishing Harbor Development Office 1 7
148 13 BUISGL AREA 78 INFORM STRING 7 Regional Development Bureau,Port And Airport Office 1 7
149 13 BUISGL AREA 80 OBJNAM STRING 1 Tohoku Electric Power Electric Substation 1 7
150 13 BUISGL AREA 80 OBJNAM STRING 2 No.1 Fish Market 1 7
151 13 BUISGL AREA 80 OBJNAM STRING 3 No.2 Fish Market 1 7
152 13 BUISGL AREA 80 OBJNAM STRING 4 No.3 Fish Market 1 7
153 13 BUISGL AREA 80 OBJNAM STRING 5 Maritime Office 1 7
154 13 BUISGL AREA 80 OBJNAM STRING 6 Construction Office 1 7
155 13 BUISGL AREA 80 OBJNAM STRING 7 Fisherman's Union 1 7
156 21 CBLOHD LINE 6 CATCBL BYTE 1 1 5 1
157 21 CBLOHD LINE 93 QUAVEM BYTE 1 1 1 1
158 21 CBLOHD LINE 117 VERCLR REAL 1 12 1 1
159 22 CBLSUB LINE 6 CATCBL BYTE 1 1 2 1
160 22 CBLSUB LINE 109 STATUS LIST 1 [4] 3 1
161 33 CHIMNY POINT 59 COLOUR LIST 1 [3,1] 2 1
162 33 CHIMNY POINT 65 CONVIS BYTE 1 2 8 2
163 33 CHIMNY POINT 65 CONVIS BYTE 2 1 1 2
164 33 CHIMNY POINT 73 HEIGHT REAL 1 123 2 7
165 33 CHIMNY POINT 73 HEIGHT REAL 2 30 2 7
166 33 CHIMNY POINT 73 HEIGHT REAL 3 27 1 7
167 33 CHIMNY POINT 73 HEIGHT REAL 4 81 1 7
168 33 CHIMNY POINT 73 HEIGHT REAL 5 40 1 7
169 33 CHIMNY POINT 73 HEIGHT REAL 6 71 1 7
170 33 CHIMNY POINT 73 HEIGHT REAL 7 82 1 7
171 33 CHIMNY POINT 78 INFORM STRING 1 3 CHYS 1 1
172 35 COALNE LINE 147 CATCOA BYTE 1 1 8 1
173 36 CONZNE AREA 78 INFORM STRING 1 Jeppesen adopts "International Boundaries and National Limits" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation. 2 1
174 36 CONZNE AREA 81 NATION STRING 1 JP 2 1
175 36 CONZNE AREA 108 SORIND STRING 1 CM,PAD,graph,B3900420 1 1
176 39 CRANES POINT 10 CATCRN BYTE 1 4 9 2
177 39 CRANES POINT 10 CATCRN BYTE 2 2 2 2
178 29 CTNARE POINT 78 INFORM STRING 1 Works in progress|Source date: 2005 2 12
179 29 CTNARE POINT 78 INFORM STRING 2 FOUL 1 12
180 29 CTNARE POINT 78 INFORM STRING 3 Marked by buoys 1 12
181 29 CTNARE POINT 78 INFORM STRING 4 (liable to shoal) 1 12
182 29 CTNARE POINT 78 INFORM STRING 5 WORKS IN PROGRESS (1998) 1 12
183 29 CTNARE POINT 78 INFORM STRING 6 Works in progress|Source date: 2000 1 12
184 29 CTNARE POINT 78 INFORM STRING 7 Works in progress|Source date: 2002 1 12
185 29 CTNARE POINT 78 INFORM STRING 8 Ebb stream|Orientation: 130 Deg|Current velocity: 0.2kn 1 12
186 29 CTNARE POINT 78 INFORM STRING 9 Flood stream|Orientation: 290 Deg|Current velocity: 0.3kn 1 12
187 29 CTNARE POINT 78 INFORM STRING 10 Slipway 1 12
188 29 CTNARE POINT 78 INFORM STRING 11 Ebb stream|Orientation: 133 Deg|Current velocity: 0.3kn 1 12
189 29 CTNARE POINT 78 INFORM STRING 12 Flood stream|Orientation: 299 Deg|Current velocity: 0.3kn 1 12
190 29 CTNARE AREA 78 INFORM STRING 1 Caisson Temporary Storage Area 3 12
191 29 CTNARE AREA 78 INFORM STRING 2 The contents of the charts affected by earthquakes etc. occured offshore Pacific Ocean in Tohoku region in Japan.|By earthquakes and tsunami occured offshore Pacific Ocean in Tohoku region in Japan on 11th March 2011, damages of breakwaters, quays, etc. and existance of foul bottoms (i.e. houses and vehicles) on the seafloor which were pushed and flowed from land area in the east coast of Honshu and each ports and harbours. Users are aware that contents of the charts may be different from existing situations. Notices to Mariners about these matters will be issued as soon as survey results are received.Notices to Mariners address http://www1.kaiho.mlit.go.jp/TUHO/tuho_db/tuhoserch.html 2 12
192 29 CTNARE AREA 78 INFORM STRING 3 Unassessed. Surveys before the earthquake (11th Mar. 2011) 2 12
193 29 CTNARE AREA 78 INFORM STRING 4 Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution.|Caution|Only the principal lights are shown on this chart. For the details of these and other lights, the larger scale charts and the List of Lights should be consulted.|Note|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|Note|Owing to scale, only major points of the straight baselines given in the Enforcement Order are shown.|Caution|As submarine cables are not shown on this chart, take care with regard to the fishing industry, submarine exploration etc. For submarine cable information, refer to JP charts with scales of larger than 1:750,000 or the JP chart with scale 1:3,500,000. 1 12
194 29 CTNARE AREA 78 INFORM STRING 5 Jeppesen digital nautical charts do not reflect all soundings present on the official paper charts published by Japan Hydrographic and Oceanographic Department. This product is not an Electronic Navigational Chart. Mariners are required to use official paper charts for navigational judgements. 1 12
195 29 CTNARE AREA 78 INFORM STRING 6 CAUTION|As undiscovered shoals may exist around charted shoals, mariners are warned to excercise cautions.|NOTE|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|NOTE|Of all the base points of the straight baselines given in the Enforcement Order, only major points are shown on this chart due to its small scale. 1 12
196 29 CTNARE AREA 78 INFORM STRING 7 CABLES|1. Submarine and overhead cables may conduct high voltages; contact with or proximity to these poses an extreme danger and mariners may risk prosecution if damage is caused.|2. Anchoring or trawling in the vicinity of submarine cables should be avoided. Seabed mobility may leave a cable spanning undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. If a cable is snagged, care must be taken not to sever it.|3. Sufficient clearance must be allowed under overhead cables.|4. Some cables, particularly those installed since this edition was published, may not be charted.|5. For further information, see The Mariner's Handbook. 1 12
197 29 CTNARE AREA 78 INFORM STRING 8 Dredged to 7.5m|Source date: 1994 1 12
198 29 CTNARE AREA 78 INFORM STRING 9 Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution. |Caution|Depths are very changeable at the entrance to river mouths. Mariners are advised to exercise caution. 1 12
199 29 CTNARE AREA 78 INFORM STRING 10 Section 3 1 12
200 29 CTNARE AREA 78 INFORM STRING 11 Section 2 1 12
201 29 CTNARE AREA 78 INFORM STRING 12 Section 1 1 12
202 38 CTRPNT POINT 9 CATCTR BYTE 1 1 4 2
203 38 CTRPNT POINT 9 CATCTR BYTE 2 4 2 2
204 38 CTRPNT POINT 80 OBJNAM STRING 1 Monomiiwa 1 1
205 44 DEPARE AREA 66 DRVAL1 REAL 1 2 188 7
206 44 DEPARE AREA 66 DRVAL1 REAL 2 0 117 7
207 44 DEPARE AREA 66 DRVAL1 REAL 3 5 81 7
208 44 DEPARE AREA 66 DRVAL1 REAL 4 10 18 7
209 44 DEPARE AREA 66 DRVAL1 REAL 5 20 5 7
210 44 DEPARE AREA 66 DRVAL1 REAL 6 200 4 7
211 44 DEPARE AREA 66 DRVAL1 REAL 7 30 1 7
212 44 DEPARE AREA 67 DRVAL2 REAL 1 5 203 8
213 44 DEPARE AREA 67 DRVAL2 REAL 2 2 96 8
214 44 DEPARE AREA 67 DRVAL2 REAL 3 10 84 8
215 44 DEPARE AREA 67 DRVAL2 REAL 4 20 18 8
216 44 DEPARE AREA 67 DRVAL2 REAL 5 200 4 8
217 44 DEPARE AREA 67 DRVAL2 REAL 6 50 4 8
218 44 DEPARE AREA 67 DRVAL2 REAL 7 30 1 8
219 44 DEPARE AREA 67 DRVAL2 REAL 8 2000 1 8
220 45 DEPCNT LINE 91 QUAPOS BYTE 1 4 1 1
221 45 DEPCNT LINE 113 VALDCO REAL 1 5 230 6
222 45 DEPCNT LINE 113 VALDCO REAL 2 2 102 6
223 45 DEPCNT LINE 113 VALDCO REAL 3 10 100 6
224 45 DEPCNT LINE 113 VALDCO REAL 4 20 14 6
225 45 DEPCNT LINE 113 VALDCO REAL 5 200 4 6
226 45 DEPCNT LINE 113 VALDCO REAL 6 30 1 6
227 50 DRGARE AREA 66 DRVAL1 REAL 1 7.5 5 6
228 50 DRGARE AREA 66 DRVAL1 REAL 2 13 4 6
229 50 DRGARE AREA 66 DRVAL1 REAL 3 14 1 6
230 50 DRGARE AREA 66 DRVAL1 REAL 4 12 1 6
231 50 DRGARE AREA 66 DRVAL1 REAL 5 9.59999942779541 1 6
232 50 DRGARE AREA 66 DRVAL1 REAL 6 10 1 6
233 50 DRGARE AREA 78 INFORM STRING 1 (1981-2000) 4 7
234 50 DRGARE AREA 78 INFORM STRING 2 Source date: 1990 2 7
235 50 DRGARE AREA 78 INFORM STRING 3 (1995-2000) 1 7
236 50 DRGARE AREA 78 INFORM STRING 4 Source date: 1991 1 7
237 50 DRGARE AREA 78 INFORM STRING 5 1980 1 7
238 50 DRGARE AREA 78 INFORM STRING 6 1994 1 7
239 50 DRGARE AREA 78 INFORM STRING 7 Source date: 1977 1 7
240 56 EXEZNE AREA 78 INFORM STRING 1 Jeppesen adopts "International Boundaries and National Limits" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation. 2 1
241 56 EXEZNE AREA 81 NATION STRING 1 JP 2 1
242 56 EXEZNE AREA 108 SORIND STRING 1 CM,PAD,graph,B3900420 1 1
243 57 FAIRWY AREA 80 OBJNAM STRING 1 East Fairway 1 4
244 57 FAIRWY AREA 80 OBJNAM STRING 2 West Fairway 1 4
245 57 FAIRWY AREA 80 OBJNAM STRING 3 East Passage 1 4
246 57 FAIRWY AREA 80 OBJNAM STRING 4 West Passage 1 4
247 60 FSHHAV POINT 78 INFORM STRING 1 Always under water/submerged 18 1
248 72 HRBARE AREA 80 OBJNAM STRING 1 No 3 Area 1 3
249 72 HRBARE AREA 80 OBJNAM STRING 2 No 2 Area 1 3
250 72 HRBARE AREA 80 OBJNAM STRING 3 No1 Area 1 3
251 73 HRBFAC POINT 80 OBJNAM STRING 1 Tohoku Grain Terminal 1 1
252 73 HRBFAC AREA 20 CATHAF LIST 1 [9] 1 1
253 78 ITDARE AREA 82 NATSUR LIST 1 [9] 25 4
254 78 ITDARE AREA 82 NATSUR LIST 2 [56] 5 4
255 78 ITDARE AREA 82 NATSUR LIST 3 [1] 4 4
256 78 ITDARE AREA 82 NATSUR LIST 4 [4] 4 4
257 79 LAKARE AREA 80 OBJNAM STRING 1 Ane Lake 1 1
258 86 LIGHTS POINT 25 CATLIT BYTE 1 5 5 4
259 86 LIGHTS POINT 25 CATLIT BYTE 2 8 2 4
260 86 LIGHTS POINT 25 CATLIT BYTE 3 6 1 4
261 86 LIGHTS POINT 25 CATLIT BYTE 4 11 1 4
262 86 LIGHTS POINT 59 COLOUR LIST 1 [6] 28 6
263 86 LIGHTS POINT 59 COLOUR LIST 2 [4] 23 6
264 86 LIGHTS POINT 59 COLOUR LIST 3 [3] 23 6
265 86 LIGHTS POINT 59 COLOUR LIST 4 [1] 15 6
266 86 LIGHTS POINT 59 COLOUR LIST 5 [1,1,4] 2 6
267 86 LIGHTS POINT 59 COLOUR LIST 6 [1,4] 2 6
268 86 LIGHTS POINT 73 HEIGHT REAL 1 12 10 16
269 86 LIGHTS POINT 73 HEIGHT REAL 2 14 6 16
270 86 LIGHTS POINT 73 HEIGHT REAL 3 57 4 16
271 86 LIGHTS POINT 73 HEIGHT REAL 4 11 4 16
272 86 LIGHTS POINT 73 HEIGHT REAL 5 5 4 16
273 86 LIGHTS POINT 73 HEIGHT REAL 6 9 3 16
274 86 LIGHTS POINT 73 HEIGHT REAL 7 17 3 16
275 86 LIGHTS POINT 73 HEIGHT REAL 8 22 3 16
276 86 LIGHTS POINT 73 HEIGHT REAL 9 69 2 16
277 86 LIGHTS POINT 73 HEIGHT REAL 10 79 2 16
278 86 LIGHTS POINT 73 HEIGHT REAL 11 7 2 16
279 86 LIGHTS POINT 73 HEIGHT REAL 12 16 2 16
280 86 LIGHTS POINT 73 HEIGHT REAL 13 4 2 16
281 86 LIGHTS POINT 73 HEIGHT REAL 14 8 1 16
282 86 LIGHTS POINT 73 HEIGHT REAL 15 31 1 16
283 86 LIGHTS POINT 73 HEIGHT REAL 16 10 1 16
284 86 LIGHTS POINT 78 INFORM STRING 1 2 fl in 3s 4 5
285 86 LIGHTS POINT 78 INFORM STRING 2 The white light can be apparent on 8M 2 5
286 86 LIGHTS POINT 78 INFORM STRING 3 Illuminates Hinode Iwa 430m NNW 2 5
287 86 LIGHTS POINT 78 INFORM STRING 4 FW spotlight illuminates Hinode Iwa. 1 5
288 86 LIGHTS POINT 78 INFORM STRING 5 More than one 1 5
289 86 LIGHTS POINT 58 LITCHR BYTE 1 2 35 4
290 86 LIGHTS POINT 58 LITCHR BYTE 2 7 13 4
291 86 LIGHTS POINT 58 LITCHR BYTE 3 1 6 4
292 86 LIGHTS POINT 58 LITCHR BYTE 4 19 4 4
293 86 LIGHTS POINT 80 OBJNAM STRING 1 C1 2 6
294 86 LIGHTS POINT 80 OBJNAM STRING 2 C2 1 6
295 86 LIGHTS POINT 80 OBJNAM STRING 3 R1 1 6
296 86 LIGHTS POINT 80 OBJNAM STRING 4 R2 1 6
297 86 LIGHTS POINT 80 OBJNAM STRING 5 L1 1 6
298 86 LIGHTS POINT 80 OBJNAM STRING 6 L2 1 6
299 86 LIGHTS POINT 93 QUAVEM BYTE 1 1 12 1
300 86 LIGHTS POINT 100 SECTR1 WORD10 1 228 3 2
301 86 LIGHTS POINT 100 SECTR1 WORD10 2 48 3 2
302 86 LIGHTS POINT 101 SECTR2 WORD10 1 48 3 2
303 86 LIGHTS POINT 101 SECTR2 WORD10 2 228 3 2
304 86 LIGHTS POINT 72 SIGGRP STRING 1 (1) 38 2
305 86 LIGHTS POINT 72 SIGGRP STRING 2 (2) 14 2
306 86 LIGHTS POINT 86 SIGPER WORD10 1 3 10 7
307 86 LIGHTS POINT 86 SIGPER WORD10 2 6 10 7
308 86 LIGHTS POINT 86 SIGPER WORD10 3 4 7 7
309 86 LIGHTS POINT 86 SIGPER WORD10 4 9 6 7
310 86 LIGHTS POINT 86 SIGPER WORD10 5 5 5 7
311 86 LIGHTS POINT 86 SIGPER WORD10 6 10 4 7
312 86 LIGHTS POINT 86 SIGPER WORD10 7 8 4 7
313 86 LIGHTS POINT 108 SORIND STRING 1 GB,MDHS,graph,LL F-6624.7.C 1 14
314 86 LIGHTS POINT 108 SORIND STRING 2 GB,MDHS,graph,LL F-6624.7.D 1 14
315 86 LIGHTS POINT 108 SORIND STRING 3 GB,MDHS,graph,LL F-6624.7.E 1 14
316 86 LIGHTS POINT 108 SORIND STRING 4 GB,MDHS,graph,LL F-6624.7.F 1 14
317 86 LIGHTS POINT 108 SORIND STRING 5 GB,MDHS,graph,LL F-6624.7.A 1 14
318 86 LIGHTS POINT 108 SORIND STRING 6 GB,MDHS,graph,LL F-6624.7.B 1 14
319 86 LIGHTS POINT 108 SORIND STRING 7 GB,MDHS,graph,LL F-6623.2.A 1 14
320 86 LIGHTS POINT 108 SORIND STRING 8 GB,UKHO,graph,LL M-6624.62 1 14
321 86 LIGHTS POINT 108 SORIND STRING 9 GB,UKHO,graph,LL M-6624.621 1 14
322 86 LIGHTS POINT 108 SORIND STRING 10 GB,UKHO,graph,LL M-6624.64 1 14
323 86 LIGHTS POINT 108 SORIND STRING 11 GB,UKHO,graph,LL M-6624.641 1 14
324 86 LIGHTS POINT 108 SORIND STRING 12 GB,UKHO,graph,LL M-6624.63 1 14
325 86 LIGHTS POINT 108 SORIND STRING 13 GB,UKHO,graph,LL M-6624.631 1 14
326 86 LIGHTS POINT 108 SORIND STRING 14 GB,UKHO,graph,LL M-6624.5 1 14
327 86 LIGHTS POINT 109 STATUS LIST 1 [8] 26 1
328 86 LIGHTS POINT 115 VALNMR WORD10 1 4 16 7
329 86 LIGHTS POINT 115 VALNMR WORD10 2 6 7 7
330 86 LIGHTS POINT 115 VALNMR WORD10 3 3 7 7
331 86 LIGHTS POINT 115 VALNMR WORD10 4 5 7 7
332 86 LIGHTS POINT 115 VALNMR WORD10 5 19 4 7
333 86 LIGHTS POINT 115 VALNMR WORD10 6 7 3 7
334 86 LIGHTS POINT 115 VALNMR WORD10 7 2 1 7
335 81 LNDARE AREA 80 OBJNAM STRING 1 Honshu 1 3
336 81 LNDARE AREA 80 OBJNAM STRING 2 Todo Shima 1 3
337 81 LNDARE AREA 80 OBJNAM STRING 3 Hinode Iwa 1 3
338 95 MONUMT POINT 65 CONVIS BYTE 1 2 2 1
339 96 MORFAC POINT 29 CATMOR BYTE 1 1 7 1
340 96 MORFAC POINT 78 INFORM STRING 1 Always dry 1 1
341 96 MORFAC AREA 29 CATMOR BYTE 1 1 2 1
342 96 MORFAC AREA 78 INFORM STRING 1 Always dry 2 1
343 210 M_PROD AREA 150 CPDATE STRING 1 20080102 2 5
344 210 M_PROD AREA 150 CPDATE STRING 2 20060322 2 5
345 210 M_PROD AREA 150 CPDATE STRING 3 20141006 1 5
346 210 M_PROD AREA 150 CPDATE STRING 4 20140602 1 5
347 210 M_PROD AREA 150 CPDATE STRING 5 20140505 1 5
348 97 NATARE AREA 78 INFORM STRING 1 Jeppesen adopts "International Boundaries and National Limits" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation. 3 1
349 97 NATARE AREA 81 NATION STRING 1 JP 3 1
350 99 OBSTRN POINT 69 EXPSOU BYTE 1 2 1 1
351 99 OBSTRN POINT 78 INFORM STRING 1 Wave Meter 2 1
352 99 OBSTRN POINT 116 VALSOU WORD10 1 25 2 4
353 99 OBSTRN POINT 116 VALSOU WORD10 2 1.5 2 4
354 99 OBSTRN POINT 116 VALSOU WORD10 3 1.2 1 4
355 99 OBSTRN POINT 116 VALSOU WORD10 4 4.9 1 4
356 99 OBSTRN POINT 124 WATLEV BYTE 1 3 6 1
357 99 OBSTRN AREA 78 INFORM STRING 1 Crib|Caissons 2 2
358 99 OBSTRN AREA 78 INFORM STRING 2 Crib|Caisson Area 1 2
359 99 OBSTRN AREA 116 VALSOU WORD10 1 4.9 1 3
360 99 OBSTRN AREA 116 VALSOU WORD10 2 1.2 1 3
361 99 OBSTRN AREA 116 VALSOU WORD10 3 1.5 1 3
362 99 OBSTRN AREA 124 WATLEV BYTE 1 3 70 1
363 103 PILPNT POINT 78 INFORM STRING 1 Always dry 8 2
364 103 PILPNT POINT 78 INFORM STRING 2 Private 1 2
365 107 PIPSOL LINE 35 CATPIP BYTE 1 1 2 1
366 107 PIPSOL LINE 78 INFORM STRING 1 PIPELINES|Mariners are advised not to anchor or trawl in the vicinity of pipelines. Gas from a damaged oil or gas pipeline could cause an explosion, loss of a vessels buoyancy or other serious hazard. Pipelines are not always buried and may effectively reduce the charted depth by up to 2 metres. They may also span seabed undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. See Annual Notice to Mariners No 24 and The Mariners Handbook. 1 1
367 107 PIPSOL LINE 89 PRODCT LIST 1 [1] 1 2
368 107 PIPSOL LINE 89 PRODCT LIST 2 [2] 1 2
369 111 PRDINS POINT 78 INFORM STRING 1 Production area 12 1
370 111 PRDINS POINT 80 OBJNAM STRING 1 Pacific Metals CO., LTD. 2 11
371 111 PRDINS POINT 80 OBJNAM STRING 2 Tozai Oilterminal Co.,Ltd. 1 11
372 111 PRDINS POINT 80 OBJNAM STRING 3 Tohoku Satetsu 1 11
373 111 PRDINS POINT 80 OBJNAM STRING 4 MRC Unitec Co., Ltd. 1 11
374 111 PRDINS POINT 80 OBJNAM STRING 5 Toshin Steel Industry 1 11
375 111 PRDINS POINT 80 OBJNAM STRING 6 Hachinohe Gas Co., Ltd. 1 11
376 111 PRDINS POINT 80 OBJNAM STRING 7 Koshuha Foundry Co., Ltd. 1 11
377 111 PRDINS POINT 80 OBJNAM STRING 8 Sumimetal Mining Co., Ltd. 1 11
378 111 PRDINS POINT 80 OBJNAM STRING 9 Hachinohe Smelting Co., Ltd. 1 11
379 111 PRDINS POINT 80 OBJNAM STRING 10 Kitanihon Shipbuilding Co., Ltd. 1 11
380 111 PRDINS POINT 80 OBJNAM STRING 11 JX Nippon Oil & Energy Corporation 1 11
381 111 PRDINS POINT 89 PRODCT LIST 1 [1] 1 2
382 111 PRDINS POINT 89 PRODCT LIST 2 [2] 1 2
383 111 PRDINS POINT 91 QUAPOS BYTE 1 4 11 1
384 111 PRDINS AREA 78 INFORM STRING 1 Tank farm 9 4
385 111 PRDINS AREA 78 INFORM STRING 2 Production area 3 4
386 111 PRDINS AREA 78 INFORM STRING 3 Production area|Silo farm 2 4
387 111 PRDINS AREA 78 INFORM STRING 4 Tank farm|Oil Tank Yard 1 4
388 111 PRDINS AREA 80 OBJNAM STRING 1 Mitsubishi Paper Mills Limited 1 3
389 111 PRDINS AREA 80 OBJNAM STRING 2 Tokyotekko Co., Ltd. 1 3
390 111 PRDINS AREA 80 OBJNAM STRING 3 Yoshida Sangyo Corporation 1 3
391 111 PRDINS AREA 89 PRODCT LIST 1 [1] 1 1
392 112 PYLONS POINT 78 INFORM STRING 1 Power transmission pylon/pole 2 1
393 129 RIVERS AREA 80 OBJNAM STRING 1 Mabechi River 1 3
394 129 RIVERS AREA 80 OBJNAM STRING 2 Oirase River 1 3
395 129 RIVERS AREA 80 OBJNAM STRING 3 Gonohe Kawa 1 3
396 118 RTPBCN POINT 38 CATRTB BYTE 1 1 1 1
397 118 RTPBCN POINT 108 SORIND STRING 1 GB,MDHS,graph,LL F-6620.A 1 1
398 138 SBDARE POINT 90 NATQUA LIST 1 [1] 144 2
399 138 SBDARE POINT 90 NATQUA LIST 2 [3] 1 2
400 138 SBDARE POINT 82 NATSUR LIST 1 [4] 176 11
401 138 SBDARE POINT 82 NATSUR LIST 2 [1] 54 11
402 138 SBDARE POINT 82 NATSUR LIST 3 [9] 15 11
403 138 SBDARE POINT 82 NATSUR LIST 4 [5] 14 11
404 138 SBDARE POINT 82 NATSUR LIST 5 [4,17] 9 11
405 138 SBDARE POINT 82 NATSUR LIST 6 [1,4] 8 11
406 138 SBDARE POINT 82 NATSUR LIST 7 [4,1] 7 11
407 138 SBDARE POINT 82 NATSUR LIST 8 [6,17,61] 1 11
408 138 SBDARE POINT 82 NATSUR LIST 9 [1,4,17] 1 11
409 138 SBDARE POINT 82 NATSUR LIST 10 [1,6] 1 11
410 138 SBDARE POINT 82 NATSUR LIST 11 [1,4,5] 1 11
411 138 SBDARE AREA 82 NATSUR LIST 1 [9] 5 3
412 138 SBDARE AREA 82 NATSUR LIST 2 [4] 3 3
413 138 SBDARE AREA 82 NATSUR LIST 3 [5] 1 3
414 136 SEAARE AREA 80 OBJNAM STRING 1 North Pacific Ocean 1 2
415 136 SEAARE AREA 80 OBJNAM STRING 2 Hamanaka 1 2
416 142 SILBUI POINT 78 INFORM STRING 1 More than one 1 3
417 142 SILBUI POINT 78 INFORM STRING 2 more than one 1 3
418 142 SILBUI POINT 78 INFORM STRING 3 SILOS 1 3
419 142 SILBUI POINT 91 QUAPOS BYTE 1 4 2 1
420 140 SISTAT POINT 47 CATSIT LIST 1 [2] 2 1
421 141 SISTAW POINT 48 CATSIW LIST 1 [10] 1 1
422 139 SLCONS LINE 46 CATSLC BYTE 1 6 3 1
423 139 SLCONS LINE 63 CONDTN BYTE 1 2 5 1
424 139 SLCONS LINE 78 INFORM STRING 1 Land Area 2 1
425 139 SLCONS LINE 80 OBJNAM STRING 1 No 3 1 3
426 139 SLCONS LINE 80 OBJNAM STRING 2 Kawaragi No 1 1 3
427 139 SLCONS LINE 80 OBJNAM STRING 3 Kawaragi No 2 1 3
428 139 SLCONS LINE 124 WATLEV BYTE 1 2 204 1
429 139 SLCONS AREA 46 CATSLC BYTE 1 1 34 3
430 139 SLCONS AREA 46 CATSLC BYTE 2 6 10 3
431 139 SLCONS AREA 46 CATSLC BYTE 3 4 4 3
432 139 SLCONS AREA 63 CONDTN BYTE 1 2 8 2
433 139 SLCONS AREA 63 CONDTN BYTE 2 3 1 2
434 139 SLCONS AREA 78 INFORM STRING 1 Source date: 2005 1 1
435 139 SLCONS AREA 83 NATCON LIST 1 [3] 78 1
436 139 SLCONS AREA 80 OBJNAM STRING 1 Hattaro North Breakwater 3 25
437 139 SLCONS AREA 80 OBJNAM STRING 2 Middle Breakwater 2 25
438 139 SLCONS AREA 80 OBJNAM STRING 3 Hattaro East Breakwater 2 25
439 139 SLCONS AREA 80 OBJNAM STRING 4 West Breakwater 1 25
440 139 SLCONS AREA 80 OBJNAM STRING 5 Grain Terminal 1 25
441 139 SLCONS AREA 80 OBJNAM STRING 6 No 4 Wharf 1 25
442 139 SLCONS AREA 80 OBJNAM STRING 7 No 3 Wharf 1 25
443 139 SLCONS AREA 80 OBJNAM STRING 8 No 1 Wharf 1 25
444 139 SLCONS AREA 80 OBJNAM STRING 9 No 2 Wharf 1 25
445 139 SLCONS AREA 80 OBJNAM STRING 10 Kawaragi No 2 Wharf 1 25
446 139 SLCONS AREA 80 OBJNAM STRING 11 No 2 Middle Breakwater 1 25
447 139 SLCONS AREA 80 OBJNAM STRING 12 Shirogane West Breakwater 1 25
448 139 SLCONS AREA 80 OBJNAM STRING 13 Japan Maritime Self Defense Force Quay 1 25
449 139 SLCONS AREA 80 OBJNAM STRING 14 Ichikawa East Breakwater 1 25
450 139 SLCONS AREA 80 OBJNAM STRING 15 Shirogane North Breakwater 1 25
451 139 SLCONS AREA 80 OBJNAM STRING 16 Grain Terminal Pier 1 25
452 139 SLCONS AREA 80 OBJNAM STRING 17 Ichikawa North Breakwater 1 25
453 139 SLCONS AREA 80 OBJNAM STRING 18 Ferry Wharf 1 25
454 139 SLCONS AREA 80 OBJNAM STRING 19 Mitsubishi Paper Mills Limited Quay 1 25
455 139 SLCONS AREA 80 OBJNAM STRING 20 Kabu Island Breakwater 1 25
456 139 SLCONS AREA 80 OBJNAM STRING 21 Shirogane Wharf 1 25
457 139 SLCONS AREA 80 OBJNAM STRING 22 Kawaragi South Breakwater 1 25
458 139 SLCONS AREA 80 OBJNAM STRING 23 Kawaragi West Breakwater 1 25
459 139 SLCONS AREA 80 OBJNAM STRING 24 Hachinohe Smelting Quay 1 25
460 139 SLCONS AREA 80 OBJNAM STRING 25 Kawaragi Breakwater 1 25
461 139 SLCONS AREA 124 WATLEV BYTE 1 2 100 3
462 139 SLCONS AREA 124 WATLEV BYTE 2 4 9 3
463 139 SLCONS AREA 124 WATLEV BYTE 3 3 1 3
464 143 SLIPWY AREA 80 OBJNAM STRING 1 Ichikawa Slipway 1 1
465 143 SLIPWY AREA 124 WATLEV BYTE 1 4 2 2
466 143 SLIPWY AREA 124 WATLEV BYTE 2 2 1 2
467 155 TESARE AREA 78 INFORM STRING 1 Jeppesen adopts "International Boundaries and National Limits" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation. 3 1
468 155 TESARE AREA 81 NATION STRING 1 JP 3 1
469 158 TOWERS POINT 52 CATTOW BYTE 1 1 22 3
470 158 TOWERS POINT 52 CATTOW BYTE 2 3 19 3
471 158 TOWERS POINT 52 CATTOW BYTE 3 2 10 3
472 158 TOWERS POINT 59 COLOUR LIST 1 [1] 22 1
473 158 TOWERS POINT 65 CONVIS BYTE 1 1 23 2
474 158 TOWERS POINT 65 CONVIS BYTE 2 2 4 2
475 158 TOWERS POINT 73 HEIGHT REAL 1 51 1 2
476 158 TOWERS POINT 73 HEIGHT REAL 2 53 1 2
477 158 TOWERS POINT 78 INFORM STRING 1 Radio 4 3
478 158 TOWERS POINT 78 INFORM STRING 2 Ice Supply Tower 2 3
479 158 TOWERS POINT 78 INFORM STRING 3 Framework tower 1 3
480 158 TOWERS POINT 83 NATCON LIST 1 [2] 12 1
481 158 TOWERS POINT 91 QUAPOS BYTE 1 4 6 1
482 158 TOWERS POINT 108 SORIND STRING 1 GB,UKHO,graph,LL M-6620 3 17
483 158 TOWERS POINT 108 SORIND STRING 2 GB,UKHO,graph,LL M-6621 2 17
484 158 TOWERS POINT 108 SORIND STRING 3 GB,UKHO,graph,LL M-6625.5 2 17
485 158 TOWERS POINT 108 SORIND STRING 4 GB,UKHO,graph,LL M-6624.86 2 17
486 158 TOWERS POINT 108 SORIND STRING 5 GB,UKHO,graph,LL M-6619.5 1 17
487 158 TOWERS POINT 108 SORIND STRING 6 GB,UKHO,graph,LL M-6618.4 1 17
488 158 TOWERS POINT 108 SORIND STRING 7 GB,UKHO,graph,LL M-6625.7 1 17
489 158 TOWERS POINT 108 SORIND STRING 8 GB,UKHO,graph,LL M-6624.85 1 17
490 158 TOWERS POINT 108 SORIND STRING 9 GB,MDHS,graph,LL F-6623.2 1 17
491 158 TOWERS POINT 108 SORIND STRING 10 GB,MDHS,graph,LL F-6621 1 17
492 158 TOWERS POINT 108 SORIND STRING 11 GB,MDHS,graph,LL F-6622 1 17
493 158 TOWERS POINT 108 SORIND STRING 12 GB,MDHS,graph,LL F-6625.5 1 17
494 158 TOWERS POINT 108 SORIND STRING 13 GB,MDHS,graph,LL F-6620 1 17
495 158 TOWERS POINT 108 SORIND STRING 14 GB,MDHS,graph,LL F-6624.4 1 17
496 158 TOWERS POINT 108 SORIND STRING 15 GB,MDHS,graph,LL F-6624.85 1 17
497 158 TOWERS POINT 108 SORIND STRING 16 GB,UKHO,graph,LL M-6622 1 17
498 158 TOWERS POINT 108 SORIND STRING 17 GB,UKHO,graph,LL M-6624.4 1 17
499 158 TOWERS POINT 122 VERLEN REAL 1 9 7 7
500 158 TOWERS POINT 122 VERLEN REAL 2 23 4 7
501 158 TOWERS POINT 122 VERLEN REAL 3 10 4 7
502 158 TOWERS POINT 122 VERLEN REAL 4 5 3 7
503 158 TOWERS POINT 122 VERLEN REAL 5 16 2 7
504 158 TOWERS POINT 122 VERLEN REAL 6 6 1 7
505 158 TOWERS POINT 122 VERLEN REAL 7 8 1 7
506 168 UWTROC POINT 69 EXPSOU BYTE 1 2 3 1
507 168 UWTROC POINT 116 VALSOU WORD10 1 15 5 69
508 168 UWTROC POINT 116 VALSOU WORD10 2 9.9 4 69
509 168 UWTROC POINT 116 VALSOU WORD10 3 2.6 4 69
510 168 UWTROC POINT 116 VALSOU WORD10 4 4.4 4 69
511 168 UWTROC POINT 116 VALSOU WORD10 5 2 4 69
512 168 UWTROC POINT 116 VALSOU WORD10 6 17 3 69
513 168 UWTROC POINT 116 VALSOU WORD10 7 18 3 69
514 168 UWTROC POINT 116 VALSOU WORD10 8 19 3 69
515 168 UWTROC POINT 116 VALSOU WORD10 9 21 3 69
516 168 UWTROC POINT 116 VALSOU WORD10 10 0.3 2 69
517 168 UWTROC POINT 116 VALSOU WORD10 11 1.7 2 69
518 168 UWTROC POINT 116 VALSOU WORD10 12 2.2 2 69
519 168 UWTROC POINT 116 VALSOU WORD10 13 4.1 2 69
520 168 UWTROC POINT 116 VALSOU WORD10 14 0.7 2 69
521 168 UWTROC POINT 116 VALSOU WORD10 15 2.3 2 69
522 168 UWTROC POINT 116 VALSOU WORD10 16 7.7 2 69
523 168 UWTROC POINT 116 VALSOU WORD10 17 7.8 2 69
524 168 UWTROC POINT 116 VALSOU WORD10 18 8.8 2 69
525 168 UWTROC POINT 116 VALSOU WORD10 19 16 2 69
526 168 UWTROC POINT 116 VALSOU WORD10 20 20 2 69
527 168 UWTROC POINT 116 VALSOU WORD10 21 0.5 1 69
528 168 UWTROC POINT 116 VALSOU WORD10 22 0.8 1 69
529 168 UWTROC POINT 116 VALSOU WORD10 23 1.4 1 69
530 168 UWTROC POINT 116 VALSOU WORD10 24 1.6 1 69
531 168 UWTROC POINT 116 VALSOU WORD10 25 2.5 1 69
532 168 UWTROC POINT 116 VALSOU WORD10 26 2.7 1 69
533 168 UWTROC POINT 116 VALSOU WORD10 27 3.1 1 69
534 168 UWTROC POINT 116 VALSOU WORD10 28 4 1 69
535 168 UWTROC POINT 116 VALSOU WORD10 29 4.7 1 69
536 168 UWTROC POINT 116 VALSOU WORD10 30 4.8 1 69
537 168 UWTROC POINT 116 VALSOU WORD10 31 5.7 1 69
538 168 UWTROC POINT 116 VALSOU WORD10 32 5.9 1 69
539 168 UWTROC POINT 116 VALSOU WORD10 33 6.2 1 69
540 168 UWTROC POINT 116 VALSOU WORD10 34 6.3 1 69
541 168 UWTROC POINT 116 VALSOU WORD10 35 6.5 1 69
542 168 UWTROC POINT 116 VALSOU WORD10 36 6.8 1 69
543 168 UWTROC POINT 116 VALSOU WORD10 37 6.9 1 69
544 168 UWTROC POINT 116 VALSOU WORD10 38 7 1 69
545 168 UWTROC POINT 116 VALSOU WORD10 39 7.3 1 69
546 168 UWTROC POINT 116 VALSOU WORD10 40 7.4 1 69
547 168 UWTROC POINT 124 WATLEV BYTE 1 3 110 3
548 168 UWTROC POINT 124 WATLEV BYTE 2 2 56 3
549 168 UWTROC POINT 124 WATLEV BYTE 3 4 10 3
550 176 WRECKS POINT 57 CATWRK BYTE 1 3 477 2
551 176 WRECKS POINT 57 CATWRK BYTE 2 2 2 2
552 176 WRECKS POINT 116 VALSOU WORD10 1 11.2 7 103
553 176 WRECKS POINT 116 VALSOU WORD10 2 12.2 5 103
554 176 WRECKS POINT 116 VALSOU WORD10 3 12.6 5 103
555 176 WRECKS POINT 116 VALSOU WORD10 4 9.6 4 103
556 176 WRECKS POINT 116 VALSOU WORD10 5 10.2 4 103
557 176 WRECKS POINT 116 VALSOU WORD10 6 11.1 4 103
558 176 WRECKS POINT 116 VALSOU WORD10 7 12 4 103
559 176 WRECKS POINT 116 VALSOU WORD10 8 12.5 4 103
560 176 WRECKS POINT 116 VALSOU WORD10 9 6.3 3 103
561 176 WRECKS POINT 116 VALSOU WORD10 10 7 3 103
562 176 WRECKS POINT 116 VALSOU WORD10 11 7.3 3 103
563 176 WRECKS POINT 116 VALSOU WORD10 12 8.3 3 103
564 176 WRECKS POINT 116 VALSOU WORD10 13 9 3 103
565 176 WRECKS POINT 116 VALSOU WORD10 14 9.5 3 103
566 176 WRECKS POINT 116 VALSOU WORD10 15 11.4 3 103
567 176 WRECKS POINT 116 VALSOU WORD10 16 11.9 3 103
568 176 WRECKS POINT 116 VALSOU WORD10 17 12.3 3 103
569 176 WRECKS POINT 116 VALSOU WORD10 18 12.7 3 103
570 176 WRECKS POINT 116 VALSOU WORD10 19 13 3 103
571 176 WRECKS POINT 116 VALSOU WORD10 20 13.1 3 103
572 176 WRECKS POINT 116 VALSOU WORD10 21 13.4 3 103
573 176 WRECKS POINT 116 VALSOU WORD10 22 23.5 2 103
574 176 WRECKS POINT 116 VALSOU WORD10 23 21.5 2 103
575 176 WRECKS POINT 116 VALSOU WORD10 24 3 2 103
576 176 WRECKS POINT 116 VALSOU WORD10 25 3.7 2 103
577 176 WRECKS POINT 116 VALSOU WORD10 26 4.3 2 103
578 176 WRECKS POINT 116 VALSOU WORD10 27 5 2 103
579 176 WRECKS POINT 116 VALSOU WORD10 28 5.1 2 103
580 176 WRECKS POINT 116 VALSOU WORD10 29 5.7 2 103
581 176 WRECKS POINT 116 VALSOU WORD10 30 6 2 103
582 176 WRECKS POINT 116 VALSOU WORD10 31 6.2 2 103
583 176 WRECKS POINT 116 VALSOU WORD10 32 6.9 2 103
584 176 WRECKS POINT 116 VALSOU WORD10 33 7.8 2 103
585 176 WRECKS POINT 116 VALSOU WORD10 34 8.1 2 103
586 176 WRECKS POINT 116 VALSOU WORD10 35 8.5 2 103
587 176 WRECKS POINT 116 VALSOU WORD10 36 8.7 2 103
588 176 WRECKS POINT 116 VALSOU WORD10 37 9.1 2 103
589 176 WRECKS POINT 116 VALSOU WORD10 38 9.4 2 103
590 176 WRECKS POINT 116 VALSOU WORD10 39 9.9 2 103
591 176 WRECKS POINT 116 VALSOU WORD10 40 10.3 2 103
592 176 WRECKS POINT 124 WATLEV BYTE 1 3 480 1
593 176 WRECKS AREA 57 CATWRK BYTE 1 2 1 1
594 176 WRECKS AREA 116 VALSOU WORD10 1 7 1 1
595 176 WRECKS AREA 124 WATLEV BYTE 1 3 1 1
596 201 _extgn POINT 60 COLMAR BYTE 1 11 1 1
597 201 _extgn POINT 78 INFORM STRING 1 Height: 123m|Chimney|Visually conspicuous 1 1
598 217 _m_sor META 151 CSCALE LONG 1 3000000 1 6
599 217 _m_sor META 151 CSCALE LONG 2 1200000 1 6
600 217 _m_sor META 151 CSCALE LONG 3 250000 1 6
601 217 _m_sor META 151 CSCALE LONG 4 20000 1 6
602 217 _m_sor META 151 CSCALE LONG 5 12000 1 6
603 217 _m_sor META 151 CSCALE LONG 6 20000000 1 6
604 217 _m_sor META 75 HORDAT BYTE 1 2 6 1
605 217 _m_sor META 84 MARSYS BYTE 1 2 4 2
606 217 _m_sor META 84 MARSYS BYTE 2 1 2 2
607 217 _m_sor META 156 NMDATE STRING 1 20021101 2 5
608 217 _m_sor META 156 NMDATE STRING 2 20140926 1 5
609 217 _m_sor META 156 NMDATE STRING 3 20140523 1 5
610 217 _m_sor META 156 NMDATE STRING 4 20060323 1 5
611 217 _m_sor META 156 NMDATE STRING 5 20140328 1 5
612 217 _m_sor META 96 RECDAT STRING 1 20080102 2 5
613 217 _m_sor META 96 RECDAT STRING 2 20141006 1 5
614 217 _m_sor META 96 RECDAT STRING 3 20140602 1 5
615 217 _m_sor META 96 RECDAT STRING 4 20060322 1 5
616 217 _m_sor META 96 RECDAT STRING 5 20140505 1 5
617 217 _m_sor META 108 SORIND STRING 1 IT,CMAP,graph,W-135 1 6
618 217 _m_sor META 108 SORIND STRING 2 JP,JHOD,graph,W1154 1 6
619 217 _m_sor META 108 SORIND STRING 3 JP,JHOD,graph,W53 1 6
620 217 _m_sor META 108 SORIND STRING 4 GB,MDHS,graph,2959B 1 6
621 217 _m_sor META 108 SORIND STRING 5 JP,JHOD,graph,W65 1 6
622 217 _m_sor META 108 SORIND STRING 6 IT,CMAP,graph,W-14 1 6
623 217 _m_sor META 121 VERDAT BYTE 1 11 3 2
624 217 _m_sor META 121 VERDAT BYTE 2 10 1 2
625 217 _m_sor META 173 _chcod STRING 1 90-01520 1 6
626 217 _m_sor META 173 _chcod STRING 2 31-0F270 1 6
627 217 _m_sor META 173 _chcod STRING 3 31-0F710 1 6
628 217 _m_sor META 173 _chcod STRING 4 31-0684B 1 6
629 217 _m_sor META 173 _chcod STRING 5 31-0F700 1 6
630 217 _m_sor META 173 _chcod STRING 6 90-00310 1 6
631 217 _m_sor META 174 _dgdat STRING 1 20000101 2 5
632 217 _m_sor META 174 _dgdat STRING 2 20081003 1 5
633 217 _m_sor META 174 _dgdat STRING 3 20070914 1 5
634 217 _m_sor META 174 _dgdat STRING 4 20030320 1 5
635 217 _m_sor META 174 _dgdat STRING 5 20120313 1 5
636 217 _m_sor META 180 _hvdat BYTE 1 3 3 2
637 217 _m_sor META 180 _hvdat BYTE 2 21 1 2
638 217 _m_sor META 175 _quart BYTE 1 4 6 1
639 217 _m_sor META 177 _sorhd BYTE 1 2 6 1
640 217 _m_sor META 178 _wgsox REAL 1 0 6 1
641 217 _m_sor META 179 _wgsoy REAL 1 0 6 1
642 198 _texto POINT 139 _texta COMPLEX 1 {"prefix":[0,12,0],"text":"Same Kado"} 3 104
643 198 _texto POINT 139 _texta COMPLEX 2 {"prefix":[0,12,0],"text":"Hachinohe"} 3 104
644 198 _texto POINT 139 _texta COMPLEX 3 {"prefix":[0,12,0],"text":"Hachinohe Fishing Harbour"} 3 104
645 198 _texto POINT 139 _texta COMPLEX 4 {"prefix":[0,12,0],"text":"Misawa"} 2 104
646 198 _texto POINT 139 _texta COMPLEX 5 {"prefix":[0,12,0],"text":"Hamanaka"} 2 104
647 198 _texto POINT 139 _texta COMPLEX 6 {"prefix":[0,12,0],"text":"Hashimukai"} 2 104
648 198 _texto POINT 139 _texta COMPLEX 7 {"prefix":[128,12,0],"text":"HACHINOHE"} 1 104
649 198 _texto POINT 139 _texta COMPLEX 8 {"prefix":[0,12,0],"text":"AOMORI"} 1 104
650 198 _texto POINT 139 _texta COMPLEX 9 {"prefix":[0,12,0],"text":"Hachinohe Ko"} 1 104
651 198 _texto POINT 139 _texta COMPLEX 10 {"prefix":[0,12,0],"text":"Kabayama Reef"} 1 104
652 198 _texto POINT 139 _texta COMPLEX 11 {"prefix":[0,12,0],"text":"Hitokawame"} 1 104
653 198 _texto POINT 139 _texta COMPLEX 12 {"prefix":[0,12,0],"text":"Mikawame"} 1 104
654 198 _texto POINT 139 _texta COMPLEX 13 {"prefix":[0,12,0],"text":"Minato"} 1 104
655 198 _texto POINT 139 _texta COMPLEX 14 {"prefix":[0,12,0],"text":"Oirase Town"} 1 104
656 198 _texto POINT 139 _texta COMPLEX 15 {"prefix":[0,12,0],"text":"Okuki"} 1 104
657 198 _texto POINT 139 _texta COMPLEX 16 {"prefix":[0,12,0],"text":"Same"} 1 104
658 198 _texto POINT 139 _texta COMPLEX 17 {"prefix":[0,12,0],"text":"Shirahama"} 1 104
659 198 _texto POINT 139 _texta COMPLEX 18 {"prefix":[0,12,0],"text":"CONVEYOR"} 1 104
660 198 _texto POINT 139 _texta COMPLEX 19 {"prefix":[0,12,0],"text":"H A C H I T A R O"} 1 104
661 198 _texto POINT 139 _texta COMPLEX 20 {"prefix":[0,12,0],"text":"HACHINOHE"} 1 104
662 198 _texto POINT 139 _texta COMPLEX 21 {"prefix":[16,12,0],"text":"HACHINOHE"} 1 104
663 198 _texto POINT 139 _texta COMPLEX 22 {"prefix":[0,12,0],"text":"HINODE IWA(ILLUM)"} 1 104
664 198 _texto POINT 139 _texta COMPLEX 23 {"prefix":[0,12,0],"text":"HOUSE"} 1 104
665 198 _texto POINT 139 _texta COMPLEX 24 {"prefix":[0,12,0],"text":"K A W A R A G I"} 1 104
666 198 _texto POINT 139 _texta COMPLEX 25 {"prefix":[0,12,0],"text":"KABAYAMA NE"} 1 104
667 198 _texto POINT 139 _texta COMPLEX 26 {"prefix":[0,12,0],"text":"KABU SH."} 1 104
668 198 _texto POINT 139 _texta COMPLEX 27 {"prefix":[0,12,0],"text":"KO NE"} 1 104
669 198 _texto POINT 139 _texta COMPLEX 28 {"prefix":[0,12,0],"text":"MABECHI KAWA"} 1 104
670 198 _texto POINT 139 _texta COMPLEX 29 {"prefix":[0,12,0],"text":"MITSUBUSHI JETTY"} 1 104
671 198 _texto POINT 139 _texta COMPLEX 30 {"prefix":[0,12,0],"text":"MONOMIWA"} 1 104
672 198 _texto POINT 139 _texta COMPLEX 31 {"prefix":[0,12,0],"text":"N. BREAKWATER"} 1 104
673 198 _texto POINT 139 _texta COMPLEX 32 {"prefix":[0,12,0],"text":"NIIDA KAWA"} 1 104
674 198 _texto POINT 139 _texta COMPLEX 33 {"prefix":[0,12,0],"text":"No 1 WHARF"} 1 104
675 198 _texto POINT 139 _texta COMPLEX 34 {"prefix":[0,12,0],"text":"No 2 WHARF"} 1 104
676 198 _texto POINT 139 _texta COMPLEX 35 {"prefix":[0,12,0],"text":"No 4 WHARF"} 1 104
677 198 _texto POINT 139 _texta COMPLEX 36 {"prefix":[0,12,0],"text":"O SAKI"} 1 104
678 198 _texto POINT 139 _texta COMPLEX 37 {"prefix":[0,12,0],"text":"OGOMUNE"} 1 104
679 198 _texto POINT 139 _texta COMPLEX 38 {"prefix":[0,12,0],"text":"SAME KADO"} 1 104
680 198 _texto POINT 139 _texta COMPLEX 39 {"prefix":[0,12,0],"text":"SHIROGANE WHARF"} 1 104
681 198 _texto POINT 139 _texta COMPLEX 40 {"prefix":[0,12,0],"text":"SILOS"} 1 104

View File

@@ -0,0 +1,73 @@
attribute_id,attribute_name,source_type_name,decoder_type,min_value,max_value,raw_line
3,CATACH,aLIST,L,1.0,9.0,CATACH|3|aLIST|1|9
4,CATBRG,aLIST,L,1.0,9.0,CATBRG|4|aLIST|1|9
6,CATCBL,aBYTE,B,1.0,3.0,CATCBL|6|aBYTE|1|3
9,CATCTR,aBYTE,B,1.0,5.0,CATCTR|9|aBYTE|1|5
10,CATCRN,aBYTE,B,1.0,4.0,CATCRN|10|aBYTE|1|4
20,CATHAF,aLIST,L,1.0,10.0,CATHAF|20|aLIST|1|10
24,CATLAM,aBYTE,B,1.0,4.0,CATLAM|24|aBYTE|1|4
25,CATLIT,aBYTE,B,1.0,11.0,CATLIT|25|aBYTE|1|11
29,CATMOR,aBYTE,B,1.0,3.0,CATMOR|29|aBYTE|1|3
35,CATPIP,aBYTE,B,1.0,4.0,CATPIP|35|aBYTE|1|4
38,CATRTB,aBYTE,B,1.0,2.0,CATRTB|38|aBYTE|1|2
41,CATREB,aBYTE,B,1.0,9.0,CATREB|41|aBYTE|1|9
46,CATSLC,aBYTE,B,1.0,10.0,CATSLC|46|aBYTE|1|10
47,CATSIT,aLIST,L,1.0,9.0,CATSIT|47|aLIST|1|9
48,CATSIW,aLIST,L,1.0,13.0,CATSIW|48|aLIST|1|13
49,CATBUI,aLIST,L,1.0,21.0,CATBUI|49|aLIST|1|21
51,CATSPM,aBYTE,B,1.0,38.0,CATSPM|51|aBYTE|1|38
52,CATTOW,aBYTE,B,1.0,7.0,CATTOW|52|aBYTE|1|7
57,CATWRK,aBYTE,B,1.0,5.0,CATWRK|57|aBYTE|1|5
58,LITCHR,aBYTE,B,1.0,27.0,LITCHR|58|aBYTE|1|27
59,COLOUR,aLIST,L,1.0,55.0,COLOUR|59|aLIST|1|55
60,COLMAR,aBYTE,B,1.0,18.0,COLMAR|60|aBYTE|1|18
63,CONDTN,aBYTE,B,1.0,5.0,CONDTN|63|aBYTE|1|5
65,CONVIS,aBYTE,B,1.0,2.0,CONVIS|65|aBYTE|1|2
66,DRVAL1,aFLOAT,R,0.0,12000.0,DRVAL1|66|aFLOAT|0.0|12000.0
67,DRVAL2,aFLOAT,R,0.0,12000.0,DRVAL2|67|aFLOAT|0.0|12000.0
69,EXPSOU,aBYTE,B,1.0,3.0,EXPSOU|69|aBYTE|1|3
72,SIGGRP,aSTRING,S,,,SIGGRP|72|aSTRING
73,HEIGHT,aFLOAT,R,-500.0,8900.0,HEIGHT|73|aFLOAT|-500.0|8900.0
75,HORDAT,aBYTE,B,0.0,221.0,HORDAT|75|aBYTE|0|221
78,INFORM,aSTRING,S,,,INFORM|78|aSTRING
80,OBJNAM,aSTRING,S,,,OBJNAM|80|aSTRING
81,NATION,aSTRING,S,,,NATION|81|aSTRING
82,NATSUR,aLIST,L,1.0,88.0,NATSUR|82|aLIST|1|88
83,NATCON,aLIST,L,1.0,7.0,NATCON|83|aLIST|1|7
84,MARSYS,aBYTE,B,1.0,8.0,MARSYS|84|aBYTE|1|8
86,SIGPER,aWORD10,W,0.0,1000.0,SIGPER|86|aWORD10|0.0|1000.0
89,PRODCT,aLIST,L,1.0,6.0,PRODCT|89|aLIST|1|6
90,NATQUA,aLIST,L,1.0,60.0,NATQUA|90|aLIST|1|60
91,QUAPOS,aBYTE,B,1.0,8.0,QUAPOS|91|aBYTE|1|8
93,QUAVEM,aBYTE,B,1.0,2.0,QUAVEM|93|aBYTE|1|2
96,RECDAT,aSTRING,S,,,RECDAT|96|aSTRING
100,SECTR1,aWORD10,W,0.0,360.0,SECTR1|100|aWORD10|0.0|360.0
101,SECTR2,aWORD10,W,0.0,360.0,SECTR2|101|aWORD10|0.0|360.0
103,BCNSHP,aBYTE,B,1.0,4.0,BCNSHP|103|aBYTE|1|4
104,BUISHP,aBYTE,B,1.0,6.0,BUISHP|104|aBYTE|1|6
105,BOYSHP,aBYTE,B,1.0,8.0,BOYSHP|105|aBYTE|1|8
108,SORIND,aSTRING,S,,,SORIND|108|aSTRING
109,STATUS,aLIST,L,1.0,11.0,STATUS|109|aLIST|1|11
113,VALDCO,aFLOAT,R,0.0,12000.0,VALDCO|113|aFLOAT|0.0|12000.0
115,VALNMR,aWORD10,W,0.0,400.0,VALNMR|115|aWORD10|0.0|400.0
116,VALSOU,aWORD10,W,0.0,12000.0,VALSOU|116|aWORD10|0|12000.0
117,VERCLR,aFLOAT,R,0.0,10000.0,VERCLR|117|aFLOAT|0.0|10000.0
121,VERDAT,aBYTE,B,1.0,59.0,VERDAT|121|aBYTE|1|59
122,VERLEN,aFLOAT,R,0.0,10000.0,VERLEN|122|aFLOAT|0.0|10000.0
124,WATLEV,aBYTE,B,1.0,5.0,WATLEV|124|aBYTE|1|5
126,$VARIA,aSTRING,S,,,$VARIA|126|aSTRING
127,$CYEAR,aFLOAT,R,0.0,3000.0,$CYEAR|127|aFLOAT|0.0|3000.0
128,$ANNCH,aSTRING,S,,,$ANNCH|128|aSTRING
129,$SCODE,aSTRING,S,,,$SCODE|129|aSTRING
139,_texta,aCMPLX,C,,,_texta|139|aCMPLX
147,CATCOA,aBYTE,B,1.0,9.0,CATCOA|147|aBYTE|1|9
150,CPDATE,aSTRING,S,,,CPDATE|150|aSTRING
151,CSCALE,aLONG,G,0.0,20000000.0,CSCALE|151|aLONG|0|20000000
156,NMDATE,aSTRING,S,,,NMDATE|156|aSTRING
173,_chcod,aSTRING,S,,,_chcod|173|aSTRING
174,_dgdat,aSTRING,S,,,_dgdat|174|aSTRING
175,_quart,aBYTE,B,1.0,6.0,_quart|175|aBYTE|1|6
177,_sorhd,aBYTE,B,0.0,221.0,_sorhd|177|aBYTE|0|221
178,_wgsox,aFLOAT,R,-5000.0,5000.0,_wgsox|178|aFLOAT|-5000.0|5000.0
179,_wgsoy,aFLOAT,R,-5000.0,5000.0,_wgsoy|179|aFLOAT|-5000.0|5000.0
180,_hvdat,aBYTE,B,1.0,59.0,_hvdat|180|aBYTE|1|59
1 attribute_id attribute_name source_type_name decoder_type min_value max_value raw_line
2 3 CATACH aLIST L 1.0 9.0 CATACH|3|aLIST|1|9
3 4 CATBRG aLIST L 1.0 9.0 CATBRG|4|aLIST|1|9
4 6 CATCBL aBYTE B 1.0 3.0 CATCBL|6|aBYTE|1|3
5 9 CATCTR aBYTE B 1.0 5.0 CATCTR|9|aBYTE|1|5
6 10 CATCRN aBYTE B 1.0 4.0 CATCRN|10|aBYTE|1|4
7 20 CATHAF aLIST L 1.0 10.0 CATHAF|20|aLIST|1|10
8 24 CATLAM aBYTE B 1.0 4.0 CATLAM|24|aBYTE|1|4
9 25 CATLIT aBYTE B 1.0 11.0 CATLIT|25|aBYTE|1|11
10 29 CATMOR aBYTE B 1.0 3.0 CATMOR|29|aBYTE|1|3
11 35 CATPIP aBYTE B 1.0 4.0 CATPIP|35|aBYTE|1|4
12 38 CATRTB aBYTE B 1.0 2.0 CATRTB|38|aBYTE|1|2
13 41 CATREB aBYTE B 1.0 9.0 CATREB|41|aBYTE|1|9
14 46 CATSLC aBYTE B 1.0 10.0 CATSLC|46|aBYTE|1|10
15 47 CATSIT aLIST L 1.0 9.0 CATSIT|47|aLIST|1|9
16 48 CATSIW aLIST L 1.0 13.0 CATSIW|48|aLIST|1|13
17 49 CATBUI aLIST L 1.0 21.0 CATBUI|49|aLIST|1|21
18 51 CATSPM aBYTE B 1.0 38.0 CATSPM|51|aBYTE|1|38
19 52 CATTOW aBYTE B 1.0 7.0 CATTOW|52|aBYTE|1|7
20 57 CATWRK aBYTE B 1.0 5.0 CATWRK|57|aBYTE|1|5
21 58 LITCHR aBYTE B 1.0 27.0 LITCHR|58|aBYTE|1|27
22 59 COLOUR aLIST L 1.0 55.0 COLOUR|59|aLIST|1|55
23 60 COLMAR aBYTE B 1.0 18.0 COLMAR|60|aBYTE|1|18
24 63 CONDTN aBYTE B 1.0 5.0 CONDTN|63|aBYTE|1|5
25 65 CONVIS aBYTE B 1.0 2.0 CONVIS|65|aBYTE|1|2
26 66 DRVAL1 aFLOAT R 0.0 12000.0 DRVAL1|66|aFLOAT|0.0|12000.0
27 67 DRVAL2 aFLOAT R 0.0 12000.0 DRVAL2|67|aFLOAT|0.0|12000.0
28 69 EXPSOU aBYTE B 1.0 3.0 EXPSOU|69|aBYTE|1|3
29 72 SIGGRP aSTRING S SIGGRP|72|aSTRING
30 73 HEIGHT aFLOAT R -500.0 8900.0 HEIGHT|73|aFLOAT|-500.0|8900.0
31 75 HORDAT aBYTE B 0.0 221.0 HORDAT|75|aBYTE|0|221
32 78 INFORM aSTRING S INFORM|78|aSTRING
33 80 OBJNAM aSTRING S OBJNAM|80|aSTRING
34 81 NATION aSTRING S NATION|81|aSTRING
35 82 NATSUR aLIST L 1.0 88.0 NATSUR|82|aLIST|1|88
36 83 NATCON aLIST L 1.0 7.0 NATCON|83|aLIST|1|7
37 84 MARSYS aBYTE B 1.0 8.0 MARSYS|84|aBYTE|1|8
38 86 SIGPER aWORD10 W 0.0 1000.0 SIGPER|86|aWORD10|0.0|1000.0
39 89 PRODCT aLIST L 1.0 6.0 PRODCT|89|aLIST|1|6
40 90 NATQUA aLIST L 1.0 60.0 NATQUA|90|aLIST|1|60
41 91 QUAPOS aBYTE B 1.0 8.0 QUAPOS|91|aBYTE|1|8
42 93 QUAVEM aBYTE B 1.0 2.0 QUAVEM|93|aBYTE|1|2
43 96 RECDAT aSTRING S RECDAT|96|aSTRING
44 100 SECTR1 aWORD10 W 0.0 360.0 SECTR1|100|aWORD10|0.0|360.0
45 101 SECTR2 aWORD10 W 0.0 360.0 SECTR2|101|aWORD10|0.0|360.0
46 103 BCNSHP aBYTE B 1.0 4.0 BCNSHP|103|aBYTE|1|4
47 104 BUISHP aBYTE B 1.0 6.0 BUISHP|104|aBYTE|1|6
48 105 BOYSHP aBYTE B 1.0 8.0 BOYSHP|105|aBYTE|1|8
49 108 SORIND aSTRING S SORIND|108|aSTRING
50 109 STATUS aLIST L 1.0 11.0 STATUS|109|aLIST|1|11
51 113 VALDCO aFLOAT R 0.0 12000.0 VALDCO|113|aFLOAT|0.0|12000.0
52 115 VALNMR aWORD10 W 0.0 400.0 VALNMR|115|aWORD10|0.0|400.0
53 116 VALSOU aWORD10 W 0.0 12000.0 VALSOU|116|aWORD10|0|12000.0
54 117 VERCLR aFLOAT R 0.0 10000.0 VERCLR|117|aFLOAT|0.0|10000.0
55 121 VERDAT aBYTE B 1.0 59.0 VERDAT|121|aBYTE|1|59
56 122 VERLEN aFLOAT R 0.0 10000.0 VERLEN|122|aFLOAT|0.0|10000.0
57 124 WATLEV aBYTE B 1.0 5.0 WATLEV|124|aBYTE|1|5
58 126 $VARIA aSTRING S $VARIA|126|aSTRING
59 127 $CYEAR aFLOAT R 0.0 3000.0 $CYEAR|127|aFLOAT|0.0|3000.0
60 128 $ANNCH aSTRING S $ANNCH|128|aSTRING
61 129 $SCODE aSTRING S $SCODE|129|aSTRING
62 139 _texta aCMPLX C _texta|139|aCMPLX
63 147 CATCOA aBYTE B 1.0 9.0 CATCOA|147|aBYTE|1|9
64 150 CPDATE aSTRING S CPDATE|150|aSTRING
65 151 CSCALE aLONG G 0.0 20000000.0 CSCALE|151|aLONG|0|20000000
66 156 NMDATE aSTRING S NMDATE|156|aSTRING
67 173 _chcod aSTRING S _chcod|173|aSTRING
68 174 _dgdat aSTRING S _dgdat|174|aSTRING
69 175 _quart aBYTE B 1.0 6.0 _quart|175|aBYTE|1|6
70 177 _sorhd aBYTE B 0.0 221.0 _sorhd|177|aBYTE|0|221
71 178 _wgsox aFLOAT R -5000.0 5000.0 _wgsox|178|aFLOAT|-5000.0|5000.0
72 179 _wgsoy aFLOAT R -5000.0 5000.0 _wgsoy|179|aFLOAT|-5000.0|5000.0
73 180 _hvdat aBYTE B 1.0 59.0 _hvdat|180|aBYTE|1|59

View File

@@ -0,0 +1,178 @@
object_class_id,object_class,geometry_type,attribute_id,attribute_name,value_type,occurrence_count,distinct_value_count,native_scales,top_values
194,$AREAS,AREA,129,$SCODE,STRING,11,1,"[20000, 50000, 200000]","[{""value"": ""II25"", ""count"": 11}]"
191,$COMPS,POINT,128,$ANNCH,STRING,5,2,"[20000, 50000]","[{""value"": ""00.00 E"", ""count"": 4}, {""value"": ""01.00 W"", ""count"": 1}]"
191,$COMPS,POINT,127,$CYEAR,REAL,5,2,"[20000, 50000]","[{""value"": ""2012"", ""count"": 4}, {""value"": ""2002"", ""count"": 1}]"
191,$COMPS,POINT,126,$VARIA,STRING,5,1,"[20000, 50000]","[{""value"": ""08.25 W"", ""count"": 5}]"
193,$LINES,LINE,129,$SCODE,STRING,15,3,"[20000, 50000]","[{""value"": ""IH40"", ""count"": 6}, {""value"": ""IH41"", ""count"": 6}, {""value"": ""IK1"", ""count"": 3}]"
4,ACHARE,AREA,3,CATACH,LIST,2,1,"[20000, 50000]","[{""value"": ""[5]"", ""count"": 2}]"
1,AIRARE,POINT,80,OBJNAM,STRING,1,1,[20000],"[{""value"": ""Hachinohe Airfield"", ""count"": 1}]"
7,BCNLAT,POINT,103,BCNSHP,BYTE,4,1,[50000],"[{""value"": ""3"", ""count"": 4}]"
7,BCNLAT,POINT,24,CATLAM,BYTE,15,1,"[20000, 50000, 200000]","[{""value"": ""2"", ""count"": 15}]"
7,BCNLAT,POINT,60,COLMAR,BYTE,15,1,"[20000, 50000, 200000]","[{""value"": ""3"", ""count"": 15}]"
7,BCNLAT,POINT,78,INFORM,STRING,6,3,"[20000, 50000, 200000]","[{""value"": ""Concrete"", ""count"": 3}, {""value"": ""Metal"", ""count"": 2}, {""value"": ""Metal|Framework tower"", ""count"": 1}]"
7,BCNLAT,POINT,108,SORIND,STRING,15,11,"[20000, 50000, 200000]","[{""value"": ""GB,UKHO,graph,LL M-6623"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6624.8"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6624.7"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6624"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6619"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6623"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6623.6"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.8"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6623.6"", ""count"": 1}]"
7,BCNLAT,POINT,122,VERLEN,REAL,15,4,"[20000, 50000, 200000]","[{""value"": ""10"", ""count"": 6}, {""value"": ""9"", ""count"": 5}, {""value"": ""16"", ""count"": 3}, {""value"": ""6"", ""count"": 1}]"
9,BCNSPP,POINT,51,CATSPM,BYTE,5,2,"[20000, 50000, 1000000]","[{""value"": ""6"", ""count"": 4}, {""value"": ""27"", ""count"": 1}]"
9,BCNSPP,POINT,60,COLMAR,BYTE,2,1,"[20000, 200000]","[{""value"": ""5"", ""count"": 2}]"
9,BCNSPP,POINT,78,INFORM,STRING,4,1,"[200000, 1000000]","[{""value"": ""Metal"", ""count"": 4}]"
9,BCNSPP,POINT,108,SORIND,STRING,6,3,"[20000, 200000, 1000000]","[{""value"": ""GB,UKHO,graph,LL M-6625"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6626"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6623.2"", ""count"": 2}]"
9,BCNSPP,POINT,122,VERLEN,REAL,4,2,"[20000, 200000, 1000000]","[{""value"": ""43"", ""count"": 2}, {""value"": ""9"", ""count"": 2}]"
20,BOYSPP,POINT,105,BOYSHP,BYTE,8,2,"[20000, 50000]","[{""value"": ""1"", ""count"": 5}, {""value"": ""4"", ""count"": 3}]"
20,BOYSPP,POINT,51,CATSPM,BYTE,5,3,"[20000, 50000]","[{""value"": ""27"", ""count"": 3}, {""value"": ""10"", ""count"": 1}, {""value"": ""13"", ""count"": 1}]"
20,BOYSPP,POINT,60,COLMAR,BYTE,8,1,"[20000, 50000]","[{""value"": ""4"", ""count"": 8}]"
20,BOYSPP,POINT,78,INFORM,STRING,1,1,[50000],"[{""value"": ""Private mark|Wave recorder"", ""count"": 1}]"
20,BOYSPP,POINT,109,STATUS,LIST,6,1,[20000],"[{""value"": ""[8]"", ""count"": 6}]"
11,BRIDGE,AREA,4,CATBRG,LIST,2,1,[50000],"[{""value"": ""[1]"", ""count"": 2}]"
11,BRIDGE,AREA,78,INFORM,STRING,3,2,[20000],"[{""value"": ""Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m"", ""count"": 2}, {""value"": ""Vertical Datum: Nearly highest high water"", ""count"": 1}]"
11,BRIDGE,AREA,80,OBJNAM,STRING,7,7,[20000],"[{""value"": ""Hachinohe Bridge"", ""count"": 1}, {""value"": ""Hattaro Bridge"", ""count"": 1}, {""value"": ""The Numadate Bridge"", ""count"": 1}, {""value"": ""The Shin-O-Hashi Bridge"", ""count"": 1}, {""value"": ""Seagull Bridge"", ""count"": 1}, {""value"": ""Minato Bridge"", ""count"": 1}, {""value"": ""Ichikawa Bridge"", ""count"": 1}]"
11,BRIDGE,AREA,117,VERCLR,REAL,5,3,"[20000, 50000]","[{""value"": ""4.5"", ""count"": 2}, {""value"": ""31"", ""count"": 2}, {""value"": ""5.30000019073486"", ""count"": 1}]"
10,BRTFAC,POINT,80,OBJNAM,STRING,89,25,"[20000, 50000]","[{""value"": ""2"", ""count"": 8}, {""value"": ""1"", ""count"": 6}, {""value"": ""3"", ""count"": 6}, {""value"": ""4"", ""count"": 6}, {""value"": ""A"", ""count"": 6}, {""value"": ""B"", ""count"": 6}, {""value"": ""C"", ""count"": 6}, {""value"": ""5"", ""count"": 4}, {""value"": ""6"", ""count"": 4}, {""value"": ""D"", ""count"": 4}, {""value"": ""F"", ""count"": 4}, {""value"": ""G"", ""count"": 4}, {""value"": ""7"", ""count"": 2}, {""value"": ""8"", ""count"": 2}, {""value"": ""9"", ""count"": 2}, {""value"": ""E"", ""count"": 2}, {""value"": ""H"", ""count"": 2}, {""value"": ""I"", ""count"": 2}, {""value"": ""J"", ""count"": 2}, {""value"": ""L"", ""count"": 2}, {""value"": ""M"", ""count"": 2}, {""value"": ""N"", ""count"": 2}, {""value"": ""O"", ""count"": 2}, {""value"": ""10"", ""count"": 2}, {""value"": ""P"", ""count"": 1}]"
14,BUAARE,AREA,80,OBJNAM,STRING,2,2,[200000],"[{""value"": ""Hachinohe"", ""count"": 1}, {""value"": ""Misawa"", ""count"": 1}]"
14,BUAARE,POINT,80,OBJNAM,STRING,35,33,"[20000, 200000, 1000000]","[{""value"": ""Hachinohe"", ""count"": 2}, {""value"": ""Hashimukai"", ""count"": 2}, {""value"": ""Misawa"", ""count"": 1}, {""value"": ""Same"", ""count"": 1}, {""value"": ""Okuki"", ""count"": 1}, {""value"": ""Minato"", ""count"": 1}, {""value"": ""Mikawame"", ""count"": 1}, {""value"": ""Shirahama"", ""count"": 1}, {""value"": ""Hitokawame"", ""count"": 1}, {""value"": ""Oirase Town"", ""count"": 1}, {""value"": ""Tate"", ""count"": 1}, {""value"": ""Osawa"", ""count"": 1}, {""value"": ""Hinode"", ""count"": 1}, {""value"": ""Toyosu"", ""count"": 1}, {""value"": ""Hattaro"", ""count"": 1}, {""value"": ""Hasunuma"", ""count"": 1}, {""value"": ""Kawaragi"", ""count"": 1}, {""value"": ""Kitanuma"", ""count"": 1}, {""value"": ""Numadate"", ""count"": 1}, {""value"": ""Sunamori"", ""count"": 1}, {""value"": ""Tatehana"", ""count"": 1}, {""value"": ""Uenoyama"", ""count"": 1}, {""value"": ""Kami-Same"", ""count"": 1}, {""value"": ""Hikagezawa"", ""count"": 1}, {""value"": ""Shinminato"", ""count"": 1}, {""value"": ""Uheikawara"", ""count"": 1}, {""value"": ""Senzogakubo"", ""count"": 1}, {""value"": ""Hamana-Yachi"", ""count"": 1}, {""value"": ""Shimo-Oyachi"", ""count"": 1}, {""value"": ""Minami-Oyachi"", ""count"": 1}, {""value"": ""Toyama-Shinden"", ""count"": 1}, {""value"": ""Shimo-Matsunaeba"", ""count"": 1}, {""value"": ""Shimo-Mekurakubo"", ""count"": 1}]"
12,BUIREL,POINT,41,CATREB,BYTE,5,3,"[20000, 50000]","[{""value"": ""6"", ""count"": 2}, {""value"": ""7"", ""count"": 2}, {""value"": ""4"", ""count"": 1}]"
13,BUISGL,AREA,49,CATBUI,LIST,10,4,[20000],"[{""value"": ""[19]"", ""count"": 7}, {""value"": ""[13]"", ""count"": 1}, {""value"": ""[3,2]"", ""count"": 1}, {""value"": ""[10]"", ""count"": 1}]"
13,BUISGL,AREA,78,INFORM,STRING,7,7,[20000],"[{""value"": ""Port Management Office"", ""count"": 1}, {""value"": ""Fisheries High School"", ""count"": 1}, {""value"": ""Fishery Hall"", ""count"": 1}, {""value"": ""Fisheries Laboratory"", ""count"": 1}, {""value"": ""Coast Guard Office|Marine Procedure Commission Agent Office"", ""count"": 1}, {""value"": ""Fishing Harbor Development Office"", ""count"": 1}, {""value"": ""Regional Development Bureau,Port And Airport Office"", ""count"": 1}]"
13,BUISGL,AREA,80,OBJNAM,STRING,7,7,[20000],"[{""value"": ""Tohoku Electric Power Electric Substation"", ""count"": 1}, {""value"": ""No.1 Fish Market"", ""count"": 1}, {""value"": ""No.2 Fish Market"", ""count"": 1}, {""value"": ""No.3 Fish Market"", ""count"": 1}, {""value"": ""Maritime Office"", ""count"": 1}, {""value"": ""Construction Office"", ""count"": 1}, {""value"": ""Fisherman's Union"", ""count"": 1}]"
13,BUISGL,POINT,104,BUISHP,BYTE,1,1,[200000],"[{""value"": ""4"", ""count"": 1}]"
13,BUISGL,POINT,49,CATBUI,LIST,9,5,"[20000, 50000]","[{""value"": ""[6]"", ""count"": 5}, {""value"": ""[2]"", ""count"": 1}, {""value"": ""[3]"", ""count"": 1}, {""value"": ""[17]"", ""count"": 1}, {""value"": ""[5]"", ""count"": 1}]"
13,BUISGL,POINT,65,CONVIS,BYTE,2,1,"[20000, 200000]","[{""value"": ""2"", ""count"": 2}]"
13,BUISGL,POINT,78,INFORM,STRING,1,1,[20000],"[{""value"": ""Light support|Not in use"", ""count"": 1}]"
13,BUISGL,POINT,80,OBJNAM,STRING,2,2,[20000],"[{""value"": ""Tohoku Electric Power Thermal Power Plants"", ""count"": 1}, {""value"": ""Japan Maritime Self Defense Force Air Base"", ""count"": 1}]"
13,BUISGL,POINT,91,QUAPOS,BYTE,2,1,[20000],"[{""value"": ""4"", ""count"": 2}]"
21,CBLOHD,LINE,6,CATCBL,BYTE,5,1,"[20000, 50000]","[{""value"": ""1"", ""count"": 5}]"
21,CBLOHD,LINE,93,QUAVEM,BYTE,1,1,[50000],"[{""value"": ""1"", ""count"": 1}]"
21,CBLOHD,LINE,117,VERCLR,REAL,1,1,[50000],"[{""value"": ""12"", ""count"": 1}]"
22,CBLSUB,LINE,6,CATCBL,BYTE,2,1,"[20000, 50000]","[{""value"": ""1"", ""count"": 2}]"
22,CBLSUB,LINE,109,STATUS,LIST,3,1,"[20000, 50000]","[{""value"": ""[4]"", ""count"": 3}]"
33,CHIMNY,POINT,59,COLOUR,LIST,2,1,[50000],"[{""value"": ""[3,1]"", ""count"": 2}]"
33,CHIMNY,POINT,65,CONVIS,BYTE,9,2,"[20000, 50000, 200000]","[{""value"": ""2"", ""count"": 8}, {""value"": ""1"", ""count"": 1}]"
33,CHIMNY,POINT,73,HEIGHT,REAL,9,7,"[20000, 200000]","[{""value"": ""123"", ""count"": 2}, {""value"": ""30"", ""count"": 2}, {""value"": ""27"", ""count"": 1}, {""value"": ""81"", ""count"": 1}, {""value"": ""40"", ""count"": 1}, {""value"": ""71"", ""count"": 1}, {""value"": ""82"", ""count"": 1}]"
33,CHIMNY,POINT,78,INFORM,STRING,1,1,[50000],"[{""value"": ""3 CHYS"", ""count"": 1}]"
35,COALNE,LINE,147,CATCOA,BYTE,8,1,[20000],"[{""value"": ""1"", ""count"": 8}]"
36,CONZNE,AREA,78,INFORM,STRING,2,1,"[200000, 1000000]","[{""value"": ""Jeppesen adopts \""International Boundaries and National Limits\"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation."", ""count"": 2}]"
36,CONZNE,AREA,81,NATION,STRING,2,1,"[200000, 1000000]","[{""value"": ""JP"", ""count"": 2}]"
36,CONZNE,AREA,108,SORIND,STRING,1,1,[200000],"[{""value"": ""CM,PAD,graph,B3900420"", ""count"": 1}]"
39,CRANES,POINT,10,CATCRN,BYTE,11,2,"[20000, 50000]","[{""value"": ""4"", ""count"": 9}, {""value"": ""2"", ""count"": 2}]"
29,CTNARE,AREA,78,INFORM,STRING,16,12,"[20000, 50000, 200000, 1000000]","[{""value"": ""Caisson Temporary Storage Area"", ""count"": 3}, {""value"": ""The contents of the charts affected by earthquakes etc. occured offshore Pacific Ocean in Tohoku region in Japan.|By earthquakes and tsunami occured offshore Pacific Ocean in Tohoku region in Japan on 11th March 2011, damages of breakwaters, quays, etc. and existance of foul bottoms (i.e. houses and vehicles) on the seafloor which were pushed and flowed from land area in the east coast of Honshu and each ports and harbours. Users are aware that contents of the charts may be different from existing situations. Notices to Mariners about these matters will be issued as soon as survey results are received.Notices to Mariners address http://www1.kaiho.mlit.go.jp/TUHO/tuho_db/tuhoserch.html"", ""count"": 2}, {""value"": ""Unassessed. Surveys before the earthquake (11th Mar. 2011)"", ""count"": 2}, {""value"": ""Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution.|Caution|Only the principal lights are shown on this chart. For the details of these and other lights, the larger scale charts and the List of Lights should be consulted.|Note|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|Note|Owing to scale, only major points of the straight baselines given in the Enforcement Order are shown.|Caution|As submarine cables are not shown on this chart, take care with regard to the fishing industry, submarine exploration etc. For submarine cable information, refer to JP charts with scales of larger than 1:750,000 or the JP chart with scale 1:3,500,000."", ""count"": 1}, {""value"": ""Jeppesen digital nautical charts do not reflect all soundings present on the official paper charts published by Japan Hydrographic and Oceanographic Department. This product is not an Electronic Navigational Chart. Mariners are required to use official paper charts for navigational judgements."", ""count"": 1}, {""value"": ""CAUTION|As undiscovered shoals may exist around charted shoals, mariners are warned to excercise cautions.|NOTE|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|NOTE|Of all the base points of the straight baselines given in the Enforcement Order, only major points are shown on this chart due to its small scale."", ""count"": 1}, {""value"": ""CABLES|1. Submarine and overhead cables may conduct high voltages; contact with or proximity to these poses an extreme danger and mariners may risk prosecution if damage is caused.|2. Anchoring or trawling in the vicinity of submarine cables should be avoided. Seabed mobility may leave a cable spanning undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. If a cable is snagged, care must be taken not to sever it.|3. Sufficient clearance must be allowed under overhead cables.|4. Some cables, particularly those installed since this edition was published, may not be charted.|5. For further information, see The Mariner's Handbook."", ""count"": 1}, {""value"": ""Dredged to 7.5m|Source date: 1994"", ""count"": 1}, {""value"": ""Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution. |Caution|Depths are very changeable at the entrance to river mouths. Mariners are advised to exercise caution."", ""count"": 1}, {""value"": ""Section 3"", ""count"": 1}, {""value"": ""Section 2"", ""count"": 1}, {""value"": ""Section 1"", ""count"": 1}]"
29,CTNARE,POINT,78,INFORM,STRING,13,12,"[20000, 50000]","[{""value"": ""Works in progress|Source date: 2005"", ""count"": 2}, {""value"": ""FOUL"", ""count"": 1}, {""value"": ""Marked by buoys"", ""count"": 1}, {""value"": ""(liable to shoal)"", ""count"": 1}, {""value"": ""WORKS IN PROGRESS (1998)"", ""count"": 1}, {""value"": ""Works in progress|Source date: 2000"", ""count"": 1}, {""value"": ""Works in progress|Source date: 2002"", ""count"": 1}, {""value"": ""Ebb stream|Orientation: 130 Deg|Current velocity: 0.2kn"", ""count"": 1}, {""value"": ""Flood stream|Orientation: 290 Deg|Current velocity: 0.3kn"", ""count"": 1}, {""value"": ""Slipway"", ""count"": 1}, {""value"": ""Ebb stream|Orientation: 133 Deg|Current velocity: 0.3kn"", ""count"": 1}, {""value"": ""Flood stream|Orientation: 299 Deg|Current velocity: 0.3kn"", ""count"": 1}]"
38,CTRPNT,POINT,9,CATCTR,BYTE,6,2,"[20000, 50000]","[{""value"": ""1"", ""count"": 4}, {""value"": ""4"", ""count"": 2}]"
38,CTRPNT,POINT,80,OBJNAM,STRING,1,1,[20000],"[{""value"": ""Monomiiwa"", ""count"": 1}]"
44,DEPARE,AREA,66,DRVAL1,REAL,414,7,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""2"", ""count"": 188}, {""value"": ""0"", ""count"": 117}, {""value"": ""5"", ""count"": 81}, {""value"": ""10"", ""count"": 18}, {""value"": ""20"", ""count"": 5}, {""value"": ""200"", ""count"": 4}, {""value"": ""30"", ""count"": 1}]"
44,DEPARE,AREA,67,DRVAL2,REAL,411,8,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""5"", ""count"": 203}, {""value"": ""2"", ""count"": 96}, {""value"": ""10"", ""count"": 84}, {""value"": ""20"", ""count"": 18}, {""value"": ""200"", ""count"": 4}, {""value"": ""50"", ""count"": 4}, {""value"": ""30"", ""count"": 1}, {""value"": ""2000"", ""count"": 1}]"
45,DEPCNT,LINE,91,QUAPOS,BYTE,1,1,[50000],"[{""value"": ""4"", ""count"": 1}]"
45,DEPCNT,LINE,113,VALDCO,REAL,451,6,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""5"", ""count"": 230}, {""value"": ""2"", ""count"": 102}, {""value"": ""10"", ""count"": 100}, {""value"": ""20"", ""count"": 14}, {""value"": ""200"", ""count"": 4}, {""value"": ""30"", ""count"": 1}]"
50,DRGARE,AREA,66,DRVAL1,REAL,13,6,[50000],"[{""value"": ""7.5"", ""count"": 5}, {""value"": ""13"", ""count"": 4}, {""value"": ""14"", ""count"": 1}, {""value"": ""12"", ""count"": 1}, {""value"": ""9.59999942779541"", ""count"": 1}, {""value"": ""10"", ""count"": 1}]"
50,DRGARE,AREA,78,INFORM,STRING,11,7,[50000],"[{""value"": ""(1981-2000)"", ""count"": 4}, {""value"": ""Source date: 1990"", ""count"": 2}, {""value"": ""(1995-2000)"", ""count"": 1}, {""value"": ""Source date: 1991"", ""count"": 1}, {""value"": ""1980"", ""count"": 1}, {""value"": ""1994"", ""count"": 1}, {""value"": ""Source date: 1977"", ""count"": 1}]"
56,EXEZNE,AREA,78,INFORM,STRING,2,1,"[200000, 1000000]","[{""value"": ""Jeppesen adopts \""International Boundaries and National Limits\"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation."", ""count"": 2}]"
56,EXEZNE,AREA,81,NATION,STRING,2,1,"[200000, 1000000]","[{""value"": ""JP"", ""count"": 2}]"
56,EXEZNE,AREA,108,SORIND,STRING,1,1,[200000],"[{""value"": ""CM,PAD,graph,B3900420"", ""count"": 1}]"
57,FAIRWY,AREA,80,OBJNAM,STRING,4,4,"[20000, 50000]","[{""value"": ""East Fairway"", ""count"": 1}, {""value"": ""West Fairway"", ""count"": 1}, {""value"": ""East Passage"", ""count"": 1}, {""value"": ""West Passage"", ""count"": 1}]"
60,FSHHAV,POINT,78,INFORM,STRING,18,1,"[20000, 50000, 200000]","[{""value"": ""Always under water/submerged"", ""count"": 18}]"
72,HRBARE,AREA,80,OBJNAM,STRING,3,3,[50000],"[{""value"": ""No 3 Area"", ""count"": 1}, {""value"": ""No 2 Area"", ""count"": 1}, {""value"": ""No1 Area"", ""count"": 1}]"
73,HRBFAC,AREA,20,CATHAF,LIST,1,1,[20000],"[{""value"": ""[9]"", ""count"": 1}]"
73,HRBFAC,POINT,80,OBJNAM,STRING,1,1,[20000],"[{""value"": ""Tohoku Grain Terminal"", ""count"": 1}]"
78,ITDARE,AREA,82,NATSUR,LIST,38,4,"[20000, 50000]","[{""value"": ""[9]"", ""count"": 25}, {""value"": ""[56]"", ""count"": 5}, {""value"": ""[1]"", ""count"": 4}, {""value"": ""[4]"", ""count"": 4}]"
79,LAKARE,AREA,80,OBJNAM,STRING,1,1,[200000],"[{""value"": ""Ane Lake"", ""count"": 1}]"
86,LIGHTS,POINT,25,CATLIT,BYTE,9,4,"[20000, 50000, 200000, 1000000]","[{""value"": ""5"", ""count"": 5}, {""value"": ""8"", ""count"": 2}, {""value"": ""6"", ""count"": 1}, {""value"": ""11"", ""count"": 1}]"
86,LIGHTS,POINT,59,COLOUR,LIST,93,6,"[20000, 50000, 200000, 1000000]","[{""value"": ""[6]"", ""count"": 28}, {""value"": ""[4]"", ""count"": 23}, {""value"": ""[3]"", ""count"": 23}, {""value"": ""[1]"", ""count"": 15}, {""value"": ""[1,1,4]"", ""count"": 2}, {""value"": ""[1,4]"", ""count"": 2}]"
86,LIGHTS,POINT,73,HEIGHT,REAL,50,16,"[20000, 50000, 200000, 1000000]","[{""value"": ""12"", ""count"": 10}, {""value"": ""14"", ""count"": 6}, {""value"": ""57"", ""count"": 4}, {""value"": ""11"", ""count"": 4}, {""value"": ""5"", ""count"": 4}, {""value"": ""9"", ""count"": 3}, {""value"": ""17"", ""count"": 3}, {""value"": ""22"", ""count"": 3}, {""value"": ""69"", ""count"": 2}, {""value"": ""79"", ""count"": 2}, {""value"": ""7"", ""count"": 2}, {""value"": ""16"", ""count"": 2}, {""value"": ""4"", ""count"": 2}, {""value"": ""8"", ""count"": 1}, {""value"": ""31"", ""count"": 1}, {""value"": ""10"", ""count"": 1}]"
86,LIGHTS,POINT,78,INFORM,STRING,10,5,"[20000, 50000, 200000, 1000000]","[{""value"": ""2 fl in 3s"", ""count"": 4}, {""value"": ""The white light can be apparent on 8M"", ""count"": 2}, {""value"": ""Illuminates Hinode Iwa 430m NNW"", ""count"": 2}, {""value"": ""FW spotlight illuminates Hinode Iwa."", ""count"": 1}, {""value"": ""More than one"", ""count"": 1}]"
86,LIGHTS,POINT,58,LITCHR,BYTE,58,4,"[20000, 50000, 200000, 1000000]","[{""value"": ""2"", ""count"": 35}, {""value"": ""7"", ""count"": 13}, {""value"": ""1"", ""count"": 6}, {""value"": ""19"", ""count"": 4}]"
86,LIGHTS,POINT,80,OBJNAM,STRING,7,6,[20000],"[{""value"": ""C1"", ""count"": 2}, {""value"": ""C2"", ""count"": 1}, {""value"": ""R1"", ""count"": 1}, {""value"": ""R2"", ""count"": 1}, {""value"": ""L1"", ""count"": 1}, {""value"": ""L2"", ""count"": 1}]"
86,LIGHTS,POINT,93,QUAVEM,BYTE,12,1,[50000],"[{""value"": ""1"", ""count"": 12}]"
86,LIGHTS,POINT,100,SECTR1,WORD10,6,2,[20000],"[{""value"": ""228"", ""count"": 3}, {""value"": ""48"", ""count"": 3}]"
86,LIGHTS,POINT,101,SECTR2,WORD10,6,2,[20000],"[{""value"": ""48"", ""count"": 3}, {""value"": ""228"", ""count"": 3}]"
86,LIGHTS,POINT,72,SIGGRP,STRING,52,2,"[20000, 50000, 200000, 1000000]","[{""value"": ""(1)"", ""count"": 38}, {""value"": ""(2)"", ""count"": 14}]"
86,LIGHTS,POINT,86,SIGPER,WORD10,46,7,"[20000, 50000, 200000, 1000000]","[{""value"": ""3"", ""count"": 10}, {""value"": ""6"", ""count"": 10}, {""value"": ""4"", ""count"": 7}, {""value"": ""9"", ""count"": 6}, {""value"": ""5"", ""count"": 5}, {""value"": ""10"", ""count"": 4}, {""value"": ""8"", ""count"": 4}]"
86,LIGHTS,POINT,108,SORIND,STRING,14,14,"[20000, 50000]","[{""value"": ""GB,MDHS,graph,LL F-6624.7.C"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7.D"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7.E"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7.F"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7.A"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.7.B"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6623.2.A"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.62"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.621"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.64"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.641"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.63"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.631"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.5"", ""count"": 1}]"
86,LIGHTS,POINT,109,STATUS,LIST,26,1,"[20000, 50000]","[{""value"": ""[8]"", ""count"": 26}]"
86,LIGHTS,POINT,115,VALNMR,WORD10,45,7,"[20000, 50000, 200000, 1000000]","[{""value"": ""4"", ""count"": 16}, {""value"": ""6"", ""count"": 7}, {""value"": ""3"", ""count"": 7}, {""value"": ""5"", ""count"": 7}, {""value"": ""19"", ""count"": 4}, {""value"": ""7"", ""count"": 3}, {""value"": ""2"", ""count"": 1}]"
81,LNDARE,AREA,80,OBJNAM,STRING,3,3,"[20000, 1000000]","[{""value"": ""Honshu"", ""count"": 1}, {""value"": ""Todo Shima"", ""count"": 1}, {""value"": ""Hinode Iwa"", ""count"": 1}]"
95,MONUMT,POINT,65,CONVIS,BYTE,2,1,[20000],"[{""value"": ""2"", ""count"": 2}]"
96,MORFAC,AREA,29,CATMOR,BYTE,2,1,[20000],"[{""value"": ""1"", ""count"": 2}]"
96,MORFAC,AREA,78,INFORM,STRING,2,1,[20000],"[{""value"": ""Always dry"", ""count"": 2}]"
96,MORFAC,POINT,29,CATMOR,BYTE,7,1,[50000],"[{""value"": ""1"", ""count"": 7}]"
96,MORFAC,POINT,78,INFORM,STRING,1,1,[50000],"[{""value"": ""Always dry"", ""count"": 1}]"
210,M_PROD,AREA,150,CPDATE,STRING,7,5,"[20000, 50000, 100000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""20080102"", ""count"": 2}, {""value"": ""20060322"", ""count"": 2}, {""value"": ""20141006"", ""count"": 1}, {""value"": ""20140602"", ""count"": 1}, {""value"": ""20140505"", ""count"": 1}]"
97,NATARE,AREA,78,INFORM,STRING,3,1,"[20000, 200000, 1000000]","[{""value"": ""Jeppesen adopts \""International Boundaries and National Limits\"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation."", ""count"": 3}]"
97,NATARE,AREA,81,NATION,STRING,3,1,"[20000, 200000, 1000000]","[{""value"": ""JP"", ""count"": 3}]"
99,OBSTRN,AREA,78,INFORM,STRING,3,2,[50000],"[{""value"": ""Crib|Caissons"", ""count"": 2}, {""value"": ""Crib|Caisson Area"", ""count"": 1}]"
99,OBSTRN,AREA,116,VALSOU,WORD10,3,3,[50000],"[{""value"": ""4.9"", ""count"": 1}, {""value"": ""1.2"", ""count"": 1}, {""value"": ""1.5"", ""count"": 1}]"
99,OBSTRN,AREA,124,WATLEV,BYTE,70,1,"[20000, 50000, 200000, 1000000]","[{""value"": ""3"", ""count"": 70}]"
99,OBSTRN,POINT,69,EXPSOU,BYTE,1,1,[20000],"[{""value"": ""2"", ""count"": 1}]"
99,OBSTRN,POINT,78,INFORM,STRING,2,1,"[20000, 200000]","[{""value"": ""Wave Meter"", ""count"": 2}]"
99,OBSTRN,POINT,116,VALSOU,WORD10,6,4,"[20000, 50000, 200000]","[{""value"": ""25"", ""count"": 2}, {""value"": ""1.5"", ""count"": 2}, {""value"": ""1.2"", ""count"": 1}, {""value"": ""4.9"", ""count"": 1}]"
99,OBSTRN,POINT,124,WATLEV,BYTE,6,1,"[20000, 50000, 200000]","[{""value"": ""3"", ""count"": 6}]"
103,PILPNT,POINT,78,INFORM,STRING,9,2,"[20000, 50000]","[{""value"": ""Always dry"", ""count"": 8}, {""value"": ""Private"", ""count"": 1}]"
107,PIPSOL,LINE,35,CATPIP,BYTE,2,1,"[20000, 50000]","[{""value"": ""1"", ""count"": 2}]"
107,PIPSOL,LINE,78,INFORM,STRING,1,1,[50000],"[{""value"": ""PIPELINES|Mariners are advised not to anchor or trawl in the vicinity of pipelines. Gas from a damaged oil or gas pipeline could cause an explosion, loss of a vessels buoyancy or other serious hazard. Pipelines are not always buried and may effectively reduce the charted depth by up to 2 metres. They may also span seabed undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. See Annual Notice to Mariners No 24 and The Mariners Handbook."", ""count"": 1}]"
107,PIPSOL,LINE,89,PRODCT,LIST,2,2,"[20000, 50000]","[{""value"": ""[1]"", ""count"": 1}, {""value"": ""[2]"", ""count"": 1}]"
111,PRDINS,AREA,78,INFORM,STRING,15,4,[20000],"[{""value"": ""Tank farm"", ""count"": 9}, {""value"": ""Production area"", ""count"": 3}, {""value"": ""Production area|Silo farm"", ""count"": 2}, {""value"": ""Tank farm|Oil Tank Yard"", ""count"": 1}]"
111,PRDINS,AREA,80,OBJNAM,STRING,3,3,[20000],"[{""value"": ""Mitsubishi Paper Mills Limited"", ""count"": 1}, {""value"": ""Tokyotekko Co., Ltd."", ""count"": 1}, {""value"": ""Yoshida Sangyo Corporation"", ""count"": 1}]"
111,PRDINS,AREA,89,PRODCT,LIST,1,1,[20000],"[{""value"": ""[1]"", ""count"": 1}]"
111,PRDINS,POINT,78,INFORM,STRING,12,1,[20000],"[{""value"": ""Production area"", ""count"": 12}]"
111,PRDINS,POINT,80,OBJNAM,STRING,12,11,[20000],"[{""value"": ""Pacific Metals CO., LTD."", ""count"": 2}, {""value"": ""Tozai Oilterminal Co.,Ltd."", ""count"": 1}, {""value"": ""Tohoku Satetsu"", ""count"": 1}, {""value"": ""MRC Unitec Co., Ltd."", ""count"": 1}, {""value"": ""Toshin Steel Industry"", ""count"": 1}, {""value"": ""Hachinohe Gas Co., Ltd."", ""count"": 1}, {""value"": ""Koshuha Foundry Co., Ltd."", ""count"": 1}, {""value"": ""Sumimetal Mining Co., Ltd."", ""count"": 1}, {""value"": ""Hachinohe Smelting Co., Ltd."", ""count"": 1}, {""value"": ""Kitanihon Shipbuilding Co., Ltd."", ""count"": 1}, {""value"": ""JX Nippon Oil & Energy Corporation"", ""count"": 1}]"
111,PRDINS,POINT,89,PRODCT,LIST,2,2,[20000],"[{""value"": ""[1]"", ""count"": 1}, {""value"": ""[2]"", ""count"": 1}]"
111,PRDINS,POINT,91,QUAPOS,BYTE,11,1,[20000],"[{""value"": ""4"", ""count"": 11}]"
112,PYLONS,POINT,78,INFORM,STRING,2,1,[50000],"[{""value"": ""Power transmission pylon/pole"", ""count"": 2}]"
129,RIVERS,AREA,80,OBJNAM,STRING,3,3,"[20000, 200000]","[{""value"": ""Mabechi River"", ""count"": 1}, {""value"": ""Oirase River"", ""count"": 1}, {""value"": ""Gonohe Kawa"", ""count"": 1}]"
118,RTPBCN,POINT,38,CATRTB,BYTE,1,1,[50000],"[{""value"": ""1"", ""count"": 1}]"
118,RTPBCN,POINT,108,SORIND,STRING,1,1,[50000],"[{""value"": ""GB,MDHS,graph,LL F-6620.A"", ""count"": 1}]"
138,SBDARE,AREA,82,NATSUR,LIST,9,3,"[20000, 50000, 200000]","[{""value"": ""[9]"", ""count"": 5}, {""value"": ""[4]"", ""count"": 3}, {""value"": ""[5]"", ""count"": 1}]"
138,SBDARE,POINT,90,NATQUA,LIST,145,2,"[20000, 50000, 200000]","[{""value"": ""[1]"", ""count"": 144}, {""value"": ""[3]"", ""count"": 1}]"
138,SBDARE,POINT,82,NATSUR,LIST,287,11,"[20000, 50000, 200000]","[{""value"": ""[4]"", ""count"": 176}, {""value"": ""[1]"", ""count"": 54}, {""value"": ""[9]"", ""count"": 15}, {""value"": ""[5]"", ""count"": 14}, {""value"": ""[4,17]"", ""count"": 9}, {""value"": ""[1,4]"", ""count"": 8}, {""value"": ""[4,1]"", ""count"": 7}, {""value"": ""[6,17,61]"", ""count"": 1}, {""value"": ""[1,4,17]"", ""count"": 1}, {""value"": ""[1,6]"", ""count"": 1}, {""value"": ""[1,4,5]"", ""count"": 1}]"
136,SEAARE,AREA,80,OBJNAM,STRING,2,2,[200000],"[{""value"": ""North Pacific Ocean"", ""count"": 1}, {""value"": ""Hamanaka"", ""count"": 1}]"
142,SILBUI,POINT,78,INFORM,STRING,3,3,[50000],"[{""value"": ""More than one"", ""count"": 1}, {""value"": ""more than one"", ""count"": 1}, {""value"": ""SILOS"", ""count"": 1}]"
142,SILBUI,POINT,91,QUAPOS,BYTE,2,1,[50000],"[{""value"": ""4"", ""count"": 2}]"
140,SISTAT,POINT,47,CATSIT,LIST,2,1,[20000],"[{""value"": ""[2]"", ""count"": 2}]"
141,SISTAW,POINT,48,CATSIW,LIST,1,1,[20000],"[{""value"": ""[10]"", ""count"": 1}]"
139,SLCONS,AREA,46,CATSLC,BYTE,48,3,"[20000, 50000]","[{""value"": ""1"", ""count"": 34}, {""value"": ""6"", ""count"": 10}, {""value"": ""4"", ""count"": 4}]"
139,SLCONS,AREA,63,CONDTN,BYTE,9,2,"[20000, 50000]","[{""value"": ""2"", ""count"": 8}, {""value"": ""3"", ""count"": 1}]"
139,SLCONS,AREA,78,INFORM,STRING,1,1,[50000],"[{""value"": ""Source date: 2005"", ""count"": 1}]"
139,SLCONS,AREA,83,NATCON,LIST,78,1,"[20000, 50000]","[{""value"": ""[3]"", ""count"": 78}]"
139,SLCONS,AREA,80,OBJNAM,STRING,29,25,"[20000, 50000]","[{""value"": ""Hattaro North Breakwater"", ""count"": 3}, {""value"": ""Middle Breakwater"", ""count"": 2}, {""value"": ""Hattaro East Breakwater"", ""count"": 2}, {""value"": ""West Breakwater"", ""count"": 1}, {""value"": ""Grain Terminal"", ""count"": 1}, {""value"": ""No 4 Wharf"", ""count"": 1}, {""value"": ""No 3 Wharf"", ""count"": 1}, {""value"": ""No 1 Wharf"", ""count"": 1}, {""value"": ""No 2 Wharf"", ""count"": 1}, {""value"": ""Kawaragi No 2 Wharf"", ""count"": 1}, {""value"": ""No 2 Middle Breakwater"", ""count"": 1}, {""value"": ""Shirogane West Breakwater"", ""count"": 1}, {""value"": ""Japan Maritime Self Defense Force Quay"", ""count"": 1}, {""value"": ""Ichikawa East Breakwater"", ""count"": 1}, {""value"": ""Shirogane North Breakwater"", ""count"": 1}, {""value"": ""Grain Terminal Pier"", ""count"": 1}, {""value"": ""Ichikawa North Breakwater"", ""count"": 1}, {""value"": ""Ferry Wharf"", ""count"": 1}, {""value"": ""Mitsubishi Paper Mills Limited Quay"", ""count"": 1}, {""value"": ""Kabu Island Breakwater"", ""count"": 1}, {""value"": ""Shirogane Wharf"", ""count"": 1}, {""value"": ""Kawaragi South Breakwater"", ""count"": 1}, {""value"": ""Kawaragi West Breakwater"", ""count"": 1}, {""value"": ""Hachinohe Smelting Quay"", ""count"": 1}, {""value"": ""Kawaragi Breakwater"", ""count"": 1}]"
139,SLCONS,AREA,124,WATLEV,BYTE,110,3,"[20000, 50000]","[{""value"": ""2"", ""count"": 100}, {""value"": ""4"", ""count"": 9}, {""value"": ""3"", ""count"": 1}]"
139,SLCONS,LINE,46,CATSLC,BYTE,3,1,[50000],"[{""value"": ""6"", ""count"": 3}]"
139,SLCONS,LINE,63,CONDTN,BYTE,5,1,"[20000, 200000]","[{""value"": ""2"", ""count"": 5}]"
139,SLCONS,LINE,78,INFORM,STRING,2,1,[50000],"[{""value"": ""Land Area"", ""count"": 2}]"
139,SLCONS,LINE,80,OBJNAM,STRING,3,3,[50000],"[{""value"": ""No 3"", ""count"": 1}, {""value"": ""Kawaragi No 1"", ""count"": 1}, {""value"": ""Kawaragi No 2"", ""count"": 1}]"
139,SLCONS,LINE,124,WATLEV,BYTE,204,1,"[20000, 50000, 200000, 1000000]","[{""value"": ""2"", ""count"": 204}]"
143,SLIPWY,AREA,80,OBJNAM,STRING,1,1,[20000],"[{""value"": ""Ichikawa Slipway"", ""count"": 1}]"
143,SLIPWY,AREA,124,WATLEV,BYTE,3,2,"[20000, 50000]","[{""value"": ""4"", ""count"": 2}, {""value"": ""2"", ""count"": 1}]"
155,TESARE,AREA,78,INFORM,STRING,3,1,"[20000, 200000, 1000000]","[{""value"": ""Jeppesen adopts \""International Boundaries and National Limits\"" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation."", ""count"": 3}]"
155,TESARE,AREA,81,NATION,STRING,3,1,"[20000, 200000, 1000000]","[{""value"": ""JP"", ""count"": 3}]"
158,TOWERS,POINT,52,CATTOW,BYTE,51,3,"[20000, 50000, 200000, 1000000]","[{""value"": ""1"", ""count"": 22}, {""value"": ""3"", ""count"": 19}, {""value"": ""2"", ""count"": 10}]"
158,TOWERS,POINT,59,COLOUR,LIST,22,1,"[20000, 50000, 200000, 1000000]","[{""value"": ""[1]"", ""count"": 22}]"
158,TOWERS,POINT,65,CONVIS,BYTE,27,2,"[20000, 50000, 200000, 1000000]","[{""value"": ""1"", ""count"": 23}, {""value"": ""2"", ""count"": 4}]"
158,TOWERS,POINT,73,HEIGHT,REAL,2,2,[20000],"[{""value"": ""51"", ""count"": 1}, {""value"": ""53"", ""count"": 1}]"
158,TOWERS,POINT,78,INFORM,STRING,7,3,"[20000, 50000]","[{""value"": ""Radio"", ""count"": 4}, {""value"": ""Ice Supply Tower"", ""count"": 2}, {""value"": ""Framework tower"", ""count"": 1}]"
158,TOWERS,POINT,83,NATCON,LIST,12,1,"[20000, 50000, 200000, 1000000]","[{""value"": ""[2]"", ""count"": 12}]"
158,TOWERS,POINT,91,QUAPOS,BYTE,6,1,"[20000, 50000]","[{""value"": ""4"", ""count"": 6}]"
158,TOWERS,POINT,108,SORIND,STRING,22,17,"[20000, 50000, 200000, 1000000]","[{""value"": ""GB,UKHO,graph,LL M-6620"", ""count"": 3}, {""value"": ""GB,UKHO,graph,LL M-6621"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6625.5"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6624.86"", ""count"": 2}, {""value"": ""GB,UKHO,graph,LL M-6619.5"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6618.4"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6625.7"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.85"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6623.2"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6621"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6622"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6625.5"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6620"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.4"", ""count"": 1}, {""value"": ""GB,MDHS,graph,LL F-6624.85"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6622"", ""count"": 1}, {""value"": ""GB,UKHO,graph,LL M-6624.4"", ""count"": 1}]"
158,TOWERS,POINT,122,VERLEN,REAL,22,7,"[20000, 50000, 200000, 1000000]","[{""value"": ""9"", ""count"": 7}, {""value"": ""23"", ""count"": 4}, {""value"": ""10"", ""count"": 4}, {""value"": ""5"", ""count"": 3}, {""value"": ""16"", ""count"": 2}, {""value"": ""6"", ""count"": 1}, {""value"": ""8"", ""count"": 1}]"
168,UWTROC,POINT,69,EXPSOU,BYTE,3,1,[50000],"[{""value"": ""2"", ""count"": 3}]"
168,UWTROC,POINT,116,VALSOU,WORD10,104,69,"[20000, 50000, 200000]","[{""value"": ""15"", ""count"": 5}, {""value"": ""9.9"", ""count"": 4}, {""value"": ""2.6"", ""count"": 4}, {""value"": ""4.4"", ""count"": 4}, {""value"": ""2"", ""count"": 4}, {""value"": ""17"", ""count"": 3}, {""value"": ""18"", ""count"": 3}, {""value"": ""19"", ""count"": 3}, {""value"": ""21"", ""count"": 3}, {""value"": ""0.3"", ""count"": 2}, {""value"": ""1.7"", ""count"": 2}, {""value"": ""2.2"", ""count"": 2}, {""value"": ""4.1"", ""count"": 2}, {""value"": ""0.7"", ""count"": 2}, {""value"": ""2.3"", ""count"": 2}, {""value"": ""7.7"", ""count"": 2}, {""value"": ""7.8"", ""count"": 2}, {""value"": ""8.8"", ""count"": 2}, {""value"": ""16"", ""count"": 2}, {""value"": ""20"", ""count"": 2}, {""value"": ""0.5"", ""count"": 1}, {""value"": ""0.8"", ""count"": 1}, {""value"": ""1.4"", ""count"": 1}, {""value"": ""1.6"", ""count"": 1}, {""value"": ""2.5"", ""count"": 1}, {""value"": ""2.7"", ""count"": 1}, {""value"": ""3.1"", ""count"": 1}, {""value"": ""4"", ""count"": 1}, {""value"": ""4.7"", ""count"": 1}, {""value"": ""4.8"", ""count"": 1}, {""value"": ""5.7"", ""count"": 1}, {""value"": ""5.9"", ""count"": 1}, {""value"": ""6.2"", ""count"": 1}, {""value"": ""6.3"", ""count"": 1}, {""value"": ""6.5"", ""count"": 1}, {""value"": ""6.8"", ""count"": 1}, {""value"": ""6.9"", ""count"": 1}, {""value"": ""7"", ""count"": 1}, {""value"": ""7.3"", ""count"": 1}, {""value"": ""7.4"", ""count"": 1}]"
168,UWTROC,POINT,124,WATLEV,BYTE,176,3,"[20000, 50000, 200000, 1000000]","[{""value"": ""3"", ""count"": 110}, {""value"": ""2"", ""count"": 56}, {""value"": ""4"", ""count"": 10}]"
176,WRECKS,AREA,57,CATWRK,BYTE,1,1,[20000],"[{""value"": ""2"", ""count"": 1}]"
176,WRECKS,AREA,116,VALSOU,WORD10,1,1,[20000],"[{""value"": ""7"", ""count"": 1}]"
176,WRECKS,AREA,124,WATLEV,BYTE,1,1,[20000],"[{""value"": ""3"", ""count"": 1}]"
176,WRECKS,POINT,57,CATWRK,BYTE,479,2,"[20000, 50000, 200000]","[{""value"": ""3"", ""count"": 477}, {""value"": ""2"", ""count"": 2}]"
176,WRECKS,POINT,116,VALSOU,WORD10,188,103,"[20000, 50000, 200000]","[{""value"": ""11.2"", ""count"": 7}, {""value"": ""12.2"", ""count"": 5}, {""value"": ""12.6"", ""count"": 5}, {""value"": ""9.6"", ""count"": 4}, {""value"": ""10.2"", ""count"": 4}, {""value"": ""11.1"", ""count"": 4}, {""value"": ""12"", ""count"": 4}, {""value"": ""12.5"", ""count"": 4}, {""value"": ""6.3"", ""count"": 3}, {""value"": ""7"", ""count"": 3}, {""value"": ""7.3"", ""count"": 3}, {""value"": ""8.3"", ""count"": 3}, {""value"": ""9"", ""count"": 3}, {""value"": ""9.5"", ""count"": 3}, {""value"": ""11.4"", ""count"": 3}, {""value"": ""11.9"", ""count"": 3}, {""value"": ""12.3"", ""count"": 3}, {""value"": ""12.7"", ""count"": 3}, {""value"": ""13"", ""count"": 3}, {""value"": ""13.1"", ""count"": 3}, {""value"": ""13.4"", ""count"": 3}, {""value"": ""23.5"", ""count"": 2}, {""value"": ""21.5"", ""count"": 2}, {""value"": ""3"", ""count"": 2}, {""value"": ""3.7"", ""count"": 2}, {""value"": ""4.3"", ""count"": 2}, {""value"": ""5"", ""count"": 2}, {""value"": ""5.1"", ""count"": 2}, {""value"": ""5.7"", ""count"": 2}, {""value"": ""6"", ""count"": 2}, {""value"": ""6.2"", ""count"": 2}, {""value"": ""6.9"", ""count"": 2}, {""value"": ""7.8"", ""count"": 2}, {""value"": ""8.1"", ""count"": 2}, {""value"": ""8.5"", ""count"": 2}, {""value"": ""8.7"", ""count"": 2}, {""value"": ""9.1"", ""count"": 2}, {""value"": ""9.4"", ""count"": 2}, {""value"": ""9.9"", ""count"": 2}, {""value"": ""10.3"", ""count"": 2}]"
176,WRECKS,POINT,124,WATLEV,BYTE,480,1,"[20000, 50000, 200000]","[{""value"": ""3"", ""count"": 480}]"
201,_extgn,POINT,60,COLMAR,BYTE,1,1,[50000],"[{""value"": ""11"", ""count"": 1}]"
201,_extgn,POINT,78,INFORM,STRING,1,1,[50000],"[{""value"": ""Height: 123m|Chimney|Visually conspicuous"", ""count"": 1}]"
217,_m_sor,META,151,CSCALE,LONG,6,6,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""3000000"", ""count"": 1}, {""value"": ""1200000"", ""count"": 1}, {""value"": ""250000"", ""count"": 1}, {""value"": ""20000"", ""count"": 1}, {""value"": ""12000"", ""count"": 1}, {""value"": ""20000000"", ""count"": 1}]"
217,_m_sor,META,75,HORDAT,BYTE,6,1,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""2"", ""count"": 6}]"
217,_m_sor,META,84,MARSYS,BYTE,6,2,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""2"", ""count"": 4}, {""value"": ""1"", ""count"": 2}]"
217,_m_sor,META,156,NMDATE,STRING,6,5,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""20021101"", ""count"": 2}, {""value"": ""20140926"", ""count"": 1}, {""value"": ""20140523"", ""count"": 1}, {""value"": ""20060323"", ""count"": 1}, {""value"": ""20140328"", ""count"": 1}]"
217,_m_sor,META,96,RECDAT,STRING,6,5,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""20080102"", ""count"": 2}, {""value"": ""20141006"", ""count"": 1}, {""value"": ""20140602"", ""count"": 1}, {""value"": ""20060322"", ""count"": 1}, {""value"": ""20140505"", ""count"": 1}]"
217,_m_sor,META,108,SORIND,STRING,6,6,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""IT,CMAP,graph,W-135"", ""count"": 1}, {""value"": ""JP,JHOD,graph,W1154"", ""count"": 1}, {""value"": ""JP,JHOD,graph,W53"", ""count"": 1}, {""value"": ""GB,MDHS,graph,2959B"", ""count"": 1}, {""value"": ""JP,JHOD,graph,W65"", ""count"": 1}, {""value"": ""IT,CMAP,graph,W-14"", ""count"": 1}]"
217,_m_sor,META,121,VERDAT,BYTE,4,2,"[20000, 50000, 200000, 1000000]","[{""value"": ""11"", ""count"": 3}, {""value"": ""10"", ""count"": 1}]"
217,_m_sor,META,173,_chcod,STRING,6,6,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""90-01520"", ""count"": 1}, {""value"": ""31-0F270"", ""count"": 1}, {""value"": ""31-0F710"", ""count"": 1}, {""value"": ""31-0684B"", ""count"": 1}, {""value"": ""31-0F700"", ""count"": 1}, {""value"": ""90-00310"", ""count"": 1}]"
217,_m_sor,META,174,_dgdat,STRING,6,5,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""20000101"", ""count"": 2}, {""value"": ""20081003"", ""count"": 1}, {""value"": ""20070914"", ""count"": 1}, {""value"": ""20030320"", ""count"": 1}, {""value"": ""20120313"", ""count"": 1}]"
217,_m_sor,META,180,_hvdat,BYTE,4,2,"[20000, 50000, 200000, 1000000]","[{""value"": ""3"", ""count"": 3}, {""value"": ""21"", ""count"": 1}]"
217,_m_sor,META,175,_quart,BYTE,6,1,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""4"", ""count"": 6}]"
217,_m_sor,META,177,_sorhd,BYTE,6,1,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""2"", ""count"": 6}]"
217,_m_sor,META,178,_wgsox,REAL,6,1,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""0"", ""count"": 6}]"
217,_m_sor,META,179,_wgsoy,REAL,6,1,"[20000, 50000, 200000, 1000000, 3000000, 20000000]","[{""value"": ""0"", ""count"": 6}]"
198,_texto,POINT,139,_texta,COMPLEX,113,104,"[20000, 50000, 200000, 1000000, 3000000]","[{""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Same Kado\""}"", ""count"": 3}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hachinohe\""}"", ""count"": 3}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hachinohe Fishing Harbour\""}"", ""count"": 3}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Misawa\""}"", ""count"": 2}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hamanaka\""}"", ""count"": 2}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hashimukai\""}"", ""count"": 2}, {""value"": ""{\""prefix\"":[128,12,0],\""text\"":\""HACHINOHE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""AOMORI\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hachinohe Ko\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Kabayama Reef\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Hitokawame\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Mikawame\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Minato\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Oirase Town\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Okuki\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Same\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""Shirahama\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""CONVEYOR\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""H A C H I T A R O\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""HACHINOHE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[16,12,0],\""text\"":\""HACHINOHE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""HINODE IWA(ILLUM)\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""HOUSE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""K A W A R A G I\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""KABAYAMA NE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""KABU SH.\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""KO NE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""MABECHI KAWA\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""MITSUBUSHI JETTY\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""MONOMIWA\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""N. BREAKWATER\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""NIIDA KAWA\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""No 1 WHARF\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""No 2 WHARF\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""No 4 WHARF\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""O SAKI\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""OGOMUNE\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""SAME KADO\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""SHIROGANE WHARF\""}"", ""count"": 1}, {""value"": ""{\""prefix\"":[0,12,0],\""text\"":\""SILOS\""}"", ""count"": 1}]"
1 object_class_id object_class geometry_type attribute_id attribute_name value_type occurrence_count distinct_value_count native_scales top_values
2 194 $AREAS AREA 129 $SCODE STRING 11 1 [20000, 50000, 200000] [{"value": "II25", "count": 11}]
3 191 $COMPS POINT 128 $ANNCH STRING 5 2 [20000, 50000] [{"value": "00.00 E", "count": 4}, {"value": "01.00 W", "count": 1}]
4 191 $COMPS POINT 127 $CYEAR REAL 5 2 [20000, 50000] [{"value": "2012", "count": 4}, {"value": "2002", "count": 1}]
5 191 $COMPS POINT 126 $VARIA STRING 5 1 [20000, 50000] [{"value": "08.25 W", "count": 5}]
6 193 $LINES LINE 129 $SCODE STRING 15 3 [20000, 50000] [{"value": "IH40", "count": 6}, {"value": "IH41", "count": 6}, {"value": "IK1", "count": 3}]
7 4 ACHARE AREA 3 CATACH LIST 2 1 [20000, 50000] [{"value": "[5]", "count": 2}]
8 1 AIRARE POINT 80 OBJNAM STRING 1 1 [20000] [{"value": "Hachinohe Airfield", "count": 1}]
9 7 BCNLAT POINT 103 BCNSHP BYTE 4 1 [50000] [{"value": "3", "count": 4}]
10 7 BCNLAT POINT 24 CATLAM BYTE 15 1 [20000, 50000, 200000] [{"value": "2", "count": 15}]
11 7 BCNLAT POINT 60 COLMAR BYTE 15 1 [20000, 50000, 200000] [{"value": "3", "count": 15}]
12 7 BCNLAT POINT 78 INFORM STRING 6 3 [20000, 50000, 200000] [{"value": "Concrete", "count": 3}, {"value": "Metal", "count": 2}, {"value": "Metal|Framework tower", "count": 1}]
13 7 BCNLAT POINT 108 SORIND STRING 15 11 [20000, 50000, 200000] [{"value": "GB,UKHO,graph,LL M-6623", "count": 2}, {"value": "GB,UKHO,graph,LL M-6624.8", "count": 2}, {"value": "GB,UKHO,graph,LL M-6624.7", "count": 2}, {"value": "GB,UKHO,graph,LL M-6624", "count": 2}, {"value": "GB,UKHO,graph,LL M-6619", "count": 1}, {"value": "GB,MDHS,graph,LL F-6623", "count": 1}, {"value": "GB,MDHS,graph,LL F-6623.6", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.8", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624", "count": 1}, {"value": "GB,UKHO,graph,LL M-6623.6", "count": 1}]
14 7 BCNLAT POINT 122 VERLEN REAL 15 4 [20000, 50000, 200000] [{"value": "10", "count": 6}, {"value": "9", "count": 5}, {"value": "16", "count": 3}, {"value": "6", "count": 1}]
15 9 BCNSPP POINT 51 CATSPM BYTE 5 2 [20000, 50000, 1000000] [{"value": "6", "count": 4}, {"value": "27", "count": 1}]
16 9 BCNSPP POINT 60 COLMAR BYTE 2 1 [20000, 200000] [{"value": "5", "count": 2}]
17 9 BCNSPP POINT 78 INFORM STRING 4 1 [200000, 1000000] [{"value": "Metal", "count": 4}]
18 9 BCNSPP POINT 108 SORIND STRING 6 3 [20000, 200000, 1000000] [{"value": "GB,UKHO,graph,LL M-6625", "count": 2}, {"value": "GB,UKHO,graph,LL M-6626", "count": 2}, {"value": "GB,UKHO,graph,LL M-6623.2", "count": 2}]
19 9 BCNSPP POINT 122 VERLEN REAL 4 2 [20000, 200000, 1000000] [{"value": "43", "count": 2}, {"value": "9", "count": 2}]
20 20 BOYSPP POINT 105 BOYSHP BYTE 8 2 [20000, 50000] [{"value": "1", "count": 5}, {"value": "4", "count": 3}]
21 20 BOYSPP POINT 51 CATSPM BYTE 5 3 [20000, 50000] [{"value": "27", "count": 3}, {"value": "10", "count": 1}, {"value": "13", "count": 1}]
22 20 BOYSPP POINT 60 COLMAR BYTE 8 1 [20000, 50000] [{"value": "4", "count": 8}]
23 20 BOYSPP POINT 78 INFORM STRING 1 1 [50000] [{"value": "Private mark|Wave recorder", "count": 1}]
24 20 BOYSPP POINT 109 STATUS LIST 6 1 [20000] [{"value": "[8]", "count": 6}]
25 11 BRIDGE AREA 4 CATBRG LIST 2 1 [50000] [{"value": "[1]", "count": 2}]
26 11 BRIDGE AREA 78 INFORM STRING 3 2 [20000] [{"value": "Vertical Datum: Nearly highest high water|Vertical clearance 4.5m - 5.5m", "count": 2}, {"value": "Vertical Datum: Nearly highest high water", "count": 1}]
27 11 BRIDGE AREA 80 OBJNAM STRING 7 7 [20000] [{"value": "Hachinohe Bridge", "count": 1}, {"value": "Hattaro Bridge", "count": 1}, {"value": "The Numadate Bridge", "count": 1}, {"value": "The Shin-O-Hashi Bridge", "count": 1}, {"value": "Seagull Bridge", "count": 1}, {"value": "Minato Bridge", "count": 1}, {"value": "Ichikawa Bridge", "count": 1}]
28 11 BRIDGE AREA 117 VERCLR REAL 5 3 [20000, 50000] [{"value": "4.5", "count": 2}, {"value": "31", "count": 2}, {"value": "5.30000019073486", "count": 1}]
29 10 BRTFAC POINT 80 OBJNAM STRING 89 25 [20000, 50000] [{"value": "2", "count": 8}, {"value": "1", "count": 6}, {"value": "3", "count": 6}, {"value": "4", "count": 6}, {"value": "A", "count": 6}, {"value": "B", "count": 6}, {"value": "C", "count": 6}, {"value": "5", "count": 4}, {"value": "6", "count": 4}, {"value": "D", "count": 4}, {"value": "F", "count": 4}, {"value": "G", "count": 4}, {"value": "7", "count": 2}, {"value": "8", "count": 2}, {"value": "9", "count": 2}, {"value": "E", "count": 2}, {"value": "H", "count": 2}, {"value": "I", "count": 2}, {"value": "J", "count": 2}, {"value": "L", "count": 2}, {"value": "M", "count": 2}, {"value": "N", "count": 2}, {"value": "O", "count": 2}, {"value": "10", "count": 2}, {"value": "P", "count": 1}]
30 14 BUAARE AREA 80 OBJNAM STRING 2 2 [200000] [{"value": "Hachinohe", "count": 1}, {"value": "Misawa", "count": 1}]
31 14 BUAARE POINT 80 OBJNAM STRING 35 33 [20000, 200000, 1000000] [{"value": "Hachinohe", "count": 2}, {"value": "Hashimukai", "count": 2}, {"value": "Misawa", "count": 1}, {"value": "Same", "count": 1}, {"value": "Okuki", "count": 1}, {"value": "Minato", "count": 1}, {"value": "Mikawame", "count": 1}, {"value": "Shirahama", "count": 1}, {"value": "Hitokawame", "count": 1}, {"value": "Oirase Town", "count": 1}, {"value": "Tate", "count": 1}, {"value": "Osawa", "count": 1}, {"value": "Hinode", "count": 1}, {"value": "Toyosu", "count": 1}, {"value": "Hattaro", "count": 1}, {"value": "Hasunuma", "count": 1}, {"value": "Kawaragi", "count": 1}, {"value": "Kitanuma", "count": 1}, {"value": "Numadate", "count": 1}, {"value": "Sunamori", "count": 1}, {"value": "Tatehana", "count": 1}, {"value": "Uenoyama", "count": 1}, {"value": "Kami-Same", "count": 1}, {"value": "Hikagezawa", "count": 1}, {"value": "Shinminato", "count": 1}, {"value": "Uheikawara", "count": 1}, {"value": "Senzogakubo", "count": 1}, {"value": "Hamana-Yachi", "count": 1}, {"value": "Shimo-Oyachi", "count": 1}, {"value": "Minami-Oyachi", "count": 1}, {"value": "Toyama-Shinden", "count": 1}, {"value": "Shimo-Matsunaeba", "count": 1}, {"value": "Shimo-Mekurakubo", "count": 1}]
32 12 BUIREL POINT 41 CATREB BYTE 5 3 [20000, 50000] [{"value": "6", "count": 2}, {"value": "7", "count": 2}, {"value": "4", "count": 1}]
33 13 BUISGL AREA 49 CATBUI LIST 10 4 [20000] [{"value": "[19]", "count": 7}, {"value": "[13]", "count": 1}, {"value": "[3,2]", "count": 1}, {"value": "[10]", "count": 1}]
34 13 BUISGL AREA 78 INFORM STRING 7 7 [20000] [{"value": "Port Management Office", "count": 1}, {"value": "Fisheries High School", "count": 1}, {"value": "Fishery Hall", "count": 1}, {"value": "Fisheries Laboratory", "count": 1}, {"value": "Coast Guard Office|Marine Procedure Commission Agent Office", "count": 1}, {"value": "Fishing Harbor Development Office", "count": 1}, {"value": "Regional Development Bureau,Port And Airport Office", "count": 1}]
35 13 BUISGL AREA 80 OBJNAM STRING 7 7 [20000] [{"value": "Tohoku Electric Power Electric Substation", "count": 1}, {"value": "No.1 Fish Market", "count": 1}, {"value": "No.2 Fish Market", "count": 1}, {"value": "No.3 Fish Market", "count": 1}, {"value": "Maritime Office", "count": 1}, {"value": "Construction Office", "count": 1}, {"value": "Fisherman's Union", "count": 1}]
36 13 BUISGL POINT 104 BUISHP BYTE 1 1 [200000] [{"value": "4", "count": 1}]
37 13 BUISGL POINT 49 CATBUI LIST 9 5 [20000, 50000] [{"value": "[6]", "count": 5}, {"value": "[2]", "count": 1}, {"value": "[3]", "count": 1}, {"value": "[17]", "count": 1}, {"value": "[5]", "count": 1}]
38 13 BUISGL POINT 65 CONVIS BYTE 2 1 [20000, 200000] [{"value": "2", "count": 2}]
39 13 BUISGL POINT 78 INFORM STRING 1 1 [20000] [{"value": "Light support|Not in use", "count": 1}]
40 13 BUISGL POINT 80 OBJNAM STRING 2 2 [20000] [{"value": "Tohoku Electric Power Thermal Power Plants", "count": 1}, {"value": "Japan Maritime Self Defense Force Air Base", "count": 1}]
41 13 BUISGL POINT 91 QUAPOS BYTE 2 1 [20000] [{"value": "4", "count": 2}]
42 21 CBLOHD LINE 6 CATCBL BYTE 5 1 [20000, 50000] [{"value": "1", "count": 5}]
43 21 CBLOHD LINE 93 QUAVEM BYTE 1 1 [50000] [{"value": "1", "count": 1}]
44 21 CBLOHD LINE 117 VERCLR REAL 1 1 [50000] [{"value": "12", "count": 1}]
45 22 CBLSUB LINE 6 CATCBL BYTE 2 1 [20000, 50000] [{"value": "1", "count": 2}]
46 22 CBLSUB LINE 109 STATUS LIST 3 1 [20000, 50000] [{"value": "[4]", "count": 3}]
47 33 CHIMNY POINT 59 COLOUR LIST 2 1 [50000] [{"value": "[3,1]", "count": 2}]
48 33 CHIMNY POINT 65 CONVIS BYTE 9 2 [20000, 50000, 200000] [{"value": "2", "count": 8}, {"value": "1", "count": 1}]
49 33 CHIMNY POINT 73 HEIGHT REAL 9 7 [20000, 200000] [{"value": "123", "count": 2}, {"value": "30", "count": 2}, {"value": "27", "count": 1}, {"value": "81", "count": 1}, {"value": "40", "count": 1}, {"value": "71", "count": 1}, {"value": "82", "count": 1}]
50 33 CHIMNY POINT 78 INFORM STRING 1 1 [50000] [{"value": "3 CHYS", "count": 1}]
51 35 COALNE LINE 147 CATCOA BYTE 8 1 [20000] [{"value": "1", "count": 8}]
52 36 CONZNE AREA 78 INFORM STRING 2 1 [200000, 1000000] [{"value": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "count": 2}]
53 36 CONZNE AREA 81 NATION STRING 2 1 [200000, 1000000] [{"value": "JP", "count": 2}]
54 36 CONZNE AREA 108 SORIND STRING 1 1 [200000] [{"value": "CM,PAD,graph,B3900420", "count": 1}]
55 39 CRANES POINT 10 CATCRN BYTE 11 2 [20000, 50000] [{"value": "4", "count": 9}, {"value": "2", "count": 2}]
56 29 CTNARE AREA 78 INFORM STRING 16 12 [20000, 50000, 200000, 1000000] [{"value": "Caisson Temporary Storage Area", "count": 3}, {"value": "The contents of the charts affected by earthquakes etc. occured offshore Pacific Ocean in Tohoku region in Japan.|By earthquakes and tsunami occured offshore Pacific Ocean in Tohoku region in Japan on 11th March 2011, damages of breakwaters, quays, etc. and existance of foul bottoms (i.e. houses and vehicles) on the seafloor which were pushed and flowed from land area in the east coast of Honshu and each ports and harbours. Users are aware that contents of the charts may be different from existing situations. Notices to Mariners about these matters will be issued as soon as survey results are received.Notices to Mariners address http://www1.kaiho.mlit.go.jp/TUHO/tuho_db/tuhoserch.html", "count": 2}, {"value": "Unassessed. Surveys before the earthquake (11th Mar. 2011)", "count": 2}, {"value": "Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution.|Caution|Only the principal lights are shown on this chart. For the details of these and other lights, the larger scale charts and the List of Lights should be consulted.|Note|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of Japanese Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|Note|Owing to scale, only major points of the straight baselines given in the Enforcement Order are shown.|Caution|As submarine cables are not shown on this chart, take care with regard to the fishing industry, submarine exploration etc. For submarine cable information, refer to JP charts with scales of larger than 1:750,000 or the JP chart with scale 1:3,500,000.", "count": 1}, {"value": "Jeppesen digital nautical charts do not reflect all soundings present on the official paper charts published by Japan Hydrographic and Oceanographic Department. This product is not an Electronic Navigational Chart. Mariners are required to use official paper charts for navigational judgements.", "count": 1}, {"value": "CAUTION|As undiscovered shoals may exist around charted shoals, mariners are warned to excercise cautions.|NOTE|The straight baselines and the limits of the territorial sea shown on this chart are based on the provisions of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone and the Enforcement Order No.210 of 1977 of the Law No.30 of 1977 on the Territorial Sea and the Contiguous Zone.|NOTE|Of all the base points of the straight baselines given in the Enforcement Order, only major points are shown on this chart due to its small scale.", "count": 1}, {"value": "CABLES|1. Submarine and overhead cables may conduct high voltages; contact with or proximity to these poses an extreme danger and mariners may risk prosecution if damage is caused.|2. Anchoring or trawling in the vicinity of submarine cables should be avoided. Seabed mobility may leave a cable spanning undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. If a cable is snagged, care must be taken not to sever it.|3. Sufficient clearance must be allowed under overhead cables.|4. Some cables, particularly those installed since this edition was published, may not be charted.|5. For further information, see The Mariner's Handbook.", "count": 1}, {"value": "Dredged to 7.5m|Source date: 1994", "count": 1}, {"value": "Caution|Undiscovered shoals may exist around charted shoals. Mariners are advised to exercise caution. |Caution|Depths are very changeable at the entrance to river mouths. Mariners are advised to exercise caution.", "count": 1}, {"value": "Section 3", "count": 1}, {"value": "Section 2", "count": 1}, {"value": "Section 1", "count": 1}]
57 29 CTNARE POINT 78 INFORM STRING 13 12 [20000, 50000] [{"value": "Works in progress|Source date: 2005", "count": 2}, {"value": "FOUL", "count": 1}, {"value": "Marked by buoys", "count": 1}, {"value": "(liable to shoal)", "count": 1}, {"value": "WORKS IN PROGRESS (1998)", "count": 1}, {"value": "Works in progress|Source date: 2000", "count": 1}, {"value": "Works in progress|Source date: 2002", "count": 1}, {"value": "Ebb stream|Orientation: 130 Deg|Current velocity: 0.2kn", "count": 1}, {"value": "Flood stream|Orientation: 290 Deg|Current velocity: 0.3kn", "count": 1}, {"value": "Slipway", "count": 1}, {"value": "Ebb stream|Orientation: 133 Deg|Current velocity: 0.3kn", "count": 1}, {"value": "Flood stream|Orientation: 299 Deg|Current velocity: 0.3kn", "count": 1}]
58 38 CTRPNT POINT 9 CATCTR BYTE 6 2 [20000, 50000] [{"value": "1", "count": 4}, {"value": "4", "count": 2}]
59 38 CTRPNT POINT 80 OBJNAM STRING 1 1 [20000] [{"value": "Monomiiwa", "count": 1}]
60 44 DEPARE AREA 66 DRVAL1 REAL 414 7 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "2", "count": 188}, {"value": "0", "count": 117}, {"value": "5", "count": 81}, {"value": "10", "count": 18}, {"value": "20", "count": 5}, {"value": "200", "count": 4}, {"value": "30", "count": 1}]
61 44 DEPARE AREA 67 DRVAL2 REAL 411 8 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "5", "count": 203}, {"value": "2", "count": 96}, {"value": "10", "count": 84}, {"value": "20", "count": 18}, {"value": "200", "count": 4}, {"value": "50", "count": 4}, {"value": "30", "count": 1}, {"value": "2000", "count": 1}]
62 45 DEPCNT LINE 91 QUAPOS BYTE 1 1 [50000] [{"value": "4", "count": 1}]
63 45 DEPCNT LINE 113 VALDCO REAL 451 6 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "5", "count": 230}, {"value": "2", "count": 102}, {"value": "10", "count": 100}, {"value": "20", "count": 14}, {"value": "200", "count": 4}, {"value": "30", "count": 1}]
64 50 DRGARE AREA 66 DRVAL1 REAL 13 6 [50000] [{"value": "7.5", "count": 5}, {"value": "13", "count": 4}, {"value": "14", "count": 1}, {"value": "12", "count": 1}, {"value": "9.59999942779541", "count": 1}, {"value": "10", "count": 1}]
65 50 DRGARE AREA 78 INFORM STRING 11 7 [50000] [{"value": "(1981-2000)", "count": 4}, {"value": "Source date: 1990", "count": 2}, {"value": "(1995-2000)", "count": 1}, {"value": "Source date: 1991", "count": 1}, {"value": "1980", "count": 1}, {"value": "1994", "count": 1}, {"value": "Source date: 1977", "count": 1}]
66 56 EXEZNE AREA 78 INFORM STRING 2 1 [200000, 1000000] [{"value": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "count": 2}]
67 56 EXEZNE AREA 81 NATION STRING 2 1 [200000, 1000000] [{"value": "JP", "count": 2}]
68 56 EXEZNE AREA 108 SORIND STRING 1 1 [200000] [{"value": "CM,PAD,graph,B3900420", "count": 1}]
69 57 FAIRWY AREA 80 OBJNAM STRING 4 4 [20000, 50000] [{"value": "East Fairway", "count": 1}, {"value": "West Fairway", "count": 1}, {"value": "East Passage", "count": 1}, {"value": "West Passage", "count": 1}]
70 60 FSHHAV POINT 78 INFORM STRING 18 1 [20000, 50000, 200000] [{"value": "Always under water/submerged", "count": 18}]
71 72 HRBARE AREA 80 OBJNAM STRING 3 3 [50000] [{"value": "No 3 Area", "count": 1}, {"value": "No 2 Area", "count": 1}, {"value": "No1 Area", "count": 1}]
72 73 HRBFAC AREA 20 CATHAF LIST 1 1 [20000] [{"value": "[9]", "count": 1}]
73 73 HRBFAC POINT 80 OBJNAM STRING 1 1 [20000] [{"value": "Tohoku Grain Terminal", "count": 1}]
74 78 ITDARE AREA 82 NATSUR LIST 38 4 [20000, 50000] [{"value": "[9]", "count": 25}, {"value": "[56]", "count": 5}, {"value": "[1]", "count": 4}, {"value": "[4]", "count": 4}]
75 79 LAKARE AREA 80 OBJNAM STRING 1 1 [200000] [{"value": "Ane Lake", "count": 1}]
76 86 LIGHTS POINT 25 CATLIT BYTE 9 4 [20000, 50000, 200000, 1000000] [{"value": "5", "count": 5}, {"value": "8", "count": 2}, {"value": "6", "count": 1}, {"value": "11", "count": 1}]
77 86 LIGHTS POINT 59 COLOUR LIST 93 6 [20000, 50000, 200000, 1000000] [{"value": "[6]", "count": 28}, {"value": "[4]", "count": 23}, {"value": "[3]", "count": 23}, {"value": "[1]", "count": 15}, {"value": "[1,1,4]", "count": 2}, {"value": "[1,4]", "count": 2}]
78 86 LIGHTS POINT 73 HEIGHT REAL 50 16 [20000, 50000, 200000, 1000000] [{"value": "12", "count": 10}, {"value": "14", "count": 6}, {"value": "57", "count": 4}, {"value": "11", "count": 4}, {"value": "5", "count": 4}, {"value": "9", "count": 3}, {"value": "17", "count": 3}, {"value": "22", "count": 3}, {"value": "69", "count": 2}, {"value": "79", "count": 2}, {"value": "7", "count": 2}, {"value": "16", "count": 2}, {"value": "4", "count": 2}, {"value": "8", "count": 1}, {"value": "31", "count": 1}, {"value": "10", "count": 1}]
79 86 LIGHTS POINT 78 INFORM STRING 10 5 [20000, 50000, 200000, 1000000] [{"value": "2 fl in 3s", "count": 4}, {"value": "The white light can be apparent on 8M", "count": 2}, {"value": "Illuminates Hinode Iwa 430m NNW", "count": 2}, {"value": "FW spotlight illuminates Hinode Iwa.", "count": 1}, {"value": "More than one", "count": 1}]
80 86 LIGHTS POINT 58 LITCHR BYTE 58 4 [20000, 50000, 200000, 1000000] [{"value": "2", "count": 35}, {"value": "7", "count": 13}, {"value": "1", "count": 6}, {"value": "19", "count": 4}]
81 86 LIGHTS POINT 80 OBJNAM STRING 7 6 [20000] [{"value": "C1", "count": 2}, {"value": "C2", "count": 1}, {"value": "R1", "count": 1}, {"value": "R2", "count": 1}, {"value": "L1", "count": 1}, {"value": "L2", "count": 1}]
82 86 LIGHTS POINT 93 QUAVEM BYTE 12 1 [50000] [{"value": "1", "count": 12}]
83 86 LIGHTS POINT 100 SECTR1 WORD10 6 2 [20000] [{"value": "228", "count": 3}, {"value": "48", "count": 3}]
84 86 LIGHTS POINT 101 SECTR2 WORD10 6 2 [20000] [{"value": "48", "count": 3}, {"value": "228", "count": 3}]
85 86 LIGHTS POINT 72 SIGGRP STRING 52 2 [20000, 50000, 200000, 1000000] [{"value": "(1)", "count": 38}, {"value": "(2)", "count": 14}]
86 86 LIGHTS POINT 86 SIGPER WORD10 46 7 [20000, 50000, 200000, 1000000] [{"value": "3", "count": 10}, {"value": "6", "count": 10}, {"value": "4", "count": 7}, {"value": "9", "count": 6}, {"value": "5", "count": 5}, {"value": "10", "count": 4}, {"value": "8", "count": 4}]
87 86 LIGHTS POINT 108 SORIND STRING 14 14 [20000, 50000] [{"value": "GB,MDHS,graph,LL F-6624.7.C", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7.D", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7.E", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7.F", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7.A", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.7.B", "count": 1}, {"value": "GB,MDHS,graph,LL F-6623.2.A", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.62", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.621", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.64", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.641", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.63", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.631", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.5", "count": 1}]
88 86 LIGHTS POINT 109 STATUS LIST 26 1 [20000, 50000] [{"value": "[8]", "count": 26}]
89 86 LIGHTS POINT 115 VALNMR WORD10 45 7 [20000, 50000, 200000, 1000000] [{"value": "4", "count": 16}, {"value": "6", "count": 7}, {"value": "3", "count": 7}, {"value": "5", "count": 7}, {"value": "19", "count": 4}, {"value": "7", "count": 3}, {"value": "2", "count": 1}]
90 81 LNDARE AREA 80 OBJNAM STRING 3 3 [20000, 1000000] [{"value": "Honshu", "count": 1}, {"value": "Todo Shima", "count": 1}, {"value": "Hinode Iwa", "count": 1}]
91 95 MONUMT POINT 65 CONVIS BYTE 2 1 [20000] [{"value": "2", "count": 2}]
92 96 MORFAC AREA 29 CATMOR BYTE 2 1 [20000] [{"value": "1", "count": 2}]
93 96 MORFAC AREA 78 INFORM STRING 2 1 [20000] [{"value": "Always dry", "count": 2}]
94 96 MORFAC POINT 29 CATMOR BYTE 7 1 [50000] [{"value": "1", "count": 7}]
95 96 MORFAC POINT 78 INFORM STRING 1 1 [50000] [{"value": "Always dry", "count": 1}]
96 210 M_PROD AREA 150 CPDATE STRING 7 5 [20000, 50000, 100000, 200000, 1000000, 3000000, 20000000] [{"value": "20080102", "count": 2}, {"value": "20060322", "count": 2}, {"value": "20141006", "count": 1}, {"value": "20140602", "count": 1}, {"value": "20140505", "count": 1}]
97 97 NATARE AREA 78 INFORM STRING 3 1 [20000, 200000, 1000000] [{"value": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "count": 3}]
98 97 NATARE AREA 81 NATION STRING 3 1 [20000, 200000, 1000000] [{"value": "JP", "count": 3}]
99 99 OBSTRN AREA 78 INFORM STRING 3 2 [50000] [{"value": "Crib|Caissons", "count": 2}, {"value": "Crib|Caisson Area", "count": 1}]
100 99 OBSTRN AREA 116 VALSOU WORD10 3 3 [50000] [{"value": "4.9", "count": 1}, {"value": "1.2", "count": 1}, {"value": "1.5", "count": 1}]
101 99 OBSTRN AREA 124 WATLEV BYTE 70 1 [20000, 50000, 200000, 1000000] [{"value": "3", "count": 70}]
102 99 OBSTRN POINT 69 EXPSOU BYTE 1 1 [20000] [{"value": "2", "count": 1}]
103 99 OBSTRN POINT 78 INFORM STRING 2 1 [20000, 200000] [{"value": "Wave Meter", "count": 2}]
104 99 OBSTRN POINT 116 VALSOU WORD10 6 4 [20000, 50000, 200000] [{"value": "25", "count": 2}, {"value": "1.5", "count": 2}, {"value": "1.2", "count": 1}, {"value": "4.9", "count": 1}]
105 99 OBSTRN POINT 124 WATLEV BYTE 6 1 [20000, 50000, 200000] [{"value": "3", "count": 6}]
106 103 PILPNT POINT 78 INFORM STRING 9 2 [20000, 50000] [{"value": "Always dry", "count": 8}, {"value": "Private", "count": 1}]
107 107 PIPSOL LINE 35 CATPIP BYTE 2 1 [20000, 50000] [{"value": "1", "count": 2}]
108 107 PIPSOL LINE 78 INFORM STRING 1 1 [50000] [{"value": "PIPELINES|Mariners are advised not to anchor or trawl in the vicinity of pipelines. Gas from a damaged oil or gas pipeline could cause an explosion, loss of a vessels buoyancy or other serious hazard. Pipelines are not always buried and may effectively reduce the charted depth by up to 2 metres. They may also span seabed undulations and cause fishing gear to become irrecoverably snagged, putting a vessel in severe danger. See Annual Notice to Mariners No 24 and The Mariners Handbook.", "count": 1}]
109 107 PIPSOL LINE 89 PRODCT LIST 2 2 [20000, 50000] [{"value": "[1]", "count": 1}, {"value": "[2]", "count": 1}]
110 111 PRDINS AREA 78 INFORM STRING 15 4 [20000] [{"value": "Tank farm", "count": 9}, {"value": "Production area", "count": 3}, {"value": "Production area|Silo farm", "count": 2}, {"value": "Tank farm|Oil Tank Yard", "count": 1}]
111 111 PRDINS AREA 80 OBJNAM STRING 3 3 [20000] [{"value": "Mitsubishi Paper Mills Limited", "count": 1}, {"value": "Tokyotekko Co., Ltd.", "count": 1}, {"value": "Yoshida Sangyo Corporation", "count": 1}]
112 111 PRDINS AREA 89 PRODCT LIST 1 1 [20000] [{"value": "[1]", "count": 1}]
113 111 PRDINS POINT 78 INFORM STRING 12 1 [20000] [{"value": "Production area", "count": 12}]
114 111 PRDINS POINT 80 OBJNAM STRING 12 11 [20000] [{"value": "Pacific Metals CO., LTD.", "count": 2}, {"value": "Tozai Oilterminal Co.,Ltd.", "count": 1}, {"value": "Tohoku Satetsu", "count": 1}, {"value": "MRC Unitec Co., Ltd.", "count": 1}, {"value": "Toshin Steel Industry", "count": 1}, {"value": "Hachinohe Gas Co., Ltd.", "count": 1}, {"value": "Koshuha Foundry Co., Ltd.", "count": 1}, {"value": "Sumimetal Mining Co., Ltd.", "count": 1}, {"value": "Hachinohe Smelting Co., Ltd.", "count": 1}, {"value": "Kitanihon Shipbuilding Co., Ltd.", "count": 1}, {"value": "JX Nippon Oil & Energy Corporation", "count": 1}]
115 111 PRDINS POINT 89 PRODCT LIST 2 2 [20000] [{"value": "[1]", "count": 1}, {"value": "[2]", "count": 1}]
116 111 PRDINS POINT 91 QUAPOS BYTE 11 1 [20000] [{"value": "4", "count": 11}]
117 112 PYLONS POINT 78 INFORM STRING 2 1 [50000] [{"value": "Power transmission pylon/pole", "count": 2}]
118 129 RIVERS AREA 80 OBJNAM STRING 3 3 [20000, 200000] [{"value": "Mabechi River", "count": 1}, {"value": "Oirase River", "count": 1}, {"value": "Gonohe Kawa", "count": 1}]
119 118 RTPBCN POINT 38 CATRTB BYTE 1 1 [50000] [{"value": "1", "count": 1}]
120 118 RTPBCN POINT 108 SORIND STRING 1 1 [50000] [{"value": "GB,MDHS,graph,LL F-6620.A", "count": 1}]
121 138 SBDARE AREA 82 NATSUR LIST 9 3 [20000, 50000, 200000] [{"value": "[9]", "count": 5}, {"value": "[4]", "count": 3}, {"value": "[5]", "count": 1}]
122 138 SBDARE POINT 90 NATQUA LIST 145 2 [20000, 50000, 200000] [{"value": "[1]", "count": 144}, {"value": "[3]", "count": 1}]
123 138 SBDARE POINT 82 NATSUR LIST 287 11 [20000, 50000, 200000] [{"value": "[4]", "count": 176}, {"value": "[1]", "count": 54}, {"value": "[9]", "count": 15}, {"value": "[5]", "count": 14}, {"value": "[4,17]", "count": 9}, {"value": "[1,4]", "count": 8}, {"value": "[4,1]", "count": 7}, {"value": "[6,17,61]", "count": 1}, {"value": "[1,4,17]", "count": 1}, {"value": "[1,6]", "count": 1}, {"value": "[1,4,5]", "count": 1}]
124 136 SEAARE AREA 80 OBJNAM STRING 2 2 [200000] [{"value": "North Pacific Ocean", "count": 1}, {"value": "Hamanaka", "count": 1}]
125 142 SILBUI POINT 78 INFORM STRING 3 3 [50000] [{"value": "More than one", "count": 1}, {"value": "more than one", "count": 1}, {"value": "SILOS", "count": 1}]
126 142 SILBUI POINT 91 QUAPOS BYTE 2 1 [50000] [{"value": "4", "count": 2}]
127 140 SISTAT POINT 47 CATSIT LIST 2 1 [20000] [{"value": "[2]", "count": 2}]
128 141 SISTAW POINT 48 CATSIW LIST 1 1 [20000] [{"value": "[10]", "count": 1}]
129 139 SLCONS AREA 46 CATSLC BYTE 48 3 [20000, 50000] [{"value": "1", "count": 34}, {"value": "6", "count": 10}, {"value": "4", "count": 4}]
130 139 SLCONS AREA 63 CONDTN BYTE 9 2 [20000, 50000] [{"value": "2", "count": 8}, {"value": "3", "count": 1}]
131 139 SLCONS AREA 78 INFORM STRING 1 1 [50000] [{"value": "Source date: 2005", "count": 1}]
132 139 SLCONS AREA 83 NATCON LIST 78 1 [20000, 50000] [{"value": "[3]", "count": 78}]
133 139 SLCONS AREA 80 OBJNAM STRING 29 25 [20000, 50000] [{"value": "Hattaro North Breakwater", "count": 3}, {"value": "Middle Breakwater", "count": 2}, {"value": "Hattaro East Breakwater", "count": 2}, {"value": "West Breakwater", "count": 1}, {"value": "Grain Terminal", "count": 1}, {"value": "No 4 Wharf", "count": 1}, {"value": "No 3 Wharf", "count": 1}, {"value": "No 1 Wharf", "count": 1}, {"value": "No 2 Wharf", "count": 1}, {"value": "Kawaragi No 2 Wharf", "count": 1}, {"value": "No 2 Middle Breakwater", "count": 1}, {"value": "Shirogane West Breakwater", "count": 1}, {"value": "Japan Maritime Self Defense Force Quay", "count": 1}, {"value": "Ichikawa East Breakwater", "count": 1}, {"value": "Shirogane North Breakwater", "count": 1}, {"value": "Grain Terminal Pier", "count": 1}, {"value": "Ichikawa North Breakwater", "count": 1}, {"value": "Ferry Wharf", "count": 1}, {"value": "Mitsubishi Paper Mills Limited Quay", "count": 1}, {"value": "Kabu Island Breakwater", "count": 1}, {"value": "Shirogane Wharf", "count": 1}, {"value": "Kawaragi South Breakwater", "count": 1}, {"value": "Kawaragi West Breakwater", "count": 1}, {"value": "Hachinohe Smelting Quay", "count": 1}, {"value": "Kawaragi Breakwater", "count": 1}]
134 139 SLCONS AREA 124 WATLEV BYTE 110 3 [20000, 50000] [{"value": "2", "count": 100}, {"value": "4", "count": 9}, {"value": "3", "count": 1}]
135 139 SLCONS LINE 46 CATSLC BYTE 3 1 [50000] [{"value": "6", "count": 3}]
136 139 SLCONS LINE 63 CONDTN BYTE 5 1 [20000, 200000] [{"value": "2", "count": 5}]
137 139 SLCONS LINE 78 INFORM STRING 2 1 [50000] [{"value": "Land Area", "count": 2}]
138 139 SLCONS LINE 80 OBJNAM STRING 3 3 [50000] [{"value": "No 3", "count": 1}, {"value": "Kawaragi No 1", "count": 1}, {"value": "Kawaragi No 2", "count": 1}]
139 139 SLCONS LINE 124 WATLEV BYTE 204 1 [20000, 50000, 200000, 1000000] [{"value": "2", "count": 204}]
140 143 SLIPWY AREA 80 OBJNAM STRING 1 1 [20000] [{"value": "Ichikawa Slipway", "count": 1}]
141 143 SLIPWY AREA 124 WATLEV BYTE 3 2 [20000, 50000] [{"value": "4", "count": 2}, {"value": "2", "count": 1}]
142 155 TESARE AREA 78 INFORM STRING 3 1 [20000, 200000, 1000000] [{"value": "Jeppesen adopts \"International Boundaries and National Limits\" as defined by international standards from sources, such as government provided official charts and other official documents. Due to the resolution of information provided, as well as the age of underlying surveys or publication dates, the reference datum used or its conversion, inaccuracies in the position or the form of these boundaries and limits may exist and as such may not be relied on as a primary source of information. Therefore Jeppesen cannot accept any liability regarding the use of this data for navigation.", "count": 3}]
143 155 TESARE AREA 81 NATION STRING 3 1 [20000, 200000, 1000000] [{"value": "JP", "count": 3}]
144 158 TOWERS POINT 52 CATTOW BYTE 51 3 [20000, 50000, 200000, 1000000] [{"value": "1", "count": 22}, {"value": "3", "count": 19}, {"value": "2", "count": 10}]
145 158 TOWERS POINT 59 COLOUR LIST 22 1 [20000, 50000, 200000, 1000000] [{"value": "[1]", "count": 22}]
146 158 TOWERS POINT 65 CONVIS BYTE 27 2 [20000, 50000, 200000, 1000000] [{"value": "1", "count": 23}, {"value": "2", "count": 4}]
147 158 TOWERS POINT 73 HEIGHT REAL 2 2 [20000] [{"value": "51", "count": 1}, {"value": "53", "count": 1}]
148 158 TOWERS POINT 78 INFORM STRING 7 3 [20000, 50000] [{"value": "Radio", "count": 4}, {"value": "Ice Supply Tower", "count": 2}, {"value": "Framework tower", "count": 1}]
149 158 TOWERS POINT 83 NATCON LIST 12 1 [20000, 50000, 200000, 1000000] [{"value": "[2]", "count": 12}]
150 158 TOWERS POINT 91 QUAPOS BYTE 6 1 [20000, 50000] [{"value": "4", "count": 6}]
151 158 TOWERS POINT 108 SORIND STRING 22 17 [20000, 50000, 200000, 1000000] [{"value": "GB,UKHO,graph,LL M-6620", "count": 3}, {"value": "GB,UKHO,graph,LL M-6621", "count": 2}, {"value": "GB,UKHO,graph,LL M-6625.5", "count": 2}, {"value": "GB,UKHO,graph,LL M-6624.86", "count": 2}, {"value": "GB,UKHO,graph,LL M-6619.5", "count": 1}, {"value": "GB,UKHO,graph,LL M-6618.4", "count": 1}, {"value": "GB,UKHO,graph,LL M-6625.7", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.85", "count": 1}, {"value": "GB,MDHS,graph,LL F-6623.2", "count": 1}, {"value": "GB,MDHS,graph,LL F-6621", "count": 1}, {"value": "GB,MDHS,graph,LL F-6622", "count": 1}, {"value": "GB,MDHS,graph,LL F-6625.5", "count": 1}, {"value": "GB,MDHS,graph,LL F-6620", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.4", "count": 1}, {"value": "GB,MDHS,graph,LL F-6624.85", "count": 1}, {"value": "GB,UKHO,graph,LL M-6622", "count": 1}, {"value": "GB,UKHO,graph,LL M-6624.4", "count": 1}]
152 158 TOWERS POINT 122 VERLEN REAL 22 7 [20000, 50000, 200000, 1000000] [{"value": "9", "count": 7}, {"value": "23", "count": 4}, {"value": "10", "count": 4}, {"value": "5", "count": 3}, {"value": "16", "count": 2}, {"value": "6", "count": 1}, {"value": "8", "count": 1}]
153 168 UWTROC POINT 69 EXPSOU BYTE 3 1 [50000] [{"value": "2", "count": 3}]
154 168 UWTROC POINT 116 VALSOU WORD10 104 69 [20000, 50000, 200000] [{"value": "15", "count": 5}, {"value": "9.9", "count": 4}, {"value": "2.6", "count": 4}, {"value": "4.4", "count": 4}, {"value": "2", "count": 4}, {"value": "17", "count": 3}, {"value": "18", "count": 3}, {"value": "19", "count": 3}, {"value": "21", "count": 3}, {"value": "0.3", "count": 2}, {"value": "1.7", "count": 2}, {"value": "2.2", "count": 2}, {"value": "4.1", "count": 2}, {"value": "0.7", "count": 2}, {"value": "2.3", "count": 2}, {"value": "7.7", "count": 2}, {"value": "7.8", "count": 2}, {"value": "8.8", "count": 2}, {"value": "16", "count": 2}, {"value": "20", "count": 2}, {"value": "0.5", "count": 1}, {"value": "0.8", "count": 1}, {"value": "1.4", "count": 1}, {"value": "1.6", "count": 1}, {"value": "2.5", "count": 1}, {"value": "2.7", "count": 1}, {"value": "3.1", "count": 1}, {"value": "4", "count": 1}, {"value": "4.7", "count": 1}, {"value": "4.8", "count": 1}, {"value": "5.7", "count": 1}, {"value": "5.9", "count": 1}, {"value": "6.2", "count": 1}, {"value": "6.3", "count": 1}, {"value": "6.5", "count": 1}, {"value": "6.8", "count": 1}, {"value": "6.9", "count": 1}, {"value": "7", "count": 1}, {"value": "7.3", "count": 1}, {"value": "7.4", "count": 1}]
155 168 UWTROC POINT 124 WATLEV BYTE 176 3 [20000, 50000, 200000, 1000000] [{"value": "3", "count": 110}, {"value": "2", "count": 56}, {"value": "4", "count": 10}]
156 176 WRECKS AREA 57 CATWRK BYTE 1 1 [20000] [{"value": "2", "count": 1}]
157 176 WRECKS AREA 116 VALSOU WORD10 1 1 [20000] [{"value": "7", "count": 1}]
158 176 WRECKS AREA 124 WATLEV BYTE 1 1 [20000] [{"value": "3", "count": 1}]
159 176 WRECKS POINT 57 CATWRK BYTE 479 2 [20000, 50000, 200000] [{"value": "3", "count": 477}, {"value": "2", "count": 2}]
160 176 WRECKS POINT 116 VALSOU WORD10 188 103 [20000, 50000, 200000] [{"value": "11.2", "count": 7}, {"value": "12.2", "count": 5}, {"value": "12.6", "count": 5}, {"value": "9.6", "count": 4}, {"value": "10.2", "count": 4}, {"value": "11.1", "count": 4}, {"value": "12", "count": 4}, {"value": "12.5", "count": 4}, {"value": "6.3", "count": 3}, {"value": "7", "count": 3}, {"value": "7.3", "count": 3}, {"value": "8.3", "count": 3}, {"value": "9", "count": 3}, {"value": "9.5", "count": 3}, {"value": "11.4", "count": 3}, {"value": "11.9", "count": 3}, {"value": "12.3", "count": 3}, {"value": "12.7", "count": 3}, {"value": "13", "count": 3}, {"value": "13.1", "count": 3}, {"value": "13.4", "count": 3}, {"value": "23.5", "count": 2}, {"value": "21.5", "count": 2}, {"value": "3", "count": 2}, {"value": "3.7", "count": 2}, {"value": "4.3", "count": 2}, {"value": "5", "count": 2}, {"value": "5.1", "count": 2}, {"value": "5.7", "count": 2}, {"value": "6", "count": 2}, {"value": "6.2", "count": 2}, {"value": "6.9", "count": 2}, {"value": "7.8", "count": 2}, {"value": "8.1", "count": 2}, {"value": "8.5", "count": 2}, {"value": "8.7", "count": 2}, {"value": "9.1", "count": 2}, {"value": "9.4", "count": 2}, {"value": "9.9", "count": 2}, {"value": "10.3", "count": 2}]
161 176 WRECKS POINT 124 WATLEV BYTE 480 1 [20000, 50000, 200000] [{"value": "3", "count": 480}]
162 201 _extgn POINT 60 COLMAR BYTE 1 1 [50000] [{"value": "11", "count": 1}]
163 201 _extgn POINT 78 INFORM STRING 1 1 [50000] [{"value": "Height: 123m|Chimney|Visually conspicuous", "count": 1}]
164 217 _m_sor META 151 CSCALE LONG 6 6 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "3000000", "count": 1}, {"value": "1200000", "count": 1}, {"value": "250000", "count": 1}, {"value": "20000", "count": 1}, {"value": "12000", "count": 1}, {"value": "20000000", "count": 1}]
165 217 _m_sor META 75 HORDAT BYTE 6 1 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "2", "count": 6}]
166 217 _m_sor META 84 MARSYS BYTE 6 2 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "2", "count": 4}, {"value": "1", "count": 2}]
167 217 _m_sor META 156 NMDATE STRING 6 5 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "20021101", "count": 2}, {"value": "20140926", "count": 1}, {"value": "20140523", "count": 1}, {"value": "20060323", "count": 1}, {"value": "20140328", "count": 1}]
168 217 _m_sor META 96 RECDAT STRING 6 5 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "20080102", "count": 2}, {"value": "20141006", "count": 1}, {"value": "20140602", "count": 1}, {"value": "20060322", "count": 1}, {"value": "20140505", "count": 1}]
169 217 _m_sor META 108 SORIND STRING 6 6 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "IT,CMAP,graph,W-135", "count": 1}, {"value": "JP,JHOD,graph,W1154", "count": 1}, {"value": "JP,JHOD,graph,W53", "count": 1}, {"value": "GB,MDHS,graph,2959B", "count": 1}, {"value": "JP,JHOD,graph,W65", "count": 1}, {"value": "IT,CMAP,graph,W-14", "count": 1}]
170 217 _m_sor META 121 VERDAT BYTE 4 2 [20000, 50000, 200000, 1000000] [{"value": "11", "count": 3}, {"value": "10", "count": 1}]
171 217 _m_sor META 173 _chcod STRING 6 6 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "90-01520", "count": 1}, {"value": "31-0F270", "count": 1}, {"value": "31-0F710", "count": 1}, {"value": "31-0684B", "count": 1}, {"value": "31-0F700", "count": 1}, {"value": "90-00310", "count": 1}]
172 217 _m_sor META 174 _dgdat STRING 6 5 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "20000101", "count": 2}, {"value": "20081003", "count": 1}, {"value": "20070914", "count": 1}, {"value": "20030320", "count": 1}, {"value": "20120313", "count": 1}]
173 217 _m_sor META 180 _hvdat BYTE 4 2 [20000, 50000, 200000, 1000000] [{"value": "3", "count": 3}, {"value": "21", "count": 1}]
174 217 _m_sor META 175 _quart BYTE 6 1 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "4", "count": 6}]
175 217 _m_sor META 177 _sorhd BYTE 6 1 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "2", "count": 6}]
176 217 _m_sor META 178 _wgsox REAL 6 1 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "0", "count": 6}]
177 217 _m_sor META 179 _wgsoy REAL 6 1 [20000, 50000, 200000, 1000000, 3000000, 20000000] [{"value": "0", "count": 6}]
178 198 _texto POINT 139 _texta COMPLEX 113 104 [20000, 50000, 200000, 1000000, 3000000] [{"value": "{\"prefix\":[0,12,0],\"text\":\"Same Kado\"}", "count": 3}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hachinohe\"}", "count": 3}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hachinohe Fishing Harbour\"}", "count": 3}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Misawa\"}", "count": 2}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hamanaka\"}", "count": 2}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hashimukai\"}", "count": 2}, {"value": "{\"prefix\":[128,12,0],\"text\":\"HACHINOHE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"AOMORI\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hachinohe Ko\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Kabayama Reef\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Hitokawame\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Mikawame\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Minato\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Oirase Town\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Okuki\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Same\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"Shirahama\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"CONVEYOR\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"H A C H I T A R O\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"HACHINOHE\"}", "count": 1}, {"value": "{\"prefix\":[16,12,0],\"text\":\"HACHINOHE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"HINODE IWA(ILLUM)\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"HOUSE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"K A W A R A G I\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"KABAYAMA NE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"KABU SH.\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"KO NE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"MABECHI KAWA\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"MITSUBUSHI JETTY\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"MONOMIWA\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"N. BREAKWATER\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"NIIDA KAWA\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"No 1 WHARF\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"No 2 WHARF\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"No 4 WHARF\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"O SAKI\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"OGOMUNE\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"SAME KADO\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"SHIROGANE WHARF\"}", "count": 1}, {"value": "{\"prefix\":[0,12,0],\"text\":\"SILOS\"}", "count": 1}]

View File

@@ -0,0 +1,23 @@
CM95 选定 AOI → NavSea PBF 映射输入审计 v2
====================================================================================
Dataset ID : 1
Tile : z10/914/385
BBox WGS84 : 141.3281250000,40.4469470596 → 141.6796875000,40.7139558263
AOI cells : 7
AOI spatial features : 3605
Object class/geom groups : 80
Attribute groups : 177
Feature samples : 600
Related samples : 0
Geometry counts:
POINT 1632
LINE 970
AREA 993
SOUNDING 4
META 6
NEXT:
上传本脚本生成的 ZIP。
下一步直接生成 cm95_to_navsea_v1.yaml 初版并标注 UNMAPPED / hard_gate 缺口。

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
schema: navsea.cm95.production-policy/v1
version: v1.4.2-materialization-split
status: PRODUCTION_CANDIDATE
zooms: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
profile: delivery
workers: 4
max_attempts: 3
release_root: build/releases
plan_path: build/production/cm95_production_plan_v1.json
rules:
- 生产目标固定为 z0-z12。
- 高 zoom tile 的物理枚举只由 enumeration_scales 决定。
- scale_ladders 的粗比例尺只允许在已枚举 tile 内回退,不得扩张生产 footprint。
- mapping、tile policy、Dataset fingerprint、FID manifest 在计划创建后必须保持不变。
- PASS tile 自动断点续跑;RUNNING 状态在下次启动时恢复为 PENDING。
- FAILED tile 最多尝试 max_attempts 次;失败不会被静默跳过。
- 空 tile 可为 PASS 且不生成 PBF 文件;release manifest 只列真实产物。
- 发布前 finalize-production 必须满足 planned/report/decoded feature 三方一致。

View File

@@ -0,0 +1,96 @@
schema: navsea.cm95.tile-policy/v1
version: v1.3-japan-full-detail-g7500-at-z12
status: PRODUCTION_CANDIDATE
xyz: true
nominal_tile_pixels: 256
buffer_tile_pixels: 8
default_extent: 4096
extent_by_zoom:
'10': 4096
'11': 4096
'12': 1048576
enumeration_scales:
'0':
- 20000000
'1':
- 20000000
'2':
- 20000000
'3':
- 20000000
'4':
- 20000000
'5':
- 3000000
'6':
- 3000000
'7':
- 3000000
'8':
- 1000000
'9':
- 1000000
'10':
- 200000
'11':
- 50000
- 100000
'12':
- 7500
- 20000
- 50000
scale_ladders:
'0':
- 20000000
'1':
- 20000000
'2':
- 20000000
'3':
- 20000000
'4':
- 20000000
'5':
- 3000000
- 20000000
'6':
- 3000000
- 20000000
'7':
- 3000000
- 20000000
'8':
- 1000000
- 3000000
- 20000000
'9':
- 1000000
- 3000000
- 20000000
'10':
- 200000
- 1000000
- 3000000
- 20000000
'11':
- 50000
- 100000
- 200000
- 1000000
- 3000000
- 20000000
'12':
- 7500
- 20000
- 50000
- 100000
- 200000
- 1000000
- 3000000
- 20000000
notes:
- Japan full-detail production 仍保持 z0-z12;不新增 z13/z14。
- z12 enumeration 加入 1:7,500(G),避免正确 Japan 数据中的 G 级细节被生产策略直接忽略。
- z12 scale ladder 优先 7,500,再回退 20k/50k/100k/...。
- z0-z11 extent=4096;z12 extent=1048576,保持已验证 NavSea/MapLibre 契约。
- enumeration_scales 仅决定物化范围;scale_ladders 仅决定 tile 内选择/回退。

View File

@@ -0,0 +1,51 @@
schema: navsea.cm95.tile-policy/v1
version: v1.2-production-materialization-split
status: PRODUCTION_CANDIDATE
xyz: true
nominal_tile_pixels: 256
buffer_tile_pixels: 8
default_extent: 4096
extent_by_zoom:
'10': 4096
'11': 4096
'12': 1048576
# enumeration_scales 决定哪些 coverage 可以创建物理 tile。
# 这里只使用与目标 zoom 匹配的原生/近原生比例尺,避免粗比例尺 coverage
# 把高 zoom 生产范围膨胀成百万级静态文件。
enumeration_scales:
'0': [20000000]
'1': [20000000]
'2': [20000000]
'3': [20000000]
'4': [20000000]
'5': [3000000]
'6': [3000000]
'7': [3000000]
'8': [1000000]
'9': [1000000]
'10': [200000]
'11': [50000, 100000]
'12': [20000, 50000]
# scale_ladders 只控制已经决定生成的 tile 内部如何选择数据。
# 粗比例尺仍可作为 tile 内回退,但不再扩张 tile 枚举范围。
scale_ladders:
'0': [20000000]
'1': [20000000]
'2': [20000000]
'3': [20000000]
'4': [20000000]
'5': [3000000, 20000000]
'6': [3000000, 20000000]
'7': [3000000, 20000000]
'8': [1000000, 3000000, 20000000]
'9': [1000000, 3000000, 20000000]
'10': [200000, 1000000, 3000000, 20000000]
'11': [50000, 100000, 200000, 1000000, 3000000, 20000000]
'12': [20000, 50000, 100000, 200000, 1000000, 3000000, 20000000]
notes:
- 生产目标为 z0-z12;Pilot 的 z10-z12 只用于验证。
- enumeration_scales 与 scale_ladders 必须分离。
- enumeration_scales 只决定是否物化 tile;scale_ladders 只决定 tile 内数据回退。
- z0-z11 extent=4096;z12 extent=1048576,保持已验证 NavSea 契约。

View File

@@ -0,0 +1,18 @@
# CM95 PBF v1.4.5 定向重建 tile
# 来源:cm95_style_contract_unmatched_features_v1.json
10/912/366
10/913/366
10/916/327
11/1893/717
11/1893/718
11/1908/643
11/1908/645
11/1909/636
11/1909/639
11/1909/643
11/1910/633
12/3662/1409
12/3737/1466
12/3787/1435
12/3787/1436
12/3825/1376

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,58 @@
# 25个新增映射缺口分类说明_v1
## 结论
- 正确 Japan Dataset 1 的 gap variant:165。
- 原 disposition 可直接覆盖:140。
- 新出现且未分类:25 variants / 869 rows。
- 本次 25 个全部显式分类为 `ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW`。
- 不新增 delivery mapping,不修改 `cm95_to_navsea_v1.yaml`,避免在未完成图层/样式语义设计前臆造显示。
- 分类后 closure 预期:`PASS`。
- 新 semantic backlog:137 variants / 90,009 rows。
## 25个新增 variant
| Object | Geometry | Rows | Safety | 处理 |
|---|---:|---:|---|---|
| TWRTPT | AREA | 462 | important | pending semantic review |
| LNDSTS | AREA | 78 | normal | pending semantic review |
| SNDWAV | AREA | 74 | important | pending semantic review |
| FORSTC | POINT | 62 | normal | pending semantic review |
| TIDEWY | LINE | 42 | important | pending semantic review |
| RCTLPT | AREA | 30 | important | pending semantic review |
| DWRTPT | AREA | 20 | important | pending semantic review |
| TREPNT | POINT | 19 | normal | pending semantic review |
| DAMCON | LINE | 12 | important | pending semantic review |
| LITFLT | POINT | 9 | important | pending semantic review |
| FSHZNE | AREA | 8 | important | pending semantic review |
| TIDEWY | AREA | 8 | important | pending semantic review |
| TOWERS | AREA | 8 | normal | pending semantic review |
| DISMAR | POINT | 6 | normal | pending semantic review |
| LOKBSN | AREA | 5 | normal | pending semantic review |
| BRTFAC | AREA | 4 | normal | pending semantic review |
| FORSTC | AREA | 4 | normal | pending semantic review |
| GRIDRN | AREA | 4 | normal | pending semantic review |
| MIPARE | AREA | 4 | important | pending semantic review |
| SMCFAC | POINT | 4 | normal | pending semantic review |
| HULKES | POINT | 2 | important | pending semantic review |
| CHIMNY | AREA | 1 | normal | pending semantic review |
| SMCFAC | AREA | 1 | normal | pending semantic review |
| SPLARE | AREA | 1 | normal | pending semantic review |
| WNDMIL | POINT | 1 | normal | pending semantic review |
## 特别优先审查
以下虽然本次先进入 pending,但属于后续应优先处理的航行语义:
- `TWRTPT AREA`:双向交通航路。
- `RCTLPT AREA`:推荐交通航道。
- `DWRTPT AREA`:深水航路。
- `LITFLT POINT`:灯浮。
- `FSHZNE AREA`:渔业区,样本明确包含鱼陷阱警告。
- `MIPARE AREA`:军事演习区,样本包含潜艇演习警告。
- `HULKES POINT`:沉船/废船点。
- `SNDWAV AREA`、`TIDEWY LINE/AREA`:海底/水道相关语义。
## 重要说明
本次只解决“分类闭环”,不等于语义完整。当前 90,009 条 `NO_EXACT_RULE` 仍不会进入正式 delivery,其中还包括 TOPMAR、BOYLAT、RESARE、NAVLNE 等重要航海对象。

View File

@@ -0,0 +1,84 @@
# CM95 21 张 PBF 与现有 NavSea/NEWPEC 对照审计 v1
## 1. 结论
PBF-03 v1.1 的 MVT 结构、extent、tile buffer、FID 稳定性和 scale-region 机制通过;但发现两个正式语义/样式契约问题,因此 v1.1 不冻结,进入 v1.2。
## 2. 已通过项目
- 新 delivery 与参考 AOI 均为完全相同的 21 个 `z/x/y` 路径。
- MVT layer version 为 2。
- extent 与当前工作参考一致:z10/z11 为 4096,z12 为 1048576。
- 所有 geometry command 可解析;无空 geometry、无截断 geometry。
- 新 PBF 坐标均落在现有 8px buffer 契约内。
- delivery feature ID 均能在同 tile、同 source-layer 的 engineering PBF 中找到。
- 以 `(source_id, output source-layer)` 检查,共 6067 个键;其中 890 个跨 tile 重复出现,MVT ID 不稳定数为 0。
- 同一 tile/source-layer 内未发现重复 MVT ID。
- scale-region 实现采用 `coverage.difference(occupied)`,详细比例尺优先、低比例尺只补空缺。
- 对多比例尺并存的点图层做 30m 内近重复检查,未发现跨比例尺重复点。
- 21 张 delivery 报告:hard-gate unmapped = 0;nav name conflicts = 0。
## 3. 问题 A:DEPARE 非标准水深区间不被现有 style 消费
v1.1 会直接把 CM95 `DRVAL1/DRVAL2` 拼成 `chart_fill_style`。当前 NavSea style 只接受固定区间,所以以下 24 个水深面在现有 style 下不会显示:
| 值 | 数量 |
|---|---:|
| depth_zone_13-20m | 7 |
| depth_zone_7.5-10m | 7 |
| depth_zone_20-50m | 7 |
| depth_zone_12-20m | 1 |
| depth_zone_9.6-10m | 1 |
| depth_zone_14-20m | 1 |
v1.2 修正:将任意 CM95 深度范围归一到“能够完整包含原范围的最小现有 NavSea 区间”。例如:
- 7.5–10m → 5–10m
- 9.6–10m → 5–10m
- 12–20m / 13–20m / 14–20m → 10–20m
- 20–50m → 20–100m
原始 `DRVAL1/DRVAL2` 仍保留在 engineering trace/source attributes,不修改 MySQL。
## 4. 问题 B:SOUNDG 与底质文字共用过宽 style filter
v1.1 在 21 张 delivery PBF 中输出的 `seabed_text_point`:
- z10:spot_sounding 71,seabed_material 9,seabed_area 1
- z11:spot_sounding 590,seabed_material 83,seabed_area 2
- z12:spot_sounding 2269,seabed_material 250,seabed_area 10
参考 PBF 的 `seabed_text_point` 只在 z12 出现,共 273 个,全部为 `canonical_object_type=seabed_material`。
当前 `bottom-material-labels` 仅判断 `has(chart_label_text)`,因此 v1.1 的 SOUNDG 在 z11/z12 会被当作底质文字直接显示,并且 `text-allow-overlap=true`,会造成测深数字过密。
v1.2 不改变 source-layer,仍使用 `seabed_text_point`,但提供最小 style 扩展:
1. `bottom-material-labels` 排除 `spot_sounding`;
2. 新增 `spot-sounding-labels`;
3. spot sounding 从 z12 开始显示;
4. `text-allow-overlap=false`,由 MapLibre 的符号碰撞机制控制密度。
这样不增加新的正式 source-layer,也不丢 SOUNDG hard-gate 数据。
## 5. 参考数据差异,不判为生成器错误
参考 NEWPEC 与 CM95 是不同上游数据,因此 Feature 数量不要求一致。例如:
- 新 z12:4770 个 feature;参考 z12:11383 个 feature。
- 参考含大量 `onshore_structure_line`、`baseline_outline`、`hole_area` 等;CM95 当前映射及源对象组成不同。
- navigation_marks 全 AOI 数量接近:CM95 新 PBF 118,参考 123。
- CM95 直接助航名称明显少于参考,这是源数据可证明关系差异;不得用参考名称反灌。
## 6. v1.2 冻结门槛
重新生成 21 张后必须满足:
- build report audit:PASS;
- hard-gate unmapped = 0;
- nav name conflicts = 0;
- style contract audit:`contract_unmatched_count = 0`;
- z10/z11/z12 extent 不变;
- FID 稳定性不退化;
- SOUNDG 在 z11 属于有意 zoom-hidden,在 z12 进入独立 sounding style;
- 不修改 importer、geometry 或 MySQL schema。

View File

@@ -0,0 +1,205 @@
# CM95 → NavSea PBF Pilot Generator v1
## 1. 当前阶段
已完成前置门禁:
- CM93 → MySQL 全量 Geometry / Non-Geometry:PASS。
- NavSea 现有 style、semantic sprite、z10–z12 PBF 契约已审计。
- 测试 AOI:`z10/914/385`。
- AOI 中 CM95 数据有效。
- `LIGHTS` relation20 全 AOI 审计:
- LIGHTS total = 96
- with relation20 = 94
- relation20 可安全合成 = 94
- 坐标冲突 = 0
- 无 relation20、必须独立输出 = 2
- 结论:`PASS_RELATION20_PRIMARY_KEY`
本包进入第一版真实生成阶段。
## 2. 架构
```text
CM93 / CM95 source
↓
已冻结 MySQL importer
↓
CM95 MySQL Dataset 1
↓ read-only
Coverage / scale selector
↓
cm95_to_navsea_v1.yaml
↓
navigation relation20 composer
↓
Web Mercator clip / tile quantization
↓
NavSea source-layer
↓
MVT/PBF
```
PBF 生成器不修改 importer、schema 或原始 CM93 数据。
## 3. 第一 AOI 的 scale policy
```text
z10 → C / 1:200,000
fallback B/A/Z
z11 → E / 1:50,000
fallback D/C/B/A/Z
z12 → F / 1:20,000
fallback E/D/C/B/A/Z
```
回退不是简单叠加。
每一级优先使用该 scale 的 `chart_coverage.geom`;细图覆盖过的区域会遮蔽更粗 scale,只在未覆盖部分回退。
因此不会把 F/E/C/B 等多个比例尺的对象全部重复塞进同一 tile。
## 4. extent
为兼容用户提供的当前 NavSea/NEWPEC PBF:
```text
z10 = 4096
z11 = 4096
z12 = 1048576
```
这是 Pilot 明确 policy,而不是从 CM95 上游 PBF“继承”。
## 5. 助航对象合成
主键:
```text
cell_id + attributes._cm93_relation20_raw
```
仅当同一 relation20 组同时存在 `LIGHTS + base component` 时合成。
base component 优先级:
```text
BCNLAT
BCNSPP
BOYSPP
RTPBCN
TOWERS
_extgn
```
同一组只输出一个 `navigation_marks` Feature。
原始组件在 engineering trace 中全部保留。
### 无 relation20 的 LIGHTS
当前 AOI 有 2 个。
规则:
```text
独立输出
不按距离猜测合并
```
## 6. MVT ID
禁止使用 MySQL `chart_feature.id` 作为稳定外部身份。
第一次生成前建立:
```text
build/cm95_fid_manifest_v1.sqlite
```
Manifest 按:
```text
source_relative_path
source_record_index
geometry_type
sounding point_index
```
确定性排序并分配 base ordinal。
最终 MVT numeric id:
```text
base_ord * 16 + geometry_role
```
这样:
- 结果是 signed-int32 范围;
- Dataset 不变时重复构建稳定;
- derived boundary / point-on-surface 有独立稳定 ID;
- MySQL 重建导致自增 id 改变不会影响 PBF ID。
如果 Dataset 的 source SHA 集合发生变化,manifest fingerprint 不匹配,生成器会拒绝继续,要求显式重建。
## 7. Engineering / Delivery
### Engineering
保留:
```text
source_id
source_dataset_id
source_cell
source_record_index
source_object_class
source_geometry_type
native_scale
mapping_rule_id
mapping_status
source_attr_json
```
无法安全映射对象进入:
```text
cm95_unmapped
```
### Delivery
只输出现有 NavSea style source-layer。
字段按当前 delivery allowlist 裁剪。
正式 delivery 不包含 `cm95_unmapped`。
## 8. 当前限制
这是 Pilot,不是全国发布版。
当前需要实测的内容:
1. `mapbox-vector-tile` 在用户 Windows 环境的编码结果;
2. z10/z11/z12 Coverage 回退效果;
3. CM95 和 NEWPEC 内容不同导致的对象数量差异;
4. 航标 icon / label 实际视觉;
5. 未映射对象收敛;
6. hard-gate 对象保全;
7. tile edge buffer;
8. 后续 sector light 的专项 arc 映射。
因此第一轮目标是:
```text
能生成
能被当前 NavSea style 直接打开
对象可追溯
hard-gate 不静默丢
```
而不是第一轮就宣称全国正式发布。

View File

@@ -0,0 +1,70 @@
# CM95 PBF Production v1.4.7 — 导航名称冲突审计式省略
## 1. 本版本定位
v1.4.7 是 **release gate 修复**,不是 PBF builder 语义版本。
因此:
- Project/runtime 升级为 v1.4.7;
- `BUILDER_CONTRACT_VERSION` **保持** `cm95pbf-builder/0.4.6-spatial-candidate-query`;
- 已完成的 v1.4.6 Plan、FID、27,038 个 job、27,030 个 PBF 全部复用;
- 不重新生成 PBF;
- 不修改 MySQL;
- 不修改 mapping / style / sprite / FID / geometry / quantization / encoder reconcile / non-renderable omission。
## 2. 已确认的真实冲突
当前 Japan release 中:
- report conflict occurrences:10;
- trace conflict occurrences:10;
- unique conflict outputs:4;
- affected tiles:3;
- native scale:全部 1:50,000;
- 每个真实 conflict 都恰好有两个不同 direct-name candidate。
四组候选分别为:
- `R2` / `P4`
- `R1` / `P3`
- `L1` / `P1`
- `L2` / `P2`
它们不是大小写、空格或格式差异,因此不能做字符串归一化后任选一个。
## 3. v1.4.7 policy
采用:
`AMBIGUOUS_DIRECT_NAMES_OMIT_LABEL_FAIL_CLOSED`
即:
1. composite base 自己没有直接名称;
2. relation group 内有两个以上不同 LIGHTS 直接名称;
3. Builder 继续不猜名称,不写 `chart_label_text`;
4. finalizer 必须逐条核对 report 与 trace 数量;
5. trace 必须明确 `nav_name_conflict=true` 且 `nav_name_source=conflict`;
6. 至少存在两个 distinct name candidates;
7. finalizer 解码对应 PBF feature,确认 `chart_label_text` 实际为空;
8. 只有全部满足时,这些冲突才记为 `nav_name_conflict_omissions` 并允许 release PASS;
9. 若 trace 缺失、数量不一致、PBF feature 不存在、或 ambiguous feature 被写入任意 label,则继续 hard fail。
这不是关闭 gate,而是把原来的“只要有 conflict 就失败”改成“只允许经过可验证的安全省略”。
## 4. 当前 release 不重建
当前 release:
`cm95-d1-62a85bd40d3a-6bc3c1352da3`
现有生产数据:
- jobs: 27,038 / 27,038 PASS
- attempts: 27,038
- PBF files: 27,030
- planned features: 2,974,375
- decoded features: 2,974,375
v1.4.7 仅重新执行 finalize。

View File

@@ -0,0 +1,37 @@
# CM95 PBF Pilot Generator v1.2 变更说明
## 变更范围
本版本只处理 21 张 Pilot 对照中确认的两个问题:
1. DEPARE 深度区间归一化到当前 NavSea style 固定词汇;
2. SOUNDG 与底质标签在同一 `seabed_text_point` source-layer 内分流显示。
## 未修改
- CM93/CM95 importer
- geometry normalization
- MySQL schema
- relation20 助航合成规则
- FID manifest 规则
- tile extent / buffer
- scale ladder / coverage difference 算法
- 80 条 CM95 对象 mapping 主结构
## 新增 style 候选
`config/style/style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json`
它以当前 `style.navsea-delivery-full-semantic-unified-20260808.json` 为基线,只做:
- `bottom-material-labels` 排除 `spot_sounding`;
- 新增 `spot-sounding-labels`,minzoom=12,禁止文字强制重叠。
## 新增审计工具
`tools/cm95_pbf_style_contract_audit_v2.py`
用于区分:
- style 属性/值域真正不匹配;
- 因 minzoom/maxzoom 有意隐藏。

View File

@@ -0,0 +1,35 @@
# CM95 PBF Pilot Generator v1.3 变更说明
## 原因
v1.2 的 21 张批量 Gate 中,构建报告累计 6911 个输出,而真实 PBF 解码为 6910。定位到唯一缺失对象:
- tile: `11/1828/771`
- layer: `clearance_limit_line`
- source_id: `cm95:1:03900420/E/03910424.E:574:line`
- mapping: `CM95-052 / TELPHC`
- safety_class: `hard_gate`
该线在 z11 extent=4096 量化后退化,被 `mapbox-vector-tile` encoder 静默省略。
## v1.3 规则
1. `clearance_limit_line` 若量化后仍有至少两个不同整数顶点,正常输出 line。
2. 若量化后退化,改用 `representative_point()` 输出到已有 `clearance_limit_point`。
3. fallback 使用同一 source_id 的 `ROLE_SECONDARY` 稳定 FID,不复用原 line FID。
4. fallback 写入 trace,状态追加 `QUANTIZATION_FALLBACK_POINT`。
5. 编码后立即 decode,并以 layer + feature.id 与计划输出逐项对账。
6. 任何未处理的 encoder 丢失都会写失败报告并终止构建,不允许静默 PASS。
## 预期 Gate
本 AOI 应得到:
- 21 reports
- planned output = actual output
- quantization fallback = 1
- encoder dropped = 0
- hard-gate unmapped = 0
- style contract unmatched = 0
`quantization fallback = 1` 是预期安全回退,不是失败。

View File

@@ -0,0 +1,52 @@
# CM95 PBF Production v1.4.3 离线自检报告 v1
## 结论
离线自检:PASS。
## 检查项
1. Python 静态编译
- 18 个 `.py` 文件全部 `py_compile` PASS。
2. Mapping → Style/Sprite Contract
- Rules:81
- Style source layers:37
- Sprite keys:476
- Layer failures:0
- Sprite failures:0
- OVERALL:PASS
3. Global Mapping Gap 分类收口
- Observed gap variants:141
- Unclassified:0
- New delivery mapping:1(FSHHAV AREA)
- Pending semantic review:112 variants / 52,828 rows
- FSHHAV AREA hard-gate:PASS
- Delivery change contract:PASS,仅 `FSHHAV`
- 分类收口 OVERALL:PASS
- Semantic completeness:PENDING_REVIEW
4. 量化预检合成测试
- 亚像素短 Line:判定不可绘制
- 正常 Line:判定可绘制
- 亚像素 Polygon:判定不可绘制
- 正常 Polygon:判定可绘制
- 结果符合预期。
5. Release migration 合成测试
- 3 个模拟任务:
- 1 个旧 PASS 且不受 changed class 影响 → 成功复用
- 1 个旧 PASS 但 report 含 FSHHAV → 新 release 留 PENDING
- 1 个旧 FAILED → 新 release 留 PENDING
- 新 ledger:PASS=1 / PENDING=2 / attempts=0
- 结果符合预期。
## 未在离线环境执行
- 未连接用户 MySQL Dataset-1;
- 未实际迁移 19,913 张旧 PASS;
- 未实际重建 202 张失败 tile;
- 未执行用户环境最终 `finalize-production`。
以上必须按《替换与执行说明.md》在用户 Windows 11 / 项目环境中完成。

View File

@@ -0,0 +1,97 @@
> 注意:本文件记录 v1.4 初版。生产范围已在 v1.4.1 改为 z0–z12;以 `CM95_PBF生产化阶段_v1_4_1.md` 为准。
# CM95 PBF 生产化阶段 v1.4(历史:z10–z12 初版)
## 1. 基线
本版本以已经通过 21 张 AOI 双 Gate 的 v1.3 为冻结内核。以下行为不得在本阶段随意改变:
- `cm95_to_navsea_v1.yaml` 语义映射;
- z10/z11/z12 extent;
- scale ladder / coverage mask;
- relation20 助航合成;
- `OBJNAM/NOBJNM` 直接名称规则;
- stable FID manifest;
- hard-gate quantization fallback;
- encoder 写后 Feature ID 对账。
v1.4 只增加生产编排层。
## 2. 新增生产闭环
### `plan-production`
从 MySQL 只读读取 `chart_cell` 与 `chart_coverage`,按当前 tile policy 中每个 zoom 的 scale ladder 枚举真实需要的 tile。
优先使用真实 coverage polygon;若某 Cell 没有 coverage,则使用 Cell bbox 作为保守 fallback,避免漏图。
生产计划冻结:
- Dataset fingerprint;
- mapping SHA256;
- tile policy SHA256;
- FID manifest fingerprint/count;
- profile;
- zoom;
- 完整 XYZ job 列表。
任何输入在计划创建后变化,`build-production` 必须拒绝继续。
### `build-production`
- SQLite 账本;
- PASS 自动跳过;
- 上次异常中断的 RUNNING 自动恢复 PENDING;
- FAILED 最多重试指定次数;
- 有限线程并发;
- 每个 tile 继续使用 v1.3 builder 自带 hard-gate 与 encoder 对账;
- 空 tile 允许 PASS,但不写 `.pbf`。
### `finalize-production`
发布前重新读取所有 report 与真实 PBF,要求:
- 所有计划 job = PASS;
- hard-gate unmapped = 0;
- encoder dropped = 0;
- nav name conflict = 0;
- planned output = report output = decoded PBF feature count;
- tile 内同 layer Feature ID 无重复。
同时执行全量 style filter 契约与动态 sprite closure,并生成每个 PBF 的 SHA256/bytes/feature/layer inventory。
## 3. 产物结构
```text
build/
production/
cm95_production_plan_v1.json
releases/
<release_id>/
production_run_v1.sqlite
production_run_summary_v1.json
release_manifest_v1.json
pbf/
delivery/
{z}/{x}/{y}.pbf
reports/
delivery/
{z}/{x}/{y}.json
{z}/{x}/{y}.trace.jsonl
```
`release_id` 由 Dataset fingerprint + plan hash 确定,相同输入得到相同 release identity。
## 4. 当前阶段不做
- 不选择 HTTP/Nginx/FastAPI serving;
- 不改变 NavSea 客户端;
- 不改 importer/schema;
- 不增加新正式 source-layer;
- 不改变 v1.3 safety semantics;
- 不自动清理旧 release。
Serving 在完整 Dataset production release PASS 后再单独决定。

View File

@@ -0,0 +1,56 @@
# CM95 PBF 生产化阶段 v1.4.1:z0–z12
## 1. 决策
生产目标固定为 **XYZ z0–z12**。
此前 z10–z12 是 Pilot AOI 验证范围,只用于验证 CM95→NavSea MVT 的语义、extent、FID、助航合成、hard-gate 与 style contract,不是生产发布范围。
v1.4.1 不改变 v1.3 已冻结内核,只扩展生产 tile policy 与生产计划 Gate。
## 2. Scale ladder
按当前 Dataset 已确认的 CM95 native scale 层级:
| Zoom | 优先比例尺及 fallback |
|---|---|
| z0–z4 | 1:20M |
| z5–z7 | 1:3M → 1:20M |
| z8–z9 | 1:1M → 1:3M → 1:20M |
| z10 | 1:200k → 1:1M → 1:3M → 1:20M |
| z11 | 1:50k → 1:100k → 1:200k → 1:1M → 1:3M → 1:20M |
| z12 | 1:20k → 1:50k → 1:100k → 1:200k → 1:1M → 1:3M → 1:20M |
每级只向更粗比例尺 fallback。具体空间覆盖仍由 `chart_coverage` 控制,coverage 缺失时才使用 Cell bbox 保守兜底。
## 3. Extent
- z0–z11:4096;
- z12:1048576,保持 Pilot 与当前 NavSea/NEWPEC 已验证契约。
## 4. Plan Gate
`plan-production --zooms 0-12` 必须创建完整 13 个 zoom 的不可变计划。
计划审计默认要求:
- planned zoom = 0..12;
- 每一级至少存在一个真实 tile job;
- duplicate job = 0;
- invalid XYZ = 0;
- `source_stats.tile_count` 与实际 job 数一致。
在完整 tile 数量未审查前,不启动 production build。
## 5. 冻结边界
以下内容仍保持 v1.3:
- CM95→NavSea mapping;
- relation20 助航合成;
- OBJNAM/NOBJNM 名称规则;
- FID manifest;
- hard-gate quantization fallback;
- encoder 写后 Feature ID 对账;
- release PBF 属性 allowlist;
- style/sprite contract Gate。

View File

@@ -0,0 +1,28 @@
# CM95 PBF 生产化阶段 v1.4.2
## 结论
v1.4.1 的计划枚举把 `scale_ladders` 中所有粗比例尺 coverage 都用于高 zoom tile 枚举,导致 z10/z11/z12 接近连续 4 倍膨胀:66,848 / 265,706 / 1,056,589。该计划仅结构合法,不具备生产合理性,必须作废。
## v1.4.2 修正
新增 `enumeration_scales`:
- 决定哪些 coverage 有资格创建物理 tile;
- 与 `scale_ladders` 完全分离;
- 粗比例尺 fallback 只能在已创建 tile 内参与数据选择,不能扩张高 zoom footprint。
默认 materialization:
- z0-z4: 1:20M
- z5-z7: 1:3M
- z8-z9: 1:1M
- z10: 1:200k
- z11: 1:50k + 1:100k
- z12: 1:20k + 1:50k
原 `scale_ladders` 保持不变,因此 Pilot 已验证的 tile 内回退语义不变。
## 当前动作
只重新生成 z0-z12 production plan 并审计 tile 数量。未审查新数量前不得执行 `build-production`。

View File

@@ -0,0 +1,146 @@
# CM95 PBF Production v1.4.3:生产收口与失败恢复
## 1. 背景
v1.4.2 首轮 Dataset-1 / z0–z12 production:
- 计划任务:20,115
- PASS:19,913
- FAILED:202
- FAILED 分类:
- MVT encoder dropped:171 tile
- hard-gate unmapped:31 tile
- hard-gate 缺口全部为 `FSHHAV AREA`,共 51 条源 Feature,失败报告中累计命中 73 次 tile-local 记录。
Encoder dropped 主要分布:
- `depth_contour`:313
- `baseline_line`:85
- `seabed_line`:9
- `baseline_area`:5
- `navigation_hazard_area`:1
- `navigation_hazard_outline`:1
全 Dataset Mapping Gap 审计还发现:
- source variants:191
- gap variants:141
- gap object classes:117
- gap feature rows:81,443
- no exact rule rows:52,879
- explicit/status gap rows:28,564
- inherited hard-gate rows:51(全部 `FSHHAV AREA`)
因此 v1.4.3 不允许把 5 万多条未知语义对象粗暴映射到错误 NavSea 图层。
## 2. v1.4.3 决策
### 2.1 FSHHAV AREA 正式进入 delivery
`FSHHAV` Dictionary 含义为 Fish haven。
Dataset-1 实际出现 AREA variant,现映射为:
- main:`anchor_caution_hazard_area`
- outline:`anchor_caution_hazard_outline`
- point-on-surface:`anchor_caution_hazard_point`
- canonical:`fish_reef`
- safety:`hard_gate`
- icon:`reef_fish`
- fill:`pattern_fill_fish_reef`
AREA、outline、point-on-surface 三者都是同一源对象的不同渲染产物;不得把 AREA 静默降为 unmapped。
### 2.2 全量 gap 显式分类,但不伪造语义
新增:
`config/mappings/cm95_gap_disposition_v1.yaml`
141 个已观察 gap variant 全部有明确 disposition:
- 1 variant / 51 rows:`DELIVERY_MAPPED_V1_4_3`(FSHHAV AREA)
- 28 variants / 28,564 rows:已有显式非 delivery mapping/status
- 112 variants / 52,828 rows:`ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW`
后者不是“已经完成映射”,而是明确的语义 backlog;正式后续阶段必须按对象类别逐组审查,不得 generic 映射冒充正确航海语义。
## 3. MVT 量化策略
v1.3 只保护了 `clearance_limit_line` 的单一退化场景。v1.4.3 改为统一编码前预量化:
1. 使用当前 tile `quantize_bounds + extent` 计算整数坐标;
2. Line 必须至少有两个不同量化坐标;
3. Polygon exterior 必须至少有三个不同量化点且量化面积非零;
4. 不满足条件的 tile-local 几何,不再送入 encoder。
处理分两类:
### 3.1 对象存在性必须保留
以下图层退化时转换到现有 point layer:
- `clearance_limit_line` → `clearance_limit_point`
- `navigation_hazard_area/outline` → `navigation_hazard_point`
- `anchor_caution_hazard_area/outline` → `anchor_caution_hazard_point`
报告记入 `quantization_fallbacks`。
### 3.2 线性参考/普通面片
例如:
- `depth_contour`
- `baseline_line`
- `seabed_line`
- `baseline_area`
若当前 tile 内量化后已经没有可绘制二维/一维形状,则明确记入 `quantization_omissions` 后省略当前 tile-local 片段。
这不等于删除源对象;源对象、FID identity 和其它 tile/zoom 中可绘制片段不变。禁止把等深线等线性语义伪造成点。
Encoder 后仍做真实二进制 decode 对账;`encoder_dropped_features` 必须继续为 0。
## 4. Release 迁移
v1.4.3 mapping SHA 与 v1.4.2 不同,因此旧 plan 不得继续运行。
新增:
`cm95pbf migrate-production-release`
流程:
1. 用 v1.4.3 mapping 创建新 plan / 新 release_id;
2. 读取旧 release ledger;
3. 仅复用旧 `PASS`;
4. 旧 FAILED/PENDING/RUNNING 一律在新 ledger 中重新 PENDING;
5. 若旧 PASS report 命中新 mapping 声明的 `delivery_output_changed_object_classes`,也不复用;
6. 旧 PASS 必须同时满足:
- hard_gate_unmapped = 0
- encoder_dropped_features = 0
- planned == output
- PBF/report 文件完整
7. 通过的 PBF/report 默认用 hardlink 复用,失败则自动 copy fallback。
v1.4.3 的 delivery output changed class 只有:
`FSHHAV`
因为旧版所有出现 FSHHAV AREA 的 tile 都已被 hard-gate 阻断,正常预期是复用约 19,913 PASS,只重建约 202 tile。
## 5. Release 状态语义
`finalize-production` 现在同时输出:
- production integrity `status`
- `semantic_completeness`
- `semantic_backlog`
- `quantization_fallbacks`
- `quantization_omissions`
v1.4.3 即使 production integrity PASS,只要 112 个 pending semantic variant 尚未处理:
`semantic_completeness = PENDING_REVIEW`
因此不得把 v1.4.3 称为“全国 CM95 语义全部完成”;它是生产生成链/失败恢复/安全硬门收口版。

View File

@@ -0,0 +1,66 @@
# CM95 PBF 生产化阶段 v1.4.4
## 状态
目标:解决 v1.4.3 全量 production 重建后剩余 45 个 `MVT encoder dropped features`。
v1.4.3 实测:
- jobs: 20,115
- PASS: 20,070
- FAILED: 45
- FSHHAV hard-gate: 已解决
- 剩余失败:全部 encoder drop
## 根因
v1.4.3 的 MVT 编码前预量化检查只能近似模拟 mapbox-vector-tile 的实际 geometry clean-up。
实际 encoder 内部仍可能把部分 line/polygon 清理为空,因此第一遍 encode/decode 仍发现 planned ID 缺失。
## 修复
采用两阶段真实 encoder reconciliation:
1. encode + decode;
2. 比较 planned IDs 与 actual IDs;
3. 对 dropped ID:
- 普通几何:显式 quantization omission;
- safety-preserving layer:point fallback;
4. 重建 planned set;
5. 重新 encode + decode;
6. 最终仍不一致则 fail-closed。
不会把 depth contour / baseline line 等普通线性对象伪造成 hazard point。
## Production plan 完整性修复
`builder_contract_version` 现在属于 immutable plan 内容,因此 builder 输出语义改变时 Plan ID / Release ID 会改变。
v1.4.4:
`cm95pbf-builder/0.4.4-encoder-reconcile`
这防止同一个 release 目录混用不同 encoder reconciliation 逻辑。
## Release Gate
允许:
- quantization omissions
- safety point fallbacks
- encoder probe candidates
禁止:
- final encoder_dropped_features
- hard_gate_unmapped
- planned/report/decode count mismatch
- unexpected encoder output IDs
## 恢复策略
从 v1.4.3 release 迁移:
`cm95-d1-bfa67dd5625f-289c62fbf758`
预期复用 20,070 PASS,只重建 45 FAILED。

View File

@@ -0,0 +1,42 @@
# CM95 PBF 生产化阶段 v1.4.5
## 目标
收口 v1.4.4 finalize-production 唯一剩余的 Style contract unmatched:18 个没有任何可渲染文本内容的 label-only Feature。
## 事实基线
- production jobs: 20115 / PASS 20115
- PBF: 19751
- planned/decoded features: 787902 / 787902
- sprite missing: 0
- style contract unmatched: 18
- place_label_land / built_up_place: 9
- seabed_text_point / seabed_material: 9
- 18 个 tile-local Feature 分布于 16 个 tile。
## 修复
1. Builder contract 升级为 `cm95pbf-builder/0.4.5-nonrenderable-label-omit`。
2. delivery 编码前增加 label renderability gate:
- `place_label_land` 必须至少有非空 `place_name_en` 或 `chart_label_text`;
- `seabed_text_point` 必须有非空 `chart_label_text`。
3. 不满足时不进入 PBF,写入 `non_renderable_omissions`;trace 标记 `delivery_omitted=true`。
4. 不修改 mapping/style/sprite/FID/geometry/quantization。
5. migration 增加 `--invalidate-tiles-file`,只强制重建实际受 builder contract 变化影响的 tile。
6. 修正 migration trace 文件扩展名为实际 `.trace.jsonl`。
## 预期结果
- 新 release jobs 20115
- migrate reuse 20099
- PENDING 16
- 16 tile 重建 PASS
- planned/decoded feature count 预计从 787902 降到 787884
- `non_renderable_omissions = 18`
- `style_sprite_contract.overall = PASS`
- `contract_unmatched_count = 0`
- `sprite_missing_count = 0`
- finalize-production `status = PASS`
语义 backlog `112 variants / 52828 rows` 仍维持 `PENDING_REVIEW`,不在本版本伪装为完成。

View File

@@ -0,0 +1,116 @@
# CM95 PBF 生产化阶段 v1.4.6
## 目标
v1.4.6 是 **纯生产查询性能修复**。不改变 NavSea delivery 语义、FID、mapping、Style、Sprite、量化、encoder reconcile、non-renderable omission 或 Japan z12 G=1:7,500 policy。
## 已确认根因
正确 Japan Dataset 1(1492 cells / 1,282,431 source features)在 z11 高密度生产时,v1.4.5 的 `_fetch_scale_features()` 使用:
```sql
FROM chart_feature f
JOIN chart_cell c ...
JOIN chart_area_geometry g ...
WHERE f.dataset_id=?
AND f.native_scale=?
AND f.geometry_type='AREA'
AND four numeric bbox predicates
ORDER BY c.source_relative_path, f.source_record_index
```
代表性 tile EXPLAIN:
- `chart_feature` 驱动;
- `key=idx_feature_class`;
- `rows≈611,396`;
- `Using temporary; Using filesort`。
同一 tile 改为 geometry spatial-first 后:
- `chart_area_geometry` 驱动;
- `type=range`;
- `key=spx_area_geom`;
- `rows≈38`;
- `chart_feature` 通过 PRIMARY KEY `eq_ref` 回表。
## v1.4.6 修改
### POINT / LINE / AREA
分别使用现有 MySQL 5.7 SPATIAL INDEX:
- `chart_point_geometry.spx_point_geom`
- `chart_line_geometry.spx_line_geom`
- `chart_area_geometry.spx_area_geom`
查询结构改为:
1. geometry table `FORCE INDEX(spx_*)`;
2. `STRAIGHT_JOIN chart_feature`,防止 MySQL 5.7 重新选择 `chart_feature` 为驱动表;
3. `MBRIntersects(g.geom, tile envelope)` 做 R-tree candidate lookup;
4. 保留 v1.4.5 四个 `f.bbox_*` 条件作为第二道候选一致性 gate;
5. 继续通过 `chart_feature` PRIMARY KEY 读取属性;
6. 不增加/修改 importer schema。
### Deterministic ordering
v1.4.5 的 SQL `ORDER BY c.source_relative_path, f.source_record_index` 会对包含 JSON/WKB 的结果触发大量 disk temporary/filesort。
v1.4.6 删除 SQL ORDER BY,改为 Python 排序,同时保留原有顺序语义:
- 外层仍固定 `POINT → LINE → AREA`;
- 每一种 geometry 内按 `(source_relative_path, source_record_index)` 排序;
- sounding 按 `(source_relative_path, source_record_index, point_index)` 排序。
### SOUNDING
`chart_sounding_point` 同样显式:
- `FORCE INDEX(spx_sounding_geom)`;
- `STRAIGHT_JOIN chart_feature`;
- 保持原 `MBRContains(tile envelope, s.geom)` 语义不变;
- 排序移到 Python。
## 不变项
- Dataset / importer / MySQL schema:不变;
- `cm95_to_navsea_v1.yaml`:不变;
- FID identity contract:不变;
- delivery source-layer contract:不变;
- encoder reconcile:不变;
- non-renderable label omission:不变;
- Japan gap disposition:不变;
- Japan z12 G=1:7,500 policy:不变;
- z0-z12 extent:不变。
## Builder contract
- project: `0.4.6`
- runtime: `0.4.6-production-spatial-candidate-query`
- builder: `cm95pbf-builder/0.4.6-spatial-candidate-query`
Builder contract 参与 production plan hash,因此必须创建新的 plan / release ID。不得用 v1.4.5 plan 直接继续 v1.4.6 build。
## 验收
正式 build 前执行:
```powershell
& ".\.venv\Scripts\python.exe" .\tools\cm95_v1_4_6_preflight.py
& ".\.venv\Scripts\python.exe" .\tools\cm95_v1_4_6_query_equivalence.py `
--dataset-id 1
```
query equivalence 必须满足:
- POINT old IDs == new IDs;
- LINE old IDs == new IDs;
- AREA old IDs == new IDs;
- SOUNDING old IDs == new IDs;
- new query geometry table 为第一驱动表;
- `type=range`;
- 使用对应 `spx_*` index。
最终 release 仍允许 `semantic_completeness=PENDING_REVIEW`,但 technical final status 必须 PASS。

View File

@@ -0,0 +1,47 @@
# CM95 助航名称规则冻结 v1
## 结论
基于 Dataset ID=1、z10/914/385 AOI 的 1:20,000 / 1:50,000 / 1:200,000 多尺度审计,冻结以下规则:
1. `navigation_marks.chart_label_text` 只允许来自助航组件自身的 `OBJNAM` 或 `NOBJNM`。
2. `_texto._texta.text` 不参与自动助航名称关联。
3. 不使用“最近文字”“同 Cell 最近文字”“距离阈值”生成助航名称。
4. 不从 NEWPEC / reference PBF 反向灌入名称。
5. relation20 仍只负责同 Cell 助航组件合成,不用于关联 `_texto`。
6. 合成组中:
- 基体存在直接名称时,基体名称优先;
- 否则只有一个唯一 LIGHTS 直接名称时使用该名称;
- 若多个 LIGHTS 提供不同直接名称,则 delivery 留空,engineering trace 记录 `nav_name_conflict=true` 与所有候选。
7. standalone LIGHTS 同样只使用自身 `OBJNAM/NOBJNM`。
## 审计事实
- 共 136 个助航组。
- 1:20,000:62 组,7 组带直接名称。
- 1:50,000:57 组,0 组带直接名称。
- 1:200,000:17 组,0 组带直接名称。
- 三个比例尺 `explicit_text_candidates = 0`。
- `_texto` 中没有可用于显式关联的 relation/index 字段。
- 1:20,000 的 7 个直接名称均来自 `LIGHTS.OBJNAM`,值为:
`L2 / R1 / L1 / C1 / C1 / C2 / R2`。
这些值属于 CM95 源对象自身字段,因此可以保留;但它们不能被解释成 NEWPEC 的日文灯塔名,也不能作为距离文字关联的依据。
## 生成器实现要求
- `OBJNAM` 优先,`NOBJNM` fallback。
- 不引入 `_texto` proximity lookup。
- engineering report 统计:
- `named_from_direct_source`
- `name_conflict_groups`
- engineering trace 记录:
- `nav_name_source`
- `nav_name_candidates`
- `nav_name_conflict`
## 状态
名称调查:CLOSED / PASS
本规则不阻塞 PBF-03 后续 21 张 z10-z12 批量生成。

View File

@@ -0,0 +1,389 @@
# CM95 → NavSea PBF 映射设计报告 v1
日期:2026-09-03
状态:`PBF-02 / IMPLEMENTATION_DRAFT`
测试 AOI:`z10/914/385`
## 1. 本轮输入
CM95 MySQL AOI 审计:
```text
AOI Cells : 7
AOI Spatial Features : 3605
Object class/geom groups : 80
Attribute groups : 177
Feature samples : 600
```
现有 NavSea/NEWPEC 对照 PBF:
```text
z10 tiles : 1
z11 tiles : 4
z12 tiles : 16
total : 21
observed source-layers : 37
```
实际 extent:
```text
z10 : 4096
z11 : 4096
z12 : 1048576
```
因此 CM95 generator 不应把“所有 zoom 固定 extent=4096”当成既有生产事实。首版 generator 必须把 extent 作为显式策略,并在输出审计中记录实际值。
## 2. CM95 AOI 主要对象
当前 AOI 具备完整的安全对象闭环:
```text
WRECKS POINT : 480
DEPCNT LINE : 451
DEPARE AREA : 414
SBDARE POINT : 287
SLCONS LINE : 209
UWTROC POINT : 176
COALNE LINE : 171
LNDARE AREA : 159
SLCONS AREA : 119
LIGHTS POINT : 96
OBSTRN AREA : 70
ITDARE AREA : 69
```
同时存在 Beacon/Buoy、Bridge、overhead cable、submarine cable、pilot boarding、anchorage 等对象,可覆盖第一阶段 hard-gate。
## 3. 现有 NavSea PBF 实际契约
当前 21 张参考 PBF 中最主要的 source-layer:
```text
onshore_structure_line 12940
baseline_outline 2129
baseline_area 1146
bathymetry_line 1128
anchor_caution_hazard_point 897
depth_contour 821
hole_area 563
land_area 321
seabed_text_point 273
baseline_line 234
anchor_caution_hazard_area 172
anchor_caution_hazard_outline 172
onshore_structure_area 137
place_label_land 136
onshore_structure_point 124
```
当前 unified style 实际消费 37 个 NavSea source-layer。
参考 PBF 与 style 之间存在少量“PBF 有但当前 style 不消费”的历史层:
```text
depth_contour_overview
route_area
route_outline
```
因此 CM95 v1 不因为参考 PBF 中存在 `route_area` 就自动输出它。
例如 `FAIRWY` 首版保留在工程版,避免违反“只改 tile URL 即可使用当前 style”的目标。
## 4. 第一版映射覆盖
`cm95_to_navsea_v1.yaml` 已覆盖本 AOI 全部 80 个 `object_class + geometry_type` 组合。
映射状态(按组合数):
```text
MAPPED 33
ENGINEERING_ONLY 12
MAPPED_CONDITIONAL 11
REVIEW_STYLE_GAP 11
COMPOSITE 5
REVIEW_CONDITIONAL 4
ENGINEERING_COMPONENT 1
UNMAPPED_REVIEW 1
DERIVED_LABEL_ONLY 1
MAPPED_DERIVED_POINTS 1
```
可以直接进入映射/合成实现的 Feature 数:
```text
3239 / 3605 = 89.8%
```
其余对象没有静默丢弃,全部明确进入:
```text
REVIEW_CONDITIONAL
REVIEW_STYLE_GAP
ENGINEERING_ONLY
ENGINEERING_COMPONENT
UNMAPPED_REVIEW
```
正式 delivery 不会因为未映射而“假装成功”。
## 5. Hard-gate 映射
### DEPARE
```text
DEPARE AREA
→ baseline_area
→ DRVAL1 / DRVAL2
→ canonical depth range
→ chart_fill_style=depth_zone_*
```
原 polygon 不重建。
### DEPCNT
```text
DEPCNT LINE
→ depth_contour
VALDCO → least_depth_m
VALDCO → chart_label_text
```
### WRECKS
```text
WRECKS POINT
→ navigation_hazard_point
VALSOU present → wreck_surveyed
otherwise → wreck_submerged_dangerous
```
Area wreck 保持 area,不降级为 point,并额外派生 boundary 到 `navigation_hazard_outline`。
### UWTROC
```text
UWTROC POINT
→ navigation_hazard_point
WATLEV submerged → rock_submerged
WATLEV awash/drying → rock_awash
VALSOU → least_depth_m
```
必须保留水上/水下语义。
### OBSTRN
Point 与 Area 分开:
```text
POINT → navigation_hazard_point
AREA → navigation_hazard_area + derived outline
```
### FSHHAV
```text
FSHHAV POINT
→ anchor_caution_hazard_point
→ reef_fish
```
### BRIDGE / CBLOHD / TELPHC / PIPOHD
净空/架空安全对象使用现有:
```text
bridge_structure
clearance_limit_line
clearance_limit_point
```
存在 `VERCLR` 时才写净空数值;没有值时不伪造。
## 6. 助航对象必须合成,而不是简单逐对象输出
本轮最重要的新结论是:
CM93 中:
```text
LIGHTS
BCNLAT
BCNSPP
BOYSPP
RTPBCN
TOWERS
_extgn
```
可能是同一个现实助航标的多个对象组件。
AOI 样本已经观察到共享:
```text
cell_id + attributes._cm93_relation20_raw
```
并且共享 relation20 的样本坐标完全一致。
样本证据包括:
- cell `693` relation20 `2273` → `BCNLAT, LIGHTS`;坐标组数 `1`
- cell `693` relation20 `2272` → `BCNLAT, LIGHTS`;坐标组数 `1`
- cell `693` relation20 `2254` → `BCNLAT, LIGHTS`;坐标组数 `1`
- cell `693` relation20 `2266` → `LIGHTS, _extgn`;坐标组数 `1`
- cell `693` relation20 `2270` → `LIGHTS, _extgn`;坐标组数 `1`
- cell `693` relation20 `2276` → `LIGHTS, _extgn`;坐标组数 `1`
- cell `693` relation20 `2239` → `LIGHTS, TOWERS`;坐标组数 `1`
- cell `693` relation20 `2241` → `LIGHTS, TOWERS`;坐标组数 `1`
因此 CM95 PBF Adapter 第一版采用:
```text
primary composition key =
cell_id
+ _cm93_relation20_raw
```
而不是仅凭经纬度 proximity 合并。
规则:
1. relation20 相同且坐标一致 → 合成一个 `navigation_marks` Feature;
2. LIGHTS 的灯色、灯质、周期、高度、射程、扇区等属性并入基体;
3. Beacon/Buoy/Tower 提供主体 symbol 语义;
4. `_extgn` 只作为组件/trace,不单独 delivery;
5. relation20 缺失时才允许进入 fallback;
6. fallback 必须被审计标记,不能静默按邻近点合并。
在真正写 generator 前,需要用全 AOI 数据验证 relation20,而不是只依赖 600 条采样记录。
本包已经提供:
```text
tools/cm95_nav_aid_relation_audit_v1.py
```
## 7. Light 字段
本 AOI 实际出现的 CM93/S-57 `COLOUR` 值:
```text
1 → white
3 → red
4 → green
6 → yellow
```
首版只对当前实际出现值建立冻结映射;其它值先进入 mapping gap,不猜值。
`LIGHTS` 输出至少包括:
```text
light_color_code
chart_label_text
chart_label_subtext
chart_text_style
chart_text_color
light_sector_mode
chart_icon_image
```
灯略记由:
```text
LITCHR
SIGGRP
SIGPER
COLOUR
HEIGHT
VALNMR
```
组合生成。
## 8. Sounding
当前 AOI 有 `SOUNDG` Feature,并由 `chart_sounding_point` 保存多个真实 sounding points。
因为当前 style 没有独立 `sounding_point` source-layer,v1 采用:
```text
chart_sounding_point
→ derived point label
→ seabed_text_point
```
这是额外 render artifact,不修改/替换数据库里的原 sounding。
## 9. Stable identity
禁止把:
```text
chart_feature.id
```
当成长期 PBF identity。
v1 冻结 source identity:
```text
cm95:
dataset_id
+ source_relative_path
+ source_record_index
+ geometry_role
```
下一阶段 generator 会在此基础上建立稳定 FID manifest,再接现有 NavSea numeric feature-id 体系。
## 10. 当前尚未正式进入 delivery 的内容
主要包括:
```text
_texto 文本归属 land/sea/facility 尚需关联判断
BUISGL POINT 当前 style 表达不明确
行政边界类 当前 style 不需要
FAIRWY 参考 PBF 有 route_area,但当前 unified style 不消费
若干一般陆上点对象 不属于 hard-gate,后续补 symbol 映射
```
这些对象全部保留在工程 trace / `cm95_unmapped`,没有删除。
## 11. 下一步门禁
先执行 relation20 全 AOI 审计。
通过条件:
```text
LIGHTS relation20 可覆盖主要灯标
relation group 不出现明显坐标冲突
跨 Cell 不发生错误合并
无法合并的 LIGHTS 数量明确
```
通过后进入:
```text
PBF-03
CM95 MySQL → z10/914/385 单 tile generator
```
第一版 generator 将只实现当前已经冻结的映射,并同时输出:
```text
delivery PBF
engineering PBF / trace
cm95_unmapped report
FID audit
sprite closure audit
object preservation audit
```

View File

@@ -0,0 +1,35 @@
# PBF-03 离线自检报告 v1
状态:`PASS / WAITING FOR USER MYSQL + WINDOWS MVT BUILD`
## 已检查
- 当前仓库 `pyproject.toml` 基线已读取并按完整文件方式更新。
- `requirements.txt` 已同步新增 `PyYAML` 与 `mapbox-vector-tile`。
- 新增包:`src/cm95pbf/`,不修改 `src/cm93db/` importer/geometry。
- Mapping:80 条 `object_class + geometry_type` 规则,无重复 key。
- 当前 NavSea style:37 个 `source-layer`。
- 当前 semantic sprite:476 个 key。
- Mapping contract:layer failure = 0,sprite failure = 0。
- AOI:`z10/914/385`。
- Tile math:WGS84 bbox 与前置 AOI 审计一致。
- 子瓦片:z11 = 4 张,z12 = 16 张。
- relation20:96 LIGHTS 中 94 可安全关联,坐标冲突 0,2 条独立 LIGHTS。
- Python 静态编译:`src/cm95pbf/*.py` 与 `tools/*.py` PASS。
## 生成器原则
- MySQL 只读。
- 不使用 `chart_feature.id` 作为外部稳定 MVT id。
- 使用 Dataset FID manifest。
- Coverage 决定同一 tile 内的比例尺优先级和回退区域。
- Engineering 版保留 trace;Delivery 版按当前 NavSea delivery allowlist 裁字段。
- 无安全映射对象不进入正式 delivery,engineering 进入 `cm95_unmapped`。
- 扇区灯第一轮不伪造 `arc_id`;待与实际生成结果和现有 PBF 做专项闭合。
## 尚需用户环境验证
- MySQL 实际查询与 Coverage 回退。
- `mapbox-vector-tile` Windows 编码结果。
- 21 张 PBF 实际 decode/audit。
- 与现有 NavSea/NEWPEC 同 AOI 的 source-layer、hard-gate 和视觉对照。

View File

@@ -0,0 +1,34 @@
# PBF-03 Pilot Generator v1.1 离线自检报告
## 变更
v1.1 在已通过单 tile 二进制兼容性检查的 v1 基线上,只补充助航名称契约:
- 新增 `OBJNAM -> NOBJNM` fallback;
- 多灯组直接名称冲突不写入 delivery;
- engineering trace 记录名称来源/候选/冲突;
- build report 增加直接名称与名称冲突统计;
- `_texto` 距离候选仍完全不参与生成。
## 静态检查
- Python `py_compile`:PASS
- Mapping rules:80
- 助航名称 direct helper:PASS
- 当前 mapping 的 LIGHTS `chart_label_text`:`first_present(OBJNAM,NOBJNM)`
- 不修改 importer / geometry / schema。
- z10/z11/z12 extent policy 不变。
- build-sample-aoi 仍固定生成 1 + 4 + 16 = 21 张/每 profile。
## 运行时待验证
本环境没有用户 MySQL Dataset,因此以下由用户本机执行:
1. 重新安装 editable project;
2. 运行 `build-sample-aoi`;
3. 运行 delivery build report audit;
4. 上传 `sample_aoi_summary_v1.json` 与 `cm95_pbf_build_reports_audit_v1.json`。
## Gate
允许进入 21 张 Pilot 批量生成。

View File

@@ -0,0 +1,866 @@
{
"schema": "navsea.cm95.global-mapping-gap-closure-audit/v2",
"dataset_id": 1,
"observed_gap_variants": 141,
"unclassified_variants": [],
"newly_delivery_mapped": [
{
"object_class": "FSHHAV",
"geometry_type": "AREA",
"feature_count": 51,
"disposition": "DELIVERY_MAPPED_V1_4_3"
}
],
"existing_explicit_non_delivery": [
{
"object_class": "_texto",
"geometry_type": "POINT",
"feature_count": 13911,
"disposition": "EXISTING_REVIEW_CONDITIONAL"
},
{
"object_class": "$LINES",
"geometry_type": "LINE",
"feature_count": 2652,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "CTNARE",
"geometry_type": "AREA",
"feature_count": 2546,
"disposition": "EXISTING_REVIEW_CONDITIONAL"
},
{
"object_class": "CTNARE",
"geometry_type": "POINT",
"feature_count": 2262,
"disposition": "EXISTING_REVIEW_CONDITIONAL"
},
{
"object_class": "BUAARE",
"geometry_type": "AREA",
"feature_count": 2046,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "M_PROD",
"geometry_type": "AREA",
"feature_count": 784,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "$COMPS",
"geometry_type": "POINT",
"feature_count": 538,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "BUISGL",
"geometry_type": "POINT",
"feature_count": 516,
"disposition": "EXISTING_UNMAPPED_REVIEW"
},
{
"object_class": "_extgn",
"geometry_type": "POINT",
"feature_count": 462,
"disposition": "EXISTING_ENGINEERING_COMPONENT"
},
{
"object_class": "TNKCON",
"geometry_type": "POINT",
"feature_count": 426,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "$AREAS",
"geometry_type": "AREA",
"feature_count": 418,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "NATARE",
"geometry_type": "AREA",
"feature_count": 315,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "TESARE",
"geometry_type": "AREA",
"feature_count": 277,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "BUIREL",
"geometry_type": "POINT",
"feature_count": 246,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "HRBARE",
"geometry_type": "AREA",
"feature_count": 204,
"disposition": "EXISTING_REVIEW_CONDITIONAL"
},
{
"object_class": "CRANES",
"geometry_type": "POINT",
"feature_count": 167,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "FAIRWY",
"geometry_type": "AREA",
"feature_count": 157,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "CTRPNT",
"geometry_type": "POINT",
"feature_count": 151,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "PRDINS",
"geometry_type": "POINT",
"feature_count": 131,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "EXEZNE",
"geometry_type": "AREA",
"feature_count": 64,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "SILBUI",
"geometry_type": "POINT",
"feature_count": 60,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "SISTAW",
"geometry_type": "POINT",
"feature_count": 59,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "CONZNE",
"geometry_type": "AREA",
"feature_count": 47,
"disposition": "EXISTING_ENGINEERING_ONLY"
},
{
"object_class": "SISTAT",
"geometry_type": "POINT",
"feature_count": 43,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "PYLONS",
"geometry_type": "POINT",
"feature_count": 33,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "MONUMT",
"geometry_type": "POINT",
"feature_count": 20,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "AIRARE",
"geometry_type": "POINT",
"feature_count": 16,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
},
{
"object_class": "RSCSTA",
"geometry_type": "POINT",
"feature_count": 13,
"disposition": "EXISTING_REVIEW_STYLE_GAP"
}
],
"pending_semantic_review": [
{
"object_class": "RIVERS",
"geometry_type": "LINE",
"feature_count": 17606,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SLOTOP",
"geometry_type": "LINE",
"feature_count": 7572,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LNDELV",
"geometry_type": "POINT",
"feature_count": 5441,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SLOGRD",
"geometry_type": "AREA",
"feature_count": 5181,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LNDRGN",
"geometry_type": "AREA",
"feature_count": 3041,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TOPMAR",
"geometry_type": "POINT",
"feature_count": 1572,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ROADPT",
"geometry_type": "LINE",
"feature_count": 1408,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WEDKLP",
"geometry_type": "POINT",
"feature_count": 1288,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "VEGARE",
"geometry_type": "AREA",
"feature_count": 881,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RECTRC",
"geometry_type": "LINE",
"feature_count": 807,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BOYLAT",
"geometry_type": "POINT",
"feature_count": 762,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RESARE",
"geometry_type": "AREA",
"feature_count": 671,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RAILWY",
"geometry_type": "LINE",
"feature_count": 477,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WATTUR",
"geometry_type": "POINT",
"feature_count": 474,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ACHBRT",
"geometry_type": "POINT",
"feature_count": 408,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "NAVLNE",
"geometry_type": "LINE",
"feature_count": 399,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSSLPT",
"geometry_type": "AREA",
"feature_count": 337,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BRTFAC",
"geometry_type": "LINE",
"feature_count": 311,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RADRFL",
"geometry_type": "POINT",
"feature_count": 280,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LOCMAG",
"geometry_type": "AREA",
"feature_count": 264,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "MARCUL",
"geometry_type": "AREA",
"feature_count": 234,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSSBND",
"geometry_type": "LINE",
"feature_count": 233,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BOYCAR",
"geometry_type": "POINT",
"feature_count": 217,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RDOSTA",
"geometry_type": "POINT",
"feature_count": 206,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WATTUR",
"geometry_type": "AREA",
"feature_count": 172,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FOGSIG",
"geometry_type": "POINT",
"feature_count": 150,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSEZNE",
"geometry_type": "AREA",
"feature_count": 145,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "STSLNE",
"geometry_type": "LINE",
"feature_count": 137,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ACHARE",
"geometry_type": "POINT",
"feature_count": 134,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BOYSAW",
"geometry_type": "POINT",
"feature_count": 114,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CANALS",
"geometry_type": "LINE",
"feature_count": 111,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CAUSWY",
"geometry_type": "LINE",
"feature_count": 99,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ICEARE",
"geometry_type": "AREA",
"feature_count": 97,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ROADPT",
"geometry_type": "AREA",
"feature_count": 95,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "PONTON",
"geometry_type": "AREA",
"feature_count": 91,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CANBNK",
"geometry_type": "LINE",
"feature_count": 81,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DMPGRD",
"geometry_type": "AREA",
"feature_count": 73,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RCRTCL",
"geometry_type": "LINE",
"feature_count": 70,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FSHFAC",
"geometry_type": "LINE",
"feature_count": 64,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WEDKLP",
"geometry_type": "AREA",
"feature_count": 56,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DAMCON",
"geometry_type": "AREA",
"feature_count": 53,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SPOGRD",
"geometry_type": "AREA",
"feature_count": 53,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LOCMAG",
"geometry_type": "POINT",
"feature_count": 52,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DYKCRW",
"geometry_type": "LINE",
"feature_count": 51,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WIMCON",
"geometry_type": "POINT",
"feature_count": 51,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "OFSPLF",
"geometry_type": "POINT",
"feature_count": 49,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "$TEXTS",
"geometry_type": "POINT",
"feature_count": 48,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "MSTCON",
"geometry_type": "POINT",
"feature_count": 48,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RDOCAL",
"geometry_type": "POINT",
"feature_count": 44,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BOYISD",
"geometry_type": "POINT",
"feature_count": 42,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSELNE",
"geometry_type": "LINE",
"feature_count": 41,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FLASTK",
"geometry_type": "POINT",
"feature_count": 39,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CANALS",
"geometry_type": "AREA",
"feature_count": 34,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SLTPAN",
"geometry_type": "AREA",
"feature_count": 32,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FLODOC",
"geometry_type": "AREA",
"feature_count": 28,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DRYDOC",
"geometry_type": "AREA",
"feature_count": 25,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "PRCARE",
"geometry_type": "AREA",
"feature_count": 22,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FSHFAC",
"geometry_type": "POINT",
"feature_count": 19,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RADSTA",
"geometry_type": "POINT",
"feature_count": 18,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSSRON",
"geometry_type": "AREA",
"feature_count": 17,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "MARCUL",
"geometry_type": "POINT",
"feature_count": 16,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DYKARE",
"geometry_type": "AREA",
"feature_count": 15,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DMPGRD",
"geometry_type": "POINT",
"feature_count": 14,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "GATCON",
"geometry_type": "LINE",
"feature_count": 14,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SLIPWY",
"geometry_type": "LINE",
"feature_count": 13,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SNDWAV",
"geometry_type": "POINT",
"feature_count": 13,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "GATCON",
"geometry_type": "AREA",
"feature_count": 12,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FNCLNE",
"geometry_type": "LINE",
"feature_count": 11,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LOGPON",
"geometry_type": "AREA",
"feature_count": 11,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "PIPARE",
"geometry_type": "AREA",
"feature_count": 11,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "PILBOP",
"geometry_type": "AREA",
"feature_count": 10,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BCNISD",
"geometry_type": "POINT",
"feature_count": 9,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CGUSTA",
"geometry_type": "POINT",
"feature_count": 9,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CRANES",
"geometry_type": "AREA",
"feature_count": 9,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WATFAL",
"geometry_type": "POINT",
"feature_count": 9,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BCNCAR",
"geometry_type": "POINT",
"feature_count": 8,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FSHFAC",
"geometry_type": "AREA",
"feature_count": 8,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BOYINB",
"geometry_type": "POINT",
"feature_count": 7,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DIFFUS",
"geometry_type": "AREA",
"feature_count": 7,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DSHAER",
"geometry_type": "POINT",
"feature_count": 6,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "OILBAR",
"geometry_type": "LINE",
"feature_count": 6,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "PYLONS",
"geometry_type": "AREA",
"feature_count": 6,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BUIREL",
"geometry_type": "AREA",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CBLARE",
"geometry_type": "AREA",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "HILARE",
"geometry_type": "AREA",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "HULKES",
"geometry_type": "AREA",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LITVES",
"geometry_type": "POINT",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "TSSCRS",
"geometry_type": "AREA",
"feature_count": 5,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "$CSYMB",
"geometry_type": "POINT",
"feature_count": 4,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ACHBRT",
"geometry_type": "AREA",
"feature_count": 4,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CEMTRY",
"geometry_type": "POINT",
"feature_count": 4,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "ACHPNT",
"geometry_type": "POINT",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CAUSWY",
"geometry_type": "AREA",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CEMTRY",
"geometry_type": "AREA",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DIFFUS",
"geometry_type": "POINT",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FLGSTF",
"geometry_type": "POINT",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "WATTUR",
"geometry_type": "LINE",
"feature_count": 3,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CHNWIR",
"geometry_type": "LINE",
"feature_count": 2,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "CTSARE",
"geometry_type": "AREA",
"feature_count": 2,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "OFSPRD",
"geometry_type": "AREA",
"feature_count": 2,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RMPARE",
"geometry_type": "AREA",
"feature_count": 2,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "AIRARE",
"geometry_type": "AREA",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "BCNSAW",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "DOCARE",
"geometry_type": "AREA",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FERYRT",
"geometry_type": "LINE",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FLODOC",
"geometry_type": "LINE",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "FSHGRD",
"geometry_type": "AREA",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "GATCON",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "LOGPON",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "RADDOM",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SPOGRD",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
},
{
"object_class": "SPRING",
"geometry_type": "POINT",
"feature_count": 1,
"disposition": "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
}
],
"pending_semantic_review_feature_rows": 52828,
"fshhav_area_hard_gate_mapping_ok": true,
"delivery_output_changed_object_classes": [
"FSHHAV"
],
"delivery_change_contract_ok": true,
"semantic_completeness": "PENDING_REVIEW",
"overall": "PASS"
}

View File

@@ -0,0 +1,12 @@
{
"mapping": "/mnt/data/cm95_pbf_pilot_generator_v1/config/mappings/cm95_to_navsea_v1.yaml",
"style": "/mnt/data/_pbf_sample/style.navsea-delivery-full-semantic-unified-20260808.json",
"sprite_json": "/mnt/data/_pbf_sample/semantic-sprite/sprite.json",
"style_source_layer_count": 37,
"sprite_key_count": 476,
"rule_count": 80,
"layer_failures": [],
"sprite_failures": [],
"failure_count": 0,
"overall": "PASS"
}

View File

@@ -0,0 +1,12 @@
{
"mapping": "/mnt/data/cm95_pbf_pilot_generator_v1_1/config/mappings/cm95_to_navsea_v1.yaml",
"style": "/mnt/data/navsea_contract_ref/style.navsea-delivery-full-semantic-unified-20260808.json",
"sprite_json": "/mnt/data/navsea_contract_ref/semantic-sprite/sprite.json",
"style_source_layer_count": 37,
"sprite_key_count": 476,
"rule_count": 80,
"layer_failures": [],
"sprite_failures": [],
"failure_count": 0,
"overall": "PASS"
}

View File

@@ -0,0 +1,12 @@
{
"mapping": "/mnt/data/cm95_pbf_production_v1_4_3/cm95_pbf_production_v1_4/config/mappings/cm95_to_navsea_v1.yaml",
"style": "/mnt/data/cm95_pbf_production_v1_4_3/cm95_pbf_production_v1_4/config/style/style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json",
"sprite_json": "/mnt/data/cm95_pbf_production_v1_4_3/cm95_pbf_production_v1_4/config/sprite/semantic-sprite-20260808.json",
"style_source_layer_count": 37,
"sprite_key_count": 476,
"rule_count": 81,
"layer_failures": [],
"sprite_failures": [],
"failure_count": 0,
"overall": "PASS"
}

View File

@@ -4,18 +4,21 @@ build-backend = "setuptools.build_meta"
[project]
name = "cm93-mysql-importer"
version = "0.2.0"
description = "CM93 complete high-precision importer and auditor for MySQL 5.7"
version = "0.4.7"
description = "CM93 complete high-precision importer/auditor and CM95-to-NavSea PBF frozen-pilot and production generator for MySQL 5.7"
readme = "README.md"
requires-python = ">=3.12,<3.13"
dependencies = [
"PyMySQL>=1.1,<2",
"python-dotenv>=1.0,<2",
"Shapely>=2.0,<3",
"PyYAML>=6.0,<7",
"mapbox-vector-tile>=2.2,<3",
]
[project.scripts]
cm93db = "cm93db.cli:main"
cm95pbf = "cm95pbf.cli:main"
[tool.setuptools]
package-dir = {"" = "src"}

View File

@@ -1,3 +1,5 @@
PyMySQL>=1.1,<2
python-dotenv>=1.0,<2
Shapely>=2.0,<3
PyYAML>=6.0,<7
mapbox-vector-tile>=2.2,<3

View File

@@ -0,0 +1,392 @@
param(
[string]$ProjectRoot = "D:\React\cm93-mysql-importer-starter",
[string]$SourceRoot = "D:\Ship\CM93V2\CM93JAPAN",
[int]$DatasetId = 1,
[int]$ExpectedCells = 1492,
[int]$Workers = 4
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
function Step([string]$Text) {
Write-Host ""
Write-Host "======================================================================"
Write-Host $Text
Write-Host "======================================================================"
}
function Run([string]$Label, [scriptblock]$Action) {
Step $Label
& $Action
$Code = $LASTEXITCODE
if ($null -ne $Code -and $Code -ne 0) {
throw "$Label FAILED (exit=$Code)"
}
}
function StateCount($States, [string]$Name) {
if ($null -eq $States) { return 0 }
$P = $States.PSObject.Properties[$Name]
if ($null -eq $P) { return 0 }
return [int]$P.Value
}
Set-Location $ProjectRoot
$Python = ".\.venv\Scripts\python.exe"
$Cm95Pbf = ".\.venv\Scripts\cm95pbf.exe"
$Mapping = ".\config\mappings\cm95_to_navsea_v1.yaml"
$Disposition = ".\config\mappings\cm95_gap_disposition_japan_dataset_1_v1.yaml"
$Policy = ".\config\pbf\cm95_tile_policy_japan_full_detail_v1.yaml"
$GapAudit = ".\build\production\cm95_global_mapping_gap_audit_dataset_1.json"
$Closure = ".\build\production\cm95_global_mapping_gap_closure_dataset_1_after_review.json"
$MappingContract = ".\build\production\cm95_mapping_contract_check_japan_dataset_1.json"
$Manifest = ".\build\cm95_fid_manifest_japan_dataset_1_v1.sqlite"
$Plan = ".\build\production\cm95_production_plan_japan_full_detail_v1.json"
$PlanAudit = ".\build\production\cm95_production_plan_audit_japan_full_detail_v1.json"
foreach ($Path in @($Python,$Cm95Pbf,$Mapping,$Disposition,$Policy)) {
if (-not (Test-Path $Path)) {
throw "Missing required file: $Path"
}
}
# ----------------------------------------------------------------------
# 0. Verify v1.4.5 runtime
# ----------------------------------------------------------------------
Run "STEP 0 - CM95 v1.4.5 preflight" {
& $Python ".\tools\cm95_v1_4_5_preflight.py"
}
# ----------------------------------------------------------------------
# 1. Verify fresh Japan Dataset in MySQL, no reimport
# ----------------------------------------------------------------------
Step "STEP 1 - Verify existing fresh Japan Dataset"
$Tmp = Join-Path $env:TEMP ("cm95_japan_continue_" + $PID)
Remove-Item $Tmp -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Path $Tmp | Out-Null
try {
$Helper = Join-Path $Tmp "verify_dataset.py"
@'
from pathlib import Path
from dotenv import load_dotenv
import os, sys, json, pymysql
project_root = Path(sys.argv[1]).resolve()
dataset_id = int(sys.argv[2])
expected_root = str(Path(sys.argv[3]).resolve())
load_dotenv(dotenv_path=project_root / ".env")
conn = pymysql.connect(
host=os.getenv("CM93_DB_HOST", "127.0.0.1"),
port=int(os.getenv("CM93_DB_PORT", "3306")),
user=os.getenv("CM93_DB_USER", "root"),
password=os.getenv("CM93_DB_PASSWORD", ""),
database=os.getenv("CM93_DB_NAME", "cm93_chart"),
charset=os.getenv("CM93_DB_CHARSET", "utf8mb4"),
cursorclass=pymysql.cursors.DictCursor,
)
try:
with conn.cursor() as cur:
cur.execute(
"""
SELECT d.id,d.name,d.source_root,
COUNT(c.id) cells,
SUM(c.import_status='DONE') done_cells,
SUM(c.import_status='FAILED') failed_cells
FROM chart_dataset d
LEFT JOIN chart_cell c ON c.dataset_id=d.id
WHERE d.id=%s
GROUP BY d.id,d.name,d.source_root
""",
(dataset_id,),
)
row = cur.fetchone()
if not row:
raise RuntimeError(f"dataset {dataset_id} not found")
actual_root = str(Path(row["source_root"]).resolve())
result = {
"id": int(row["id"]),
"name": row["name"],
"source_root": actual_root,
"cells": int(row["cells"] or 0),
"done_cells": int(row["done_cells"] or 0),
"failed_cells": int(row["failed_cells"] or 0),
}
if actual_root.lower() != expected_root.lower():
raise RuntimeError(
f"source_root mismatch: {actual_root} != {expected_root}"
)
print(json.dumps(result, ensure_ascii=False))
finally:
conn.close()
'@ | Set-Content $Helper -Encoding UTF8
$DatasetText = (
& $Python $Helper $ProjectRoot $DatasetId $SourceRoot |
Out-String
).Trim()
if ($LASTEXITCODE -ne 0) {
throw "Dataset verification failed"
}
$Dataset = $DatasetText | ConvertFrom-Json
if ([int]$Dataset.cells -ne $ExpectedCells -or
[int]$Dataset.done_cells -ne $ExpectedCells -or
[int]$Dataset.failed_cells -ne 0) {
throw "Dataset state mismatch: $DatasetText"
}
Write-Host $DatasetText
}
finally {
Remove-Item $Tmp -Recurse -Force -ErrorAction SilentlyContinue
}
# ----------------------------------------------------------------------
# 2. Re-run gap audit and closure with the new dataset-specific disposition
# ----------------------------------------------------------------------
Run "STEP 2A - Re-run global mapping gap audit" {
& $Python ".\tools\cm95_global_mapping_gap_audit_v1.py" `
--dataset-id $DatasetId `
--mapping $Mapping `
--output $GapAudit
}
Run "STEP 2B - Close 25 new Japan gap variants" {
& $Python ".\tools\cm95_global_mapping_gap_closure_audit_v2.py" `
--gap-audit $GapAudit `
--mapping $Mapping `
--disposition $Disposition `
--output $Closure
}
$C = Get-Content $Closure -Raw | ConvertFrom-Json
if ([string]$C.overall -ne "PASS") {
throw "Mapping gap closure is not PASS"
}
if (@($C.unclassified_variants).Count -ne 0) {
throw "Unclassified variants remain"
}
if ([int]$C.observed_gap_variants -ne 165) {
throw "Unexpected gap variant count: $($C.observed_gap_variants)"
}
if (@($C.pending_semantic_review).Count -ne 137) {
throw "Unexpected pending variant count: $(@($C.pending_semantic_review).Count)"
}
if ([int]$C.pending_semantic_review_feature_rows -ne 90009) {
throw "Unexpected pending rows: $($C.pending_semantic_review_feature_rows)"
}
Write-Host ""
Write-Host "Expected closure confirmed:"
Write-Host " observed = 165"
Write-Host " unclassified = 0"
Write-Host " pending = 137"
Write-Host " pending rows = 90009"
Write-Host " overall = PASS"
# ----------------------------------------------------------------------
# 3. Static mapping/style/sprite contract
# ----------------------------------------------------------------------
Run "STEP 3 - Mapping / Style / Sprite static contract" {
& $Python ".\tools\cm95_mapping_contract_check_v1.py" `
--mapping $Mapping `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--output $MappingContract
}
$MC = Get-Content $MappingContract -Raw | ConvertFrom-Json
if ([string]$MC.overall -ne "PASS") {
throw "Mapping/style/sprite contract failed"
}
# ----------------------------------------------------------------------
# 4. Full-detail policy hard gate: G=7500 must be in z12
# ----------------------------------------------------------------------
Step "STEP 4 - Japan full-detail policy check"
$PolicyObj = Get-Content $Policy -Raw |
& $Python -c "import sys,yaml,json; print(json.dumps(yaml.safe_load(sys.stdin.read())))" |
ConvertFrom-Json
# No multi-line Python is passed here; only a fixed one-line expression.
$Enum12 = @($PolicyObj.enumeration_scales.'12')
$Ladder12 = @($PolicyObj.scale_ladders.'12')
if (7500 -notin $Enum12 -or
$Ladder12.Count -eq 0 -or
[int]$Ladder12[0] -ne 7500) {
throw "Japan full-detail policy does not prioritize G=7500 at z12"
}
Write-Host "z12 enumeration : $($Enum12 -join ', ')"
Write-Host "z12 ladder : $($Ladder12 -join ', ')"
Write-Host "G=7500 gate : PASS"
# ----------------------------------------------------------------------
# 5. Reset PBF-side outputs only. MySQL remains untouched.
# ----------------------------------------------------------------------
Step "STEP 5 - Reset PBF-side outputs only"
Remove-Item ".\build\releases" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item $Manifest -Force -ErrorAction SilentlyContinue
Remove-Item $Plan -Force -ErrorAction SilentlyContinue
Remove-Item $PlanAudit -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force -Path ".\build\releases" | Out-Null
# ----------------------------------------------------------------------
# 6. Fresh deterministic FID manifest
# ----------------------------------------------------------------------
Run "STEP 6 - Build fresh FID manifest" {
& $Cm95Pbf build-fid-manifest `
--dataset-id $DatasetId `
--manifest $Manifest `
--rebuild-fid-manifest
}
# ----------------------------------------------------------------------
# 7. Fresh production plan using G=7500-aware z12 policy
# ----------------------------------------------------------------------
Run "STEP 7A - plan-production z0-z12 Japan full detail" {
& $Cm95Pbf plan-production `
--dataset-id $DatasetId `
--zooms 0-12 `
--profile delivery `
--mapping $Mapping `
--policy $Policy `
--manifest $Manifest `
--output $Plan
}
Run "STEP 7B - production plan audit" {
& $Python ".\tools\cm95_production_plan_audit_v1.py" `
--plan $Plan `
--expected-zooms 0-12 `
--output $PlanAudit
}
$PA = Get-Content $PlanAudit -Raw | ConvertFrom-Json
if ([string]$PA.overall -ne "PASS") {
throw "Production plan audit failed"
}
$PlanObj = Get-Content $Plan -Raw | ConvertFrom-Json
$ReleaseId = [string]$PlanObj.release_id
Write-Host ""
Write-Host "Plan ID : $($PlanObj.plan_id)"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($PlanObj.job_count)"
# ----------------------------------------------------------------------
# 8. Full production build
# ----------------------------------------------------------------------
Run "STEP 8 - Full PBF production build" {
& $Cm95Pbf build-production `
--plan $Plan `
--release-root ".\build\releases" `
--workers $Workers `
--max-attempts 3
}
# ----------------------------------------------------------------------
# 9. Status
# ----------------------------------------------------------------------
Step "STEP 9 - Production status"
$StatusText = (
& $Cm95Pbf status-production `
--plan $Plan `
--release-root ".\build\releases" |
Out-String
).Trim()
if ($LASTEXITCODE -ne 0) {
throw "status-production failed"
}
Write-Host $StatusText
$S = $StatusText | ConvertFrom-Json
$Pass = StateCount $S.states "PASS"
$Fail = StateCount $S.states "FAILED"
$Pending = StateCount $S.states "PENDING"
$Running = StateCount $S.states "RUNNING"
if ($Pass -ne [int]$S.jobs -or
$Fail -ne 0 -or
$Pending -ne 0 -or
$Running -ne 0) {
throw "Production state gate failed"
}
# ----------------------------------------------------------------------
# 10. Final release gate
# ----------------------------------------------------------------------
Run "STEP 10 - Finalize production release" {
& $Cm95Pbf finalize-production `
--plan $Plan `
--release-root ".\build\releases" `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--gap-disposition $Disposition
}
$ReleaseManifest = ".\build\releases\$ReleaseId\release_manifest_v1.json"
if (-not (Test-Path $ReleaseManifest)) {
throw "Release manifest missing: $ReleaseManifest"
}
$Final = Get-Content $ReleaseManifest -Raw | ConvertFrom-Json
if ([string]$Final.status -ne "PASS") {
throw "Final release status is not PASS"
}
Step "JAPAN CONTINUATION COMPLETE / PASS"
Write-Host "Dataset ID : $DatasetId"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($S.jobs)"
Write-Host "PBF files : $($S.pbf_files)"
Write-Host "Output features : $($S.output_features)"
Write-Host "Semantic status : $($Final.semantic_completeness)"
Write-Host "Pending variants : 137"
Write-Host "Pending rows : 90009"
Write-Host ""
Write-Host "Web test:"
Write-Host " cd `"$ProjectRoot`""
Write-Host " & `".\.venv\Scripts\python.exe`" .\web\cm95_web.py --release-id `"$ReleaseId`""

View File

@@ -0,0 +1,946 @@
param(
[string]$ProjectRoot = "D:\React\cm93-mysql-importer-starter",
[string]$SourceRoot = "D:\Ship\CM93V2\CM93JAPAN",
[int]$ExpectedCells = 1492,
[int]$Workers = 4,
[switch]$Force
)
# CM95 Japan Full Rebuild Pipeline v2
#
# 从零重建:
# CM93 source -> fresh MySQL -> audit -> mapping gates
# -> fresh FID manifest -> fresh production plan
# -> full PBF build -> final release gate
#
# Windows 11 / PowerShell
#
# 破坏性范围:
# - DROP .env 中 CM93_DB_NAME 整个数据库
# - 删除旧 build\production
# - 删除旧 build\releases
# - 删除旧 build\pbf
# - 删除旧 build\pbf-reports
# - 删除旧 build\cm95_fid_manifest*.sqlite*
#
# 不会删除:
# - D:\Ship\CM93V2\CM93JAPAN
# - src\
# - config\
# - web\
# - logs\ 历史文件
#
# v2 修正:
# - 禁止 python.exe -c 多行代码,避免 Windows/PowerShell 引号损坏
# - 临时 Python helper 一律落盘执行
# - audit JSON gate 对齐当前 cm93db AuditResult
# - geometry_validity_issues 保持 informational
# - status JSON 使用 Out-String 后再 ConvertFrom-Json
# - 生成当前 Dataset 专属 semantic disposition summary
#
# 如果新 Dataset 出现未分类 mapping gap,会在 PBF build 前 STOP。
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
function Write-Step {
param([string]$Text)
Write-Host ""
Write-Host "======================================================================"
Write-Host $Text
Write-Host "======================================================================"
}
function Invoke-Checked {
param(
[string]$Label,
[scriptblock]$Action
)
Write-Step $Label
& $Action
$ExitCode = $LASTEXITCODE
if ($null -ne $ExitCode -and $ExitCode -ne 0) {
throw "$Label FAILED (exit code=$ExitCode)"
}
}
function Remove-PathIfExists {
param([string]$PathValue)
if (Test-Path $PathValue) {
Write-Host "DELETE: $PathValue"
Remove-Item $PathValue -Recurse -Force
}
}
function Get-StateCount {
param(
[object]$States,
[string]$Name
)
if ($null -eq $States) {
return 0
}
$Prop = $States.PSObject.Properties[$Name]
if ($null -eq $Prop) {
return 0
}
return [int]$Prop.Value
}
if (-not (Test-Path $ProjectRoot -PathType Container)) {
throw "ProjectRoot 不存在: $ProjectRoot"
}
if (-not (Test-Path $SourceRoot -PathType Container)) {
throw "SourceRoot 不存在: $SourceRoot"
}
Set-Location $ProjectRoot
$ProjectRoot = (Resolve-Path $ProjectRoot).Path
$SourceRoot = (Resolve-Path $SourceRoot).Path
$Python = Join-Path $ProjectRoot ".venv\Scripts\python.exe"
$Cm93Db = Join-Path $ProjectRoot ".venv\Scripts\cm93db.exe"
$Cm95Pbf = Join-Path $ProjectRoot ".venv\Scripts\cm95pbf.exe"
$EnvPath = Join-Path $ProjectRoot ".env"
foreach ($RequiredExe in @($Python, $Cm93Db, $Cm95Pbf)) {
if (-not (Test-Path $RequiredExe -PathType Leaf)) {
throw "缺少运行文件: $RequiredExe"
}
}
if (-not (Test-Path $EnvPath -PathType Leaf)) {
throw "缺少项目 .env: $EnvPath"
}
# 临时 helper 放系统 TEMP,不受 build 清理影响。
$TempRoot = Join-Path $env:TEMP ("cm95_japan_pipeline_v2_" + $PID)
Remove-Item $TempRoot -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Path $TempRoot -Force | Out-Null
try {
# ----------------------------------------------------------------------
# STEP 0 - Source hard gate
# ----------------------------------------------------------------------
Write-Step "STEP 0 - Japan CM93 源目录检查"
$RequiredRegions = @(
"03300360",
"03300420",
"03900360",
"03900420"
)
$ActualRegions = @(
Get-ChildItem $SourceRoot -Directory -ErrorAction Stop |
Where-Object { $_.Name -match '^\d{8}$' } |
ForEach-Object { $_.Name } |
Sort-Object
)
$MissingRegions = @(
$RequiredRegions |
Where-Object { $_ -notin $ActualRegions }
)
$ExtraRegions = @(
$ActualRegions |
Where-Object { $_ -notin $RequiredRegions }
)
Write-Host "SourceRoot:"
Write-Host " $SourceRoot"
Write-Host ""
Write-Host "Numeric regions:"
$ActualRegions | ForEach-Object { Write-Host " $_" }
if ($MissingRegions.Count -gt 0) {
throw "缺少 Japan 必需区域: $($MissingRegions -join ', ')"
}
if ($ExtraRegions.Count -gt 0) {
throw "发现 Japan 工作集之外的数字区域,停止: $($ExtraRegions -join ', ')"
}
if (-not (Test-Path (Join-Path $SourceRoot "CM93OBJ.DIC"))) {
throw "缺少 CM93OBJ.DIC"
}
$HasAttrDic =
(Test-Path (Join-Path $SourceRoot "CM93ATTR.DIC")) -or
(Test-Path (Join-Path $SourceRoot "ATTRLUT.DIC"))
if (-not $HasAttrDic) {
throw "缺少 CM93ATTR.DIC / ATTRLUT.DIC"
}
Write-Host ""
Write-Host "Japan source region gate: PASS"
# ----------------------------------------------------------------------
# STEP 1 - Current code baseline + read-only checks
# ----------------------------------------------------------------------
Invoke-Checked "STEP 1A - pip install -e ." {
& $Python -m pip install -e .
}
if (-not (Test-Path ".\tools\cm95_v1_4_5_preflight.py")) {
throw "缺少 tools\cm95_v1_4_5_preflight.py;当前项目不是 v1.4.5 baseline"
}
Invoke-Checked "STEP 1B - CM95 v1.4.5 preflight" {
& $Python ".\tools\cm95_v1_4_5_preflight.py"
}
Invoke-Checked "STEP 1C - CM93 scan" {
& $Cm93Db scan $SourceRoot
}
Invoke-Checked "STEP 1D - CM93 dictionaries" {
& $Cm93Db inspect-dicts $SourceRoot
}
# ----------------------------------------------------------------------
# STEP 2 - Read DB config with a real helper .py file
# ----------------------------------------------------------------------
$ReadDbInfoPy = Join-Path $TempRoot "read_db_info.py"
@'
from __future__ import annotations
import json
import os
import sys
from pathlib import Path
from dotenv import load_dotenv
env_path = Path(sys.argv[1]).resolve()
load_dotenv(dotenv_path=env_path)
result = {
"host": os.getenv("CM93_DB_HOST", "127.0.0.1"),
"port": int(os.getenv("CM93_DB_PORT", "3306")),
"database": (os.getenv("CM93_DB_NAME", "cm93_chart") or "").strip(),
"user": os.getenv("CM93_DB_USER", "root"),
"charset": os.getenv("CM93_DB_CHARSET", "utf8mb4"),
}
if not result["database"]:
raise SystemExit("CM93_DB_NAME is empty")
print(json.dumps(result, ensure_ascii=False))
'@ | Set-Content $ReadDbInfoPy -Encoding UTF8
$DbInfoText = (& $Python $ReadDbInfoPy $EnvPath | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($DbInfoText)) {
throw "无法读取数据库配置"
}
$DbInfo = $DbInfoText | ConvertFrom-Json
$DbName = [string]$DbInfo.database
$ForbiddenDbNames = @(
"mysql",
"information_schema",
"performance_schema",
"sys"
)
if ($DbName.ToLowerInvariant() -in $ForbiddenDbNames) {
throw "拒绝删除系统数据库: $DbName"
}
Write-Step "STEP 2 - DESTRUCTIVE RESET CONFIRMATION"
Write-Host "将永久删除整个 MySQL database:"
Write-Host " $DbName"
Write-Host ""
Write-Host "数据库服务器:"
Write-Host " $($DbInfo.host):$($DbInfo.port)"
Write-Host ""
Write-Host "也会删除旧 CM95 build/release 产物。"
Write-Host ""
Write-Host "不会删除 CM93 source:"
Write-Host " $SourceRoot"
if (-not $Force) {
$Expected = "DELETE $DbName"
$Answer = Read-Host "请输入 [$Expected] 继续"
if ($Answer -ne $Expected) {
throw "用户取消。"
}
}
else {
Write-Host "-Force 已指定,跳过交互确认。"
}
# ----------------------------------------------------------------------
# STEP 3 - Delete old generated artifacts
# ----------------------------------------------------------------------
Write-Step "STEP 3 - 删除旧 CM95 build/release 产物"
Remove-PathIfExists (Join-Path $ProjectRoot "build\production")
Remove-PathIfExists (Join-Path $ProjectRoot "build\releases")
Remove-PathIfExists (Join-Path $ProjectRoot "build\pbf")
Remove-PathIfExists (Join-Path $ProjectRoot "build\pbf-reports")
$BuildRoot = Join-Path $ProjectRoot "build"
if (Test-Path $BuildRoot) {
Get-ChildItem $BuildRoot -File -Filter "cm95_fid_manifest*.sqlite*" -ErrorAction SilentlyContinue |
ForEach-Object {
Write-Host "DELETE: $($_.FullName)"
Remove-Item $_.FullName -Force
}
}
New-Item -ItemType Directory -Force -Path ".\build\production" | Out-Null
New-Item -ItemType Directory -Force -Path ".\logs" | Out-Null
# ----------------------------------------------------------------------
# STEP 4 - DROP database using helper file, then let cm93db recreate schema
# ----------------------------------------------------------------------
$DropDbPy = Join-Path $TempRoot "drop_cm93_database.py"
@'
from __future__ import annotations
import os
import re
import sys
from pathlib import Path
import pymysql
from dotenv import load_dotenv
env_path = Path(sys.argv[1]).resolve()
load_dotenv(dotenv_path=env_path)
host = os.getenv("CM93_DB_HOST", "127.0.0.1")
port = int(os.getenv("CM93_DB_PORT", "3306"))
user = os.getenv("CM93_DB_USER", "root")
password = os.getenv("CM93_DB_PASSWORD", "")
database = (os.getenv("CM93_DB_NAME", "cm93_chart") or "").strip()
charset = os.getenv("CM93_DB_CHARSET", "utf8mb4")
if not database:
raise RuntimeError("CM93_DB_NAME is empty")
if database.lower() in {
"mysql",
"information_schema",
"performance_schema",
"sys",
}:
raise RuntimeError(f"refuse to drop system database: {database}")
conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
charset=charset,
autocommit=False,
cursorclass=pymysql.cursors.DictCursor,
)
try:
with conn.cursor() as cur:
cur.execute("SELECT VERSION() AS v")
version = str(cur.fetchone()["v"])
match = re.match(r"^(\d+)\.(\d+)\.(\d+)", version)
if not match or tuple(map(int, match.groups()[:2])) != (5, 7):
raise RuntimeError(
f"expected MySQL 5.7.x, got {version}; refusing destructive reset"
)
safe = database.replace("`", "``")
cur.execute(f"DROP DATABASE IF EXISTS `{safe}`")
conn.commit()
print(f"DROP_DATABASE_OK database={database} mysql={version}")
finally:
conn.close()
'@ | Set-Content $DropDbPy -Encoding UTF8
Invoke-Checked "STEP 4A - DROP old database" {
& $Python $DropDbPy $EnvPath
}
Invoke-Checked "STEP 4B - CREATE database + initialize schema" {
& $Cm93Db db-init --create-database
}
Invoke-Checked "STEP 4C - DB contract check" {
& $Cm93Db db-check
}
# ----------------------------------------------------------------------
# STEP 5 - Full import on fresh DB
# ----------------------------------------------------------------------
Invoke-Checked "STEP 5 - 全量 CM93 Japan import(fresh DB)" {
& $Cm93Db import $SourceRoot --fail-fast
}
# ----------------------------------------------------------------------
# STEP 6 - Full audit
# ----------------------------------------------------------------------
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$AuditReport = ".\logs\cm93_audit_japan_full_rebuild_$Timestamp.json"
Invoke-Checked "STEP 6 - CM93 full audit + geometry validation" {
& $Cm93Db audit `
$SourceRoot `
--validate-geometry `
--report $AuditReport
}
$Audit = Get-Content $AuditReport -Raw | ConvertFrom-Json
if (-not [bool]$Audit.passed) {
throw "CM93 audit report passed=false;检查 $AuditReport"
}
$AuditHardFailures = @(
[int64]$Audit.source_parse_failed,
[int64]$Audit.db_missing_cells,
[int64]$Audit.db_not_done_cells,
[int64]$Audit.count_mismatches,
[int64]$Audit.hash_mismatches,
[int64]$Audit.raw_preservation_mismatches,
[int64]$Audit.unknown_objects,
[int64]$Audit.unknown_attributes,
[int64]$Audit.precision_failed
)
if (($AuditHardFailures | Measure-Object -Sum).Sum -ne 0) {
throw "CM93 audit hard gate failed;检查 $AuditReport"
}
if ($ExpectedCells -gt 0 -and [int]$Audit.source_cells -ne $ExpectedCells) {
throw "Source cell count 不符合当前 Japan baseline: $($Audit.source_cells) != $ExpectedCells"
}
Write-Host ""
Write-Host "CM93 AUDIT HARD GATE: PASS"
Write-Host "Source cells : $($Audit.source_cells)"
Write-Host "Geometry validity issues : $($Audit.geometry_validity_issues) (informational)"
# ----------------------------------------------------------------------
# STEP 7 - Resolve fresh Dataset
# ----------------------------------------------------------------------
$DatasetInfoPy = Join-Path $TempRoot "dataset_info.py"
@'
from __future__ import annotations
import json
import os
import sys
from pathlib import Path
import pymysql
from dotenv import load_dotenv
env_path = Path(sys.argv[1]).resolve()
source_root = str(Path(sys.argv[2]).resolve())
load_dotenv(dotenv_path=env_path)
conn = pymysql.connect(
host=os.getenv("CM93_DB_HOST", "127.0.0.1"),
port=int(os.getenv("CM93_DB_PORT", "3306")),
user=os.getenv("CM93_DB_USER", "root"),
password=os.getenv("CM93_DB_PASSWORD", ""),
database=os.getenv("CM93_DB_NAME", "cm93_chart"),
charset=os.getenv("CM93_DB_CHARSET", "utf8mb4"),
cursorclass=pymysql.cursors.DictCursor,
)
try:
with conn.cursor() as cur:
cur.execute("SELECT COUNT(*) AS n FROM chart_dataset")
dataset_count = int(cur.fetchone()["n"])
cur.execute(
"""
SELECT
d.id,
d.name,
d.source_root,
COUNT(c.id) AS cells,
SUM(c.import_status='DONE') AS done_cells,
SUM(c.import_status='FAILED') AS failed_cells
FROM chart_dataset d
LEFT JOIN chart_cell c
ON c.dataset_id=d.id
WHERE d.source_type='CM93'
AND d.source_root=%s
GROUP BY d.id,d.name,d.source_root
""",
(source_root,),
)
rows = cur.fetchall()
if dataset_count != 1:
raise RuntimeError(
f"fresh DB expected exactly 1 dataset, got {dataset_count}"
)
if len(rows) != 1:
raise RuntimeError(
f"expected one dataset for source_root={source_root}, got {len(rows)}"
)
row = rows[0]
print(
json.dumps(
{
"id": int(row["id"]),
"name": row["name"],
"source_root": row["source_root"],
"cells": int(row["cells"] or 0),
"done_cells": int(row["done_cells"] or 0),
"failed_cells": int(row["failed_cells"] or 0),
},
ensure_ascii=False,
)
)
finally:
conn.close()
'@ | Set-Content $DatasetInfoPy -Encoding UTF8
$DatasetText = (& $Python $DatasetInfoPy $EnvPath $SourceRoot | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($DatasetText)) {
throw "无法读取 fresh Dataset 信息"
}
$Dataset = $DatasetText | ConvertFrom-Json
$DatasetId = [int]$Dataset.id
if ([int]$Dataset.cells -ne [int]$Audit.source_cells) {
throw "DB cell count != audit source_cells ($($Dataset.cells) != $($Audit.source_cells))"
}
if ([int]$Dataset.done_cells -ne [int]$Audit.source_cells) {
throw "不是所有 Cell 都 DONE"
}
if ([int]$Dataset.failed_cells -ne 0) {
throw "存在 FAILED Cell"
}
Write-Step "STEP 7 - Fresh Dataset confirmed"
Write-Host "Dataset ID : $DatasetId"
Write-Host "Name : $($Dataset.name)"
Write-Host "SourceRoot : $($Dataset.source_root)"
Write-Host "Cells : $($Dataset.cells)"
Write-Host "DONE : $($Dataset.done_cells)"
Write-Host "FAILED : $($Dataset.failed_cells)"
# ----------------------------------------------------------------------
# STEP 8 - Dataset-aware mapping gates
# ----------------------------------------------------------------------
$GapAudit = ".\build\production\cm95_global_mapping_gap_audit_dataset_${DatasetId}.json"
$GapClosure = ".\build\production\cm95_global_mapping_gap_closure_dataset_${DatasetId}.json"
$MappingContract = ".\build\production\cm95_mapping_contract_check_dataset_${DatasetId}.json"
Invoke-Checked "STEP 8A - Global mapping gap audit (fresh Dataset)" {
& $Python ".\tools\cm95_global_mapping_gap_audit_v1.py" `
--dataset-id $DatasetId `
--mapping ".\config\mappings\cm95_to_navsea_v1.yaml" `
--output $GapAudit
}
Invoke-Checked "STEP 8B - Mapping gap classification closure" {
& $Python ".\tools\cm95_global_mapping_gap_closure_audit_v2.py" `
--gap-audit $GapAudit `
--mapping ".\config\mappings\cm95_to_navsea_v1.yaml" `
--disposition ".\config\mappings\cm95_gap_disposition_v1.yaml" `
--output $GapClosure
}
$Closure = Get-Content $GapClosure -Raw | ConvertFrom-Json
if ([string]$Closure.overall -ne "PASS") {
Write-Host ""
Write-Host "NEW DATASET MAPPING GATE STOPPED PIPELINE."
Write-Host "新 Japan Dataset 有当前 disposition 尚未收口的 gap variant。"
Write-Host ""
Write-Host "检查:"
Write-Host " $GapAudit"
Write-Host " $GapClosure"
throw "Mapping gap closure FAIL;PBF generation intentionally stopped."
}
Invoke-Checked "STEP 8C - Mapping / Style / Sprite static contract" {
& $Python ".\tools\cm95_mapping_contract_check_v1.py" `
--mapping ".\config\mappings\cm95_to_navsea_v1.yaml" `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--output $MappingContract
}
$MapContract = Get-Content $MappingContract -Raw | ConvertFrom-Json
if ([string]$MapContract.overall -ne "PASS") {
throw "Mapping / Style / Sprite static contract FAIL"
}
# ----------------------------------------------------------------------
# STEP 8D - Build Dataset-specific effective gap disposition
# ----------------------------------------------------------------------
$EffectiveDisposition = ".\build\production\cm95_gap_disposition_dataset_${DatasetId}_effective.yaml"
$EffectiveDispositionPy = Join-Path $TempRoot "build_effective_disposition.py"
@'
from __future__ import annotations
import copy
import sys
from pathlib import Path
import yaml
template_path = Path(sys.argv[1])
gap_path = Path(sys.argv[2])
closure_path = Path(sys.argv[3])
dataset_id = int(sys.argv[4])
out_path = Path(sys.argv[5])
template = yaml.safe_load(template_path.read_text(encoding="utf-8")) or {}
gap = yaml.safe_load(gap_path.read_text(encoding="utf-8")) or {}
closure = yaml.safe_load(closure_path.read_text(encoding="utf-8")) or {}
template_by_key = {
(
str(v.get("object_class") or ""),
str(v.get("geometry_type") or "").upper(),
): v
for v in template.get("variants") or []
if isinstance(v, dict)
}
effective_variants = []
for item in gap.get("gap_variants") or []:
key = (
str(item.get("object_class") or ""),
str(item.get("geometry_type") or "").upper(),
)
src = template_by_key.get(key)
if src is None:
raise RuntimeError(
f"unclassified gap variant while building effective disposition: {key}"
)
row = copy.deepcopy(src)
row["object_class"] = key[0]
row["geometry_type"] = key[1]
row["feature_count"] = int(item.get("feature_count") or 0)
if item.get("object_class_id") is not None:
row["object_class_id"] = item.get("object_class_id")
if item.get("dictionary_description") is not None:
row["dictionary_description"] = item.get("dictionary_description")
if item.get("gap_reason") is not None:
row["gap_reason_v1"] = item.get("gap_reason")
effective_variants.append(row)
pending = [
v for v in effective_variants
if str(v.get("disposition") or "")
== "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW"
]
delivery = [
v for v in effective_variants
if str(v.get("disposition") or "")
== "DELIVERY_MAPPED_V1_4_3"
]
existing = [
v for v in effective_variants
if str(v.get("disposition") or "").startswith("EXISTING_")
]
result = {
"schema": "navsea.cm95.gap-disposition/v1",
"version": "v1.4.5-dataset-effective",
"dataset_id": dataset_id,
"source_audit": str(gap_path),
"policy": (
"Dataset-specific effective disposition generated from "
"cm95_gap_disposition_v1.yaml after current-dataset closure PASS."
),
"summary": {
"observed_gap_variants": len(effective_variants),
"delivery_mapped_v1_4_3": len(delivery),
"existing_explicit_non_delivery": len(existing),
"pending_semantic_review": len(pending),
"delivery_mapped_v1_4_3_feature_rows": sum(
int(v.get("feature_count") or 0) for v in delivery
),
"existing_explicit_non_delivery_feature_rows": sum(
int(v.get("feature_count") or 0) for v in existing
),
"pending_semantic_review_feature_rows": sum(
int(v.get("feature_count") or 0) for v in pending
),
},
"variants": effective_variants,
}
out_path.parent.mkdir(parents=True, exist_ok=True)
out_path.write_text(
yaml.safe_dump(
result,
allow_unicode=True,
sort_keys=False,
width=120,
),
encoding="utf-8",
)
print(f"Effective disposition: {out_path}")
print(f"Observed gap variants : {len(effective_variants)}")
print(f"Pending review : {len(pending)}")
print(
"Pending rows : "
f"{result['summary']['pending_semantic_review_feature_rows']}"
)
'@ | Set-Content $EffectiveDispositionPy -Encoding UTF8
Invoke-Checked "STEP 8D - Dataset-specific semantic disposition summary" {
& $Python $EffectiveDispositionPy `
".\config\mappings\cm95_gap_disposition_v1.yaml" `
$GapAudit `
$GapClosure `
$DatasetId `
$EffectiveDisposition
}
# ----------------------------------------------------------------------
# STEP 9 - Fresh deterministic FID manifest
# ----------------------------------------------------------------------
$Manifest = ".\build\cm95_fid_manifest_dataset_${DatasetId}_v1.sqlite"
Invoke-Checked "STEP 9 - Rebuild FID manifest from zero" {
& $Cm95Pbf build-fid-manifest `
--dataset-id $DatasetId `
--manifest $Manifest `
--rebuild-fid-manifest
}
# ----------------------------------------------------------------------
# STEP 10 - Fresh immutable production plan
# ----------------------------------------------------------------------
$Plan = ".\build\production\cm95_production_plan_dataset_${DatasetId}_v1_4_5.json"
$PlanAudit = ".\build\production\cm95_production_plan_audit_dataset_${DatasetId}_v1_4_5.json"
Invoke-Checked "STEP 10A - plan-production z0-z12" {
& $Cm95Pbf plan-production `
--dataset-id $DatasetId `
--zooms 0-12 `
--profile delivery `
--manifest $Manifest `
--output $Plan
}
Invoke-Checked "STEP 10B - production plan audit" {
& $Python ".\tools\cm95_production_plan_audit_v1.py" `
--plan $Plan `
--expected-zooms 0-12 `
--output $PlanAudit
}
$PlanObj = Get-Content $Plan -Raw | ConvertFrom-Json
$PlanAuditObj = Get-Content $PlanAudit -Raw | ConvertFrom-Json
if ([string]$PlanAuditObj.overall -ne "PASS") {
throw "Production plan audit FAIL"
}
$ReleaseId = [string]$PlanObj.release_id
if ([string]::IsNullOrWhiteSpace($ReleaseId)) {
throw "Plan 没有 release_id"
}
Write-Host ""
Write-Host "Plan ID : $($PlanObj.plan_id)"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($PlanObj.job_count)"
# ----------------------------------------------------------------------
# STEP 11 - Full PBF build
# ----------------------------------------------------------------------
Invoke-Checked "STEP 11 - build-production FULL" {
& $Cm95Pbf build-production `
--plan $Plan `
--release-root ".\build\releases" `
--workers $Workers `
--max-attempts 3
}
# ----------------------------------------------------------------------
# STEP 12 - Production status
# ----------------------------------------------------------------------
Write-Step "STEP 12 - Production status"
$StatusText = (
& $Cm95Pbf status-production `
--plan $Plan `
--release-root ".\build\releases" |
Out-String
).Trim()
if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($StatusText)) {
throw "status-production FAILED"
}
Write-Host $StatusText
$Status = $StatusText | ConvertFrom-Json
$States = $Status.states
$PassCount = Get-StateCount $States "PASS"
$FailedCount = Get-StateCount $States "FAILED"
$PendingCount = Get-StateCount $States "PENDING"
$RunningCount = Get-StateCount $States "RUNNING"
if ($PassCount -ne [int]$Status.jobs -or
$FailedCount -ne 0 -or
$PendingCount -ne 0 -or
$RunningCount -ne 0) {
throw "Production state gate FAIL"
}
# ----------------------------------------------------------------------
# STEP 13 - Final release gate
# ----------------------------------------------------------------------
Invoke-Checked "STEP 13 - finalize-production" {
& $Cm95Pbf finalize-production `
--plan $Plan `
--release-root ".\build\releases" `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--gap-disposition $EffectiveDisposition
}
$ReleaseDir = Join-Path $ProjectRoot ("build\releases\" + $ReleaseId)
$ReleaseManifest = Join-Path $ReleaseDir "release_manifest_v1.json"
if (-not (Test-Path $ReleaseManifest -PathType Leaf)) {
throw "finalize 已运行,但 release manifest 不存在: $ReleaseManifest"
}
$Final = Get-Content $ReleaseManifest -Raw | ConvertFrom-Json
if ([string]$Final.status -ne "PASS") {
throw "Final release manifest status != PASS"
}
# ----------------------------------------------------------------------
# STEP 14 - Save compact baseline summary
# ----------------------------------------------------------------------
$SummaryPath = ".\build\production\CM95_JAPAN_FULL_REBUILD_CURRENT.json"
$Summary = [ordered]@{
schema = "navsea.cm95.japan-full-rebuild-pipeline/v2"
completed_at = (Get-Date).ToString("o")
project_root = $ProjectRoot
source_root = $SourceRoot
database = $DbName
dataset_id = $DatasetId
source_cells = [int]$Audit.source_cells
source_geometry_validity_issues = [int]$Audit.geometry_validity_issues
audit_report = $AuditReport
mapping_gap_audit = $GapAudit
mapping_gap_closure = [string]$Closure.overall
effective_gap_disposition = $EffectiveDisposition
semantic_completeness = [string]$Final.semantic_completeness
semantic_backlog = $Final.semantic_backlog
fid_manifest = $Manifest
plan = $Plan
plan_id = [string]$PlanObj.plan_id
release_id = $ReleaseId
release_dir = $ReleaseDir
release_manifest = $ReleaseManifest
jobs = [int]$Status.jobs
pbf_files = [int]$Status.pbf_files
output_features = [int64]$Status.output_features
final_status = [string]$Final.status
}
$Summary |
ConvertTo-Json -Depth 12 |
Set-Content $SummaryPath -Encoding UTF8
Write-Step "PIPELINE COMPLETE / PASS"
Write-Host "Database : $DbName"
Write-Host "Dataset ID : $DatasetId"
Write-Host "Source cells : $($Audit.source_cells)"
Write-Host "Plan ID : $($PlanObj.plan_id)"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($Status.jobs) PASS"
Write-Host "PBF files : $($Status.pbf_files)"
Write-Host "Output features: $($Status.output_features)"
Write-Host "Final status : $($Final.status)"
Write-Host "Semantic : $($Final.semantic_completeness)"
Write-Host ""
Write-Host "Summary:"
Write-Host " $SummaryPath"
Write-Host ""
Write-Host "Release:"
Write-Host " $ReleaseDir"
Write-Host ""
Write-Host "Web test:"
Write-Host " cd `"$ProjectRoot`""
Write-Host " & `".\.venv\Scripts\python.exe`" .\web\cm95_web.py --release-id `"$ReleaseId`""
}
finally {
Remove-Item $TempRoot -Recurse -Force -ErrorAction SilentlyContinue
}

View File

@@ -0,0 +1,280 @@
param(
[string]$ProjectRoot = "D:\React\cm93-mysql-importer-starter",
[string]$SourceRoot = "D:\Ship\CM93V2\CM93JAPAN",
[int]$DatasetId = 1,
[int]$ExpectedCells = 1492,
[int]$Workers = 4,
[switch]$SkipQueryEquivalence
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
function Step([string]$Text) {
Write-Host ""
Write-Host "======================================================================"
Write-Host $Text
Write-Host "======================================================================"
}
function Run([string]$Label, [scriptblock]$Action) {
Step $Label
& $Action
$Code = $LASTEXITCODE
if ($null -ne $Code -and $Code -ne 0) {
throw "$Label FAILED (exit=$Code)"
}
}
function StateCount($States, [string]$Name) {
if ($null -eq $States) { return 0 }
$P = $States.PSObject.Properties[$Name]
if ($null -eq $P) { return 0 }
return [int]$P.Value
}
Set-Location $ProjectRoot
$Python = ".\.venv\Scripts\python.exe"
$Cm95Pbf = ".\.venv\Scripts\cm95pbf.exe"
$Mapping = ".\config\mappings\cm95_to_navsea_v1.yaml"
$Disposition = ".\config\mappings\cm95_gap_disposition_japan_dataset_1_v1.yaml"
$Policy = ".\config\pbf\cm95_tile_policy_japan_full_detail_v1.yaml"
$Manifest = ".\build\cm95_fid_manifest_japan_dataset_1_v1.sqlite"
$GapAudit = ".\build\production\cm95_global_mapping_gap_audit_dataset_1.json"
$Closure = ".\build\production\cm95_global_mapping_gap_closure_dataset_1_v1_4_6.json"
$MappingContract = ".\build\production\cm95_mapping_contract_check_japan_dataset_1_v1_4_6.json"
$Plan = ".\build\production\cm95_production_plan_japan_full_detail_v1_4_6.json"
$PlanAudit = ".\build\production\cm95_production_plan_audit_japan_full_detail_v1_4_6.json"
foreach ($Path in @($Python,$Cm95Pbf,$Mapping,$Disposition,$Policy)) {
if (-not (Test-Path $Path)) {
throw "Missing required file: $Path"
}
}
Run "STEP 0A - pip install v1.4.6 editable" {
& $Python -m pip install -e .
}
Run "STEP 0B - CM95 v1.4.6 preflight" {
& $Python ".\tools\cm95_v1_4_6_preflight.py"
}
# Verify the existing fresh Japan Dataset. No import / no DROP database.
Step "STEP 1 - Verify existing Japan Dataset"
$Tmp = Join-Path $env:TEMP ("cm95_japan_v146_" + $PID)
Remove-Item $Tmp -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Path $Tmp | Out-Null
try {
$Helper = Join-Path $Tmp "verify_dataset.py"
@'
from pathlib import Path
from dotenv import load_dotenv
import os, sys, json, pymysql
project_root = Path(sys.argv[1]).resolve()
dataset_id = int(sys.argv[2])
expected_root = str(Path(sys.argv[3]).resolve())
load_dotenv(dotenv_path=project_root / ".env")
conn = pymysql.connect(
host=os.getenv("CM93_DB_HOST", "127.0.0.1"),
port=int(os.getenv("CM93_DB_PORT", "3306")),
user=os.getenv("CM93_DB_USER", "root"),
password=os.getenv("CM93_DB_PASSWORD", ""),
database=os.getenv("CM93_DB_NAME", "cm93_chart"),
charset=os.getenv("CM93_DB_CHARSET", "utf8mb4"),
cursorclass=pymysql.cursors.DictCursor,
)
try:
with conn.cursor() as cur:
cur.execute(
"""
SELECT d.id,d.name,d.source_root,
COUNT(c.id) cells,
SUM(c.import_status='DONE') done_cells,
SUM(c.import_status='FAILED') failed_cells
FROM chart_dataset d
LEFT JOIN chart_cell c ON c.dataset_id=d.id
WHERE d.id=%s
GROUP BY d.id,d.name,d.source_root
""",
(dataset_id,),
)
row = cur.fetchone()
if not row:
raise RuntimeError(f"dataset {dataset_id} not found")
actual_root = str(Path(row["source_root"]).resolve())
if actual_root.lower() != expected_root.lower():
raise RuntimeError(f"source_root mismatch: {actual_root} != {expected_root}")
print(json.dumps({
"id": int(row["id"]),
"name": row["name"],
"source_root": actual_root,
"cells": int(row["cells"] or 0),
"done_cells": int(row["done_cells"] or 0),
"failed_cells": int(row["failed_cells"] or 0),
}, ensure_ascii=False))
finally:
conn.close()
'@ | Set-Content $Helper -Encoding UTF8
$DatasetText = (& $Python $Helper $ProjectRoot $DatasetId $SourceRoot | Out-String).Trim()
if ($LASTEXITCODE -ne 0) { throw "Dataset verification failed" }
$Dataset = $DatasetText | ConvertFrom-Json
if ([int]$Dataset.cells -ne $ExpectedCells -or
[int]$Dataset.done_cells -ne $ExpectedCells -or
[int]$Dataset.failed_cells -ne 0) {
throw "Dataset state mismatch: $DatasetText"
}
Write-Host $DatasetText
}
finally {
Remove-Item $Tmp -Recurse -Force -ErrorAction SilentlyContinue
}
if (-not $SkipQueryEquivalence) {
Run "STEP 2 - v1.4.5 vs v1.4.6 candidate query equivalence + SPATIAL plan" {
& $Python ".\tools\cm95_v1_4_6_query_equivalence.py" `
--dataset-id $DatasetId
}
}
else {
Step "STEP 2 - Query equivalence SKIPPED by user"
}
Run "STEP 3A - Re-run mapping gap audit" {
& $Python ".\tools\cm95_global_mapping_gap_audit_v1.py" `
--dataset-id $DatasetId `
--mapping $Mapping `
--output $GapAudit
}
Run "STEP 3B - Japan gap closure" {
& $Python ".\tools\cm95_global_mapping_gap_closure_audit_v2.py" `
--gap-audit $GapAudit `
--mapping $Mapping `
--disposition $Disposition `
--output $Closure
}
$C = Get-Content $Closure -Raw | ConvertFrom-Json
if ([string]$C.overall -ne "PASS") { throw "Mapping gap closure != PASS" }
if (@($C.unclassified_variants).Count -ne 0) { throw "Unclassified gap variants remain" }
Run "STEP 3C - Mapping / Style / Sprite contract" {
& $Python ".\tools\cm95_mapping_contract_check_v1.py" `
--mapping $Mapping `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--output $MappingContract
}
$MC = Get-Content $MappingContract -Raw | ConvertFrom-Json
if ([string]$MC.overall -ne "PASS") { throw "Mapping/style/sprite contract != PASS" }
# FID manifest is independent from builder query implementation; reuse when valid.
if (-not (Test-Path $Manifest)) {
Run "STEP 4 - FID manifest missing; rebuild" {
& $Cm95Pbf build-fid-manifest `
--dataset-id $DatasetId `
--manifest $Manifest `
--rebuild-fid-manifest
}
}
else {
Step "STEP 4 - Reuse existing FID manifest"
Write-Host $Manifest
}
# v1.4.6 builder contract changes the immutable plan hash, so create a NEW plan/release.
Run "STEP 5A - Create NEW v1.4.6 production plan" {
& $Cm95Pbf plan-production `
--dataset-id $DatasetId `
--zooms 0-12 `
--profile delivery `
--mapping $Mapping `
--policy $Policy `
--manifest $Manifest `
--output $Plan
}
Run "STEP 5B - Audit v1.4.6 production plan" {
& $Python ".\tools\cm95_production_plan_audit_v1.py" `
--plan $Plan `
--expected-zooms 0-12 `
--output $PlanAudit
}
$PA = Get-Content $PlanAudit -Raw | ConvertFrom-Json
if ([string]$PA.overall -ne "PASS") { throw "Production plan audit != PASS" }
$PlanObj = Get-Content $Plan -Raw | ConvertFrom-Json
if ([string]$PlanObj.builder_contract_version -ne "cm95pbf-builder/0.4.6-spatial-candidate-query") {
throw "Wrong builder contract in plan: $($PlanObj.builder_contract_version)"
}
$ReleaseId = [string]$PlanObj.release_id
Write-Host ""
Write-Host "Plan ID : $($PlanObj.plan_id)"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($PlanObj.job_count)"
Write-Host "Workers : $Workers"
# Deliberately do NOT migrate PASS jobs from v1.4.5 partial release.
# The new query must receive a clean production run for output equivalence/final gate.
Run "STEP 6 - Full v1.4.6 PBF production build" {
& $Cm95Pbf build-production `
--plan $Plan `
--release-root ".\build\releases" `
--workers $Workers `
--max-attempts 3
}
Step "STEP 7 - Production status"
$StatusText = (
& $Cm95Pbf status-production `
--plan $Plan `
--release-root ".\build\releases" |
Out-String
).Trim()
if ($LASTEXITCODE -ne 0) { throw "status-production failed" }
Write-Host $StatusText
$S = $StatusText | ConvertFrom-Json
$Pass = StateCount $S.states "PASS"
$Fail = StateCount $S.states "FAILED"
$Pending = StateCount $S.states "PENDING"
$Running = StateCount $S.states "RUNNING"
if ($Pass -ne [int]$S.jobs -or $Fail -ne 0 -or $Pending -ne 0 -or $Running -ne 0) {
throw "Production state gate failed"
}
Run "STEP 8 - Finalize v1.4.6 release" {
& $Cm95Pbf finalize-production `
--plan $Plan `
--release-root ".\build\releases" `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--gap-disposition $Disposition
}
$ReleaseManifest = ".\build\releases\$ReleaseId\release_manifest_v1.json"
if (-not (Test-Path $ReleaseManifest)) { throw "Release manifest missing" }
$Final = Get-Content $ReleaseManifest -Raw | ConvertFrom-Json
if ([string]$Final.status -ne "PASS") { throw "Final release status != PASS" }
Step "CM95 JAPAN v1.4.6 COMPLETE / PASS"
Write-Host "Dataset ID : $DatasetId"
Write-Host "Release ID : $ReleaseId"
Write-Host "Jobs : $($S.jobs)"
Write-Host "PBF files : $($S.pbf_files)"
Write-Host "Output features : $($S.output_features)"
Write-Host "Final status : $($Final.status)"
Write-Host "Semantic status : $($Final.semantic_completeness)"
Write-Host ""
Write-Host "Web test:"
Write-Host " cd `"$ProjectRoot`""
Write-Host " & `".\.venv\Scripts\python.exe`" .\web\cm95_web.py --release-id `"$ReleaseId`""

View File

@@ -0,0 +1,153 @@
param(
[string]$ProjectRoot = "D:\React\cm93-mysql-importer-starter"
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
function Step([string]$Text) {
Write-Host ""
Write-Host "======================================================================"
Write-Host $Text
Write-Host "======================================================================"
}
function Run([string]$Label, [scriptblock]$Action) {
Step $Label
& $Action
$Code = $LASTEXITCODE
if ($null -ne $Code -and $Code -ne 0) {
throw "$Label FAILED (exit=$Code)"
}
}
Set-Location $ProjectRoot
$Python = ".\.venv\Scripts\python.exe"
$Cm95Pbf = ".\.venv\Scripts\cm95pbf.exe"
$Plan = ".\build\production\cm95_production_plan_japan_full_detail_v1_4_6.json"
$ReleaseRoot = ".\build\releases"
$Disposition = ".\config\mappings\cm95_gap_disposition_japan_dataset_1_v1.yaml"
$ExpectedPlanId = "6bc3c1352da347b77256c83d8ab3b771fcde151d70332e8d96c6e50605cb5d8f"
$ExpectedReleaseId = "cm95-d1-62a85bd40d3a-6bc3c1352da3"
$ExpectedBuilder = "cm95pbf-builder/0.4.6-spatial-candidate-query"
foreach ($Path in @($Python,$Cm95Pbf,$Plan,$Disposition)) {
if (-not (Test-Path $Path)) {
throw "Missing required path: $Path"
}
}
Run "STEP 0A - pip install v1.4.7 editable" {
& $Python -m pip install -e .
}
Run "STEP 0B - CM95 v1.4.7 preflight" {
& $Python ".\tools\cm95_v1_4_7_preflight.py"
}
Step "STEP 1 - Verify existing v1.4.6 plan / release identity"
$PlanObj = Get-Content $Plan -Raw | ConvertFrom-Json
if ([string]$PlanObj.plan_id -ne $ExpectedPlanId) {
throw "Unexpected plan_id: $($PlanObj.plan_id)"
}
if ([string]$PlanObj.release_id -ne $ExpectedReleaseId) {
throw "Unexpected release_id: $($PlanObj.release_id)"
}
if ([string]$PlanObj.builder_contract_version -ne $ExpectedBuilder) {
throw "Unexpected builder contract: $($PlanObj.builder_contract_version)"
}
Write-Host "Plan ID : $($PlanObj.plan_id)"
Write-Host "Release ID : $($PlanObj.release_id)"
Write-Host "Builder : $($PlanObj.builder_contract_version)"
Write-Host "PBF rebuild : NO"
Step "STEP 2 - Verify existing production is already 27038/27038 PASS"
$StatusText = (
& $Cm95Pbf status-production `
--plan $Plan `
--release-root $ReleaseRoot |
Out-String
).Trim()
if ($LASTEXITCODE -ne 0) { throw "status-production failed" }
Write-Host $StatusText
$S = $StatusText | ConvertFrom-Json
if ([int]$S.jobs -ne 27038 -or
[int]$S.attempts -ne 27038 -or
[int64]$S.output_features -ne 2974375 -or
[int]$S.pbf_files -ne 27030 -or
[int]$S.states.PASS -ne 27038) {
throw "Existing production baseline does not match expected completed v1.4.6 release"
}
$ReleaseDir = Join-Path $ReleaseRoot $ExpectedReleaseId
$AuditJson = ".\build\production\cm95_nav_name_conflicts_v1_4_7_precheck.json"
$AuditCsv = ".\build\production\cm95_nav_name_conflicts_v1_4_7_precheck.csv"
Run "STEP 3 - Re-audit the 10 trace occurrences / 4 unique ambiguous outputs" {
& $Python ".\tools\cm95_nav_name_conflict_audit_v1.py" `
--release-dir $ReleaseDir `
--profile delivery `
--output-json $AuditJson `
--output-csv $AuditCsv
}
$A = Get-Content $AuditJson -Raw | ConvertFrom-Json
if ([int]$A.report_name_conflict_occurrences -ne 10 -or
[int]$A.trace_name_conflict_occurrences -ne 10 -or
[int]$A.unique_conflict_outputs -ne 4 -or
[int]$A.affected_tiles -ne 3) {
throw "Nav name conflict baseline changed unexpectedly"
}
Run "STEP 4 - Finalize EXISTING PBF release with audited ambiguous-name omission gate" {
& $Cm95Pbf finalize-production `
--plan $Plan `
--release-root $ReleaseRoot `
--style ".\config\style\style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json" `
--sprite-json ".\config\sprite\semantic-sprite-20260808.json" `
--gap-disposition $Disposition
}
$Manifest = Join-Path $ReleaseDir "release_manifest_v1.json"
if (-not (Test-Path $Manifest)) {
throw "release manifest missing: $Manifest"
}
$F = Get-Content $Manifest -Raw | ConvertFrom-Json
if ([string]$F.status -ne "PASS") {
throw "release manifest status != PASS"
}
if ([string]$F.nav_name_conflict_audit.overall -ne "PASS") {
throw "nav_name_conflict_audit != PASS"
}
if ([int]$F.nav_name_conflict_audit.report_occurrences -ne 10 -or
[int]$F.nav_name_conflict_audit.trace_occurrences -ne 10 -or
[int]$F.nav_name_conflict_audit.safe_omission_occurrences -ne 10 -or
[int]$F.nav_name_conflict_audit.unique_conflict_outputs -ne 4 -or
[int]$F.nav_name_conflict_audit.affected_tiles -ne 3 -or
[int]$F.nav_name_conflict_audit.labeled_conflict_occurrences -ne 0 -or
[int]$F.nav_name_conflict_audit.missing_pbf_occurrences -ne 0) {
throw "audited ambiguous-name omission counts differ from expected baseline"
}
if ([int64]$F.planned_output_features -ne 2974375 -or
[int64]$F.decoded_pbf_features -ne 2974375) {
throw "feature count changed unexpectedly"
}
if ([string]$F.style_sprite_contract.overall -ne "PASS") {
throw "style/sprite contract != PASS"
}
Step "CM95 JAPAN v1.4.7 FINALIZE COMPLETE / PASS"
Write-Host "Release ID : $ExpectedReleaseId"
Write-Host "PBF rebuilt : NO"
Write-Host "Jobs : 27038 / 27038 PASS"
Write-Host "Decoded features : $($F.decoded_pbf_features)"
Write-Host "Ambiguous-name occurrences: $($F.nav_name_conflict_audit.report_occurrences)"
Write-Host "Unique ambiguous outputs : $($F.nav_name_conflict_audit.unique_conflict_outputs)"
Write-Host "Labels safely omitted : $($F.nav_name_conflict_audit.safe_omission_occurrences)"
Write-Host "Unsafe labels : $($F.nav_name_conflict_audit.labeled_conflict_occurrences)"
Write-Host "Style/Sprite : $($F.style_sprite_contract.overall)"
Write-Host "Semantic completeness : $($F.semantic_completeness)"
Write-Host "FINAL STATUS : $($F.status)"
Write-Host "Manifest : $Manifest"

2
src/cm95pbf/__init__.py Normal file
View File

@@ -0,0 +1,2 @@
__version__ = "0.4.7-production-audited-nav-name-conflict-omission"
BUILDER_CONTRACT_VERSION = "cm95pbf-builder/0.4.6-spatial-candidate-query"

1939
src/cm95pbf/builder.py Normal file

File diff suppressed because it is too large Load Diff

360
src/cm95pbf/cli.py Normal file
View File

@@ -0,0 +1,360 @@
from __future__ import annotations
import argparse
import json
from pathlib import Path
from cm93db.config import load_config
from .builder import Cm95TileBuilder, TileJob
from .identity import build_manifest
from .policy import child_tiles
from .production import (
create_production_plan,
migrate_production_release,
parse_zooms,
production_status,
run_production_plan,
)
from .release import finalize_release
DEFAULT_MAPPING = Path("config/mappings/cm95_to_navsea_v1.yaml")
DEFAULT_POLICY = Path("config/pbf/cm95_tile_policy_v1.yaml")
DEFAULT_MANIFEST = Path("build/cm95_fid_manifest_v1.sqlite")
def _add_common_db(p):
p.add_argument("--dataset-id", type=int, default=1)
def build_parser() -> argparse.ArgumentParser:
p = argparse.ArgumentParser(
prog="cm95pbf",
description="CM95 MySQL → NavSea-compatible MVT/PBF pilot generator",
)
sub = p.add_subparsers(dest="command", required=True)
manifest = sub.add_parser(
"build-fid-manifest",
help="建立全 Dataset 确定性 int32 MVT Feature ID 清单",
)
_add_common_db(manifest)
manifest.add_argument("--manifest", default=str(DEFAULT_MANIFEST))
manifest.add_argument("--rebuild-fid-manifest", action="store_true")
tile = sub.add_parser(
"build-tile",
help="生成单张 CM95 NavSea-compatible PBF",
)
_add_common_db(tile)
tile.add_argument("--z", type=int, required=True)
tile.add_argument("--x", type=int, required=True)
tile.add_argument("--y", type=int, required=True)
tile.add_argument("--profile", choices=["engineering", "delivery"], default="delivery")
tile.add_argument("--mapping", default=str(DEFAULT_MAPPING))
tile.add_argument("--policy", default=str(DEFAULT_POLICY))
tile.add_argument("--manifest", default=str(DEFAULT_MANIFEST))
tile.add_argument("--output-root", default="build/pbf")
tile.add_argument("--report-root", default="build/pbf-reports")
sample = sub.add_parser(
"build-sample-aoi",
help="生成 z10 parent + z11 children + z12 grandchildren,共 21 张测试 tile",
)
_add_common_db(sample)
sample.add_argument("--z10-x", type=int, default=914)
sample.add_argument("--z10-y", type=int, default=385)
sample.add_argument(
"--profiles",
default="engineering,delivery",
help="逗号分隔:engineering,delivery",
)
sample.add_argument("--mapping", default=str(DEFAULT_MAPPING))
sample.add_argument("--policy", default=str(DEFAULT_POLICY))
sample.add_argument("--manifest", default=str(DEFAULT_MANIFEST))
sample.add_argument("--output-root", default="build/pbf")
sample.add_argument("--report-root", default="build/pbf-reports")
prod_plan = sub.add_parser(
"plan-production",
help="按 Dataset coverage 枚举生产 tile,并冻结不可变生成计划",
)
_add_common_db(prod_plan)
prod_plan.add_argument("--zooms", default="0-12", help="缩放级别,支持 0-12 或 0,1,...,12")
prod_plan.add_argument("--profile", choices=["engineering", "delivery"], default="delivery")
prod_plan.add_argument("--mapping", default=str(DEFAULT_MAPPING))
prod_plan.add_argument("--policy", default=str(DEFAULT_POLICY))
prod_plan.add_argument("--manifest", default=str(DEFAULT_MANIFEST))
prod_plan.add_argument("--output", default="build/production/cm95_production_plan_v1.json")
prod_build = sub.add_parser(
"build-production",
help="按冻结计划批量生成,支持断点续跑、并发和失败重试",
)
prod_build.add_argument("--plan", default="build/production/cm95_production_plan_v1.json")
prod_build.add_argument("--release-root", default="build/releases")
prod_build.add_argument("--workers", type=int, default=4)
prod_build.add_argument("--max-attempts", type=int, default=3)
prod_migrate = sub.add_parser(
"migrate-production-release",
help="把旧 release 的 delivery-equivalent PASS tile 复用到新计划,只重建受影响/失败任务(支持 builder contract 升级)",
)
prod_migrate.add_argument("--old-release-dir", required=True)
prod_migrate.add_argument("--new-plan", default="build/production/cm95_production_plan_v1_4_5.json")
prod_migrate.add_argument("--release-root", default="build/releases")
prod_migrate.add_argument("--copy-mode", choices=["hardlink", "copy"], default="hardlink")
prod_migrate.add_argument(
"--invalidate-tiles-file",
default=None,
help="每行一个 z/x/y;这些旧 PASS tile 强制留为 PENDING,适用于 builder contract 的定向重建",
)
prod_status = sub.add_parser(
"status-production",
help="查看生产计划当前账本状态",
)
prod_status.add_argument("--plan", default="build/production/cm95_production_plan_v1.json")
prod_status.add_argument("--release-root", default="build/releases")
prod_final = sub.add_parser(
"finalize-production",
help="对完成的生产产物做三方计数/FID/哈希盘点并生成 release manifest",
)
prod_final.add_argument("--plan", default="build/production/cm95_production_plan_v1.json")
prod_final.add_argument("--release-root", default="build/releases")
prod_final.add_argument("--style", default="config/style/style.navsea-delivery-full-semantic-unified-20260808-cm95-v1.json")
prod_final.add_argument("--sprite-json", default="config/sprite/semantic-sprite-20260808.json")
prod_final.add_argument("--gap-disposition", default="config/mappings/cm95_gap_disposition_v1.yaml")
return p
def ensure_manifest(dataset_id: int, manifest_path: Path) -> dict:
cfg = load_config()
with __import__("pymysql").connect(
host=cfg.host,
port=cfg.port,
user=cfg.user,
password=cfg.password,
database=cfg.database,
charset=cfg.charset,
cursorclass=__import__("pymysql").cursors.DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
) as conn:
return build_manifest(
conn,
dataset_id,
manifest_path,
rebuild=False,
)
def main() -> None:
args = build_parser().parse_args()
cfg = load_config()
if args.command == "plan-production":
manifest_path = Path(args.manifest)
if not manifest_path.exists():
print("FID manifest 不存在,先自动建立。")
print(json.dumps(ensure_manifest(args.dataset_id, manifest_path), ensure_ascii=False, indent=2))
result = create_production_plan(
db=cfg,
dataset_id=args.dataset_id,
mapping_path=Path(args.mapping),
policy_path=Path(args.policy),
manifest_path=manifest_path,
output_path=Path(args.output),
zooms=parse_zooms(args.zooms),
profile=args.profile,
)
print(json.dumps({
"plan_id": result["plan_id"],
"release_id": result["release_id"],
"job_count": result["job_count"],
"source_stats": result["source_stats"],
"output": str(Path(args.output)),
}, ensure_ascii=False, indent=2))
return
if args.command == "build-production":
result = run_production_plan(
db=cfg,
plan_path=Path(args.plan),
release_root=Path(args.release_root),
workers=args.workers,
max_attempts=args.max_attempts,
)
print(json.dumps(result, ensure_ascii=False, indent=2))
states = result.get("states") or {}
if states.get("FAILED", 0) or states.get("PENDING", 0) or states.get("RUNNING", 0):
raise SystemExit(2)
return
if args.command == "migrate-production-release":
result = migrate_production_release(
old_release_dir=Path(args.old_release_dir),
new_plan_path=Path(args.new_plan),
release_root=Path(args.release_root),
copy_mode=args.copy_mode,
invalidate_tiles_file=(Path(args.invalidate_tiles_file) if args.invalidate_tiles_file else None),
)
print(json.dumps(result, ensure_ascii=False, indent=2))
return
if args.command == "status-production":
print(json.dumps(production_status(Path(args.plan), Path(args.release_root)), ensure_ascii=False, indent=2))
return
if args.command == "finalize-production":
result = finalize_release(
Path(args.plan),
Path(args.release_root),
Path(args.style) if args.style else None,
Path(args.sprite_json) if args.sprite_json else None,
Path(args.gap_disposition) if args.gap_disposition else None,
)
print(json.dumps({
"status": result["status"],
"release_id": result["release_id"],
"planned_tile_jobs": result["planned_tile_jobs"],
"pbf_file_count": result["pbf_file_count"],
"planned_output_features": result["planned_output_features"],
"decoded_pbf_features": result["decoded_pbf_features"],
"semantic_completeness": result.get("semantic_completeness"),
"semantic_backlog": result.get("semantic_backlog"),
"non_renderable_omissions": result.get("non_renderable_omissions"),
"non_renderable_omission_layers": result.get("non_renderable_omission_layers"),
"style_sprite_contract": {
"overall": (result.get("style_sprite_contract") or {}).get("overall"),
"contract_unmatched_count": (result.get("style_sprite_contract") or {}).get("contract_unmatched_count"),
"sprite_missing_count": (result.get("style_sprite_contract") or {}).get("sprite_missing_count"),
},
"quantization_fallbacks": result.get("quantization_fallbacks"),
"quantization_omissions": result.get("quantization_omissions"),
"nav_name_conflict_audit": {
"overall": (result.get("nav_name_conflict_audit") or {}).get("overall"),
"policy": (result.get("nav_name_conflict_audit") or {}).get("policy"),
"report_occurrences": (result.get("nav_name_conflict_audit") or {}).get("report_occurrences"),
"trace_occurrences": (result.get("nav_name_conflict_audit") or {}).get("trace_occurrences"),
"safe_omission_occurrences": (result.get("nav_name_conflict_audit") or {}).get("safe_omission_occurrences"),
"unique_conflict_outputs": (result.get("nav_name_conflict_audit") or {}).get("unique_conflict_outputs"),
"affected_tiles": (result.get("nav_name_conflict_audit") or {}).get("affected_tiles"),
},
"failures": result["failures"],
}, ensure_ascii=False, indent=2))
if result["status"] != "PASS":
raise SystemExit(2)
return
if args.command == "build-fid-manifest":
import pymysql
with pymysql.connect(
host=cfg.host,
port=cfg.port,
user=cfg.user,
password=cfg.password,
database=cfg.database,
charset=cfg.charset,
cursorclass=pymysql.cursors.DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
) as conn:
result = build_manifest(
conn,
args.dataset_id,
Path(args.manifest),
rebuild=bool(args.rebuild_fid_manifest),
)
print(json.dumps(result, ensure_ascii=False, indent=2))
return
manifest_path = Path(args.manifest)
if not manifest_path.exists():
print("FID manifest 不存在,先自动建立。")
print(
json.dumps(
ensure_manifest(args.dataset_id, manifest_path),
ensure_ascii=False,
indent=2,
)
)
if args.command == "build-tile":
builder = Cm95TileBuilder(
db=cfg,
dataset_id=args.dataset_id,
mapping_path=Path(args.mapping),
policy_path=Path(args.policy),
fid_manifest_path=manifest_path,
output_root=Path(args.output_root) / args.profile,
report_root=Path(args.report_root),
profile=args.profile,
)
result = builder.build_tile(
TileJob(args.z, args.x, args.y)
)
print(json.dumps(result, ensure_ascii=False, indent=2))
return
if args.command == "build-sample-aoi":
profiles = [
token.strip()
for token in str(args.profiles).split(",")
if token.strip()
]
for profile in profiles:
if profile not in {"engineering", "delivery"}:
raise SystemExit(f"invalid profile: {profile}")
jobs = [(10, args.z10_x, args.z10_y)]
jobs.extend(child_tiles(10, args.z10_x, args.z10_y, 11))
jobs.extend(child_tiles(10, args.z10_x, args.z10_y, 12))
results = []
for profile in profiles:
builder = Cm95TileBuilder(
db=cfg,
dataset_id=args.dataset_id,
mapping_path=Path(args.mapping),
policy_path=Path(args.policy),
fid_manifest_path=manifest_path,
output_root=Path(args.output_root) / profile,
report_root=Path(args.report_root),
profile=profile,
)
for z, x, y in jobs:
result = builder.build_tile(TileJob(z, x, y))
results.append(result)
print(
f"[{profile}] {z}/{x}/{y} "
f"features={result['output_feature_count']} "
f"layers={result['output_layer_count']} "
f"hard_gate_unmapped={len(result['hard_gate_unmapped'])}"
)
summary = {
"dataset_id": args.dataset_id,
"root_tile": f"10/{args.z10_x}/{args.z10_y}",
"profiles": profiles,
"tile_count_per_profile": len(jobs),
"results": results,
}
summary_path = Path(args.report_root) / "sample_aoi_summary_v1.json"
summary_path.parent.mkdir(parents=True, exist_ok=True)
summary_path.write_text(
json.dumps(summary, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print(f"SUMMARY: {summary_path}")
return
if __name__ == "__main__":
main()

329
src/cm95pbf/identity.py Normal file
View File

@@ -0,0 +1,329 @@
from __future__ import annotations
import hashlib
from pathlib import Path
import sqlite3
from typing import Iterable
ROLE_PRIMARY = 0
ROLE_BOUNDARY = 1
ROLE_POINT_ON_SURFACE = 2
ROLE_SECONDARY = 3
ROLE_FACTOR = 16
MAX_SIGNED_INT32 = (1 << 31) - 1
def feature_source_key(
dataset_id: int,
source_relative_path: str,
source_record_index: int,
geometry_type: str,
) -> str:
path = str(source_relative_path).replace("\\", "/")
return (
f"cm95:{int(dataset_id)}:{path}:"
f"{int(source_record_index)}:{str(geometry_type).lower()}"
)
def sounding_source_key(
dataset_id: int,
source_relative_path: str,
source_record_index: int,
point_index: int,
) -> str:
return (
feature_source_key(
dataset_id,
source_relative_path,
source_record_index,
"SOUNDING",
)
+ f":point:{int(point_index)}"
)
def dataset_fingerprint(conn, dataset_id: int) -> str:
h = hashlib.sha256()
with conn.cursor() as cur:
cur.execute(
"""
SELECT
source_relative_path,
COALESCE(source_sha256,'') AS source_sha256,
source_size,
scale_code,
native_scale
FROM chart_cell
WHERE dataset_id=%s
ORDER BY source_relative_path
""",
(dataset_id,),
)
for row in cur.fetchall():
line = (
f"{row['source_relative_path']}|{row['source_sha256']}|"
f"{row['source_size']}|{row['scale_code']}|{row['native_scale']}\n"
)
h.update(line.encode("utf-8"))
return h.hexdigest()
class FidManifest:
def __init__(self, path: Path):
self.path = Path(path)
self.db: sqlite3.Connection | None = None
def open(self) -> "FidManifest":
self.path.parent.mkdir(parents=True, exist_ok=True)
self.db = sqlite3.connect(self.path)
self.db.row_factory = sqlite3.Row
return self
def close(self) -> None:
if self.db is not None:
self.db.close()
self.db = None
def __enter__(self) -> "FidManifest":
return self.open()
def __exit__(self, exc_type, exc, tb) -> None:
self.close()
def _require(self) -> sqlite3.Connection:
if self.db is None:
raise RuntimeError("manifest not open")
return self.db
def init_schema(self) -> None:
db = self._require()
db.executescript(
"""
CREATE TABLE IF NOT EXISTS manifest_meta (
k TEXT PRIMARY KEY,
v TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS manifest_identity (
source_key TEXT PRIMARY KEY,
base_ord INTEGER NOT NULL UNIQUE,
source_kind TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_manifest_identity_ord
ON manifest_identity(base_ord);
"""
)
db.commit()
def clear(self) -> None:
db = self._require()
self.init_schema()
db.execute("DELETE FROM manifest_identity")
db.execute("DELETE FROM manifest_meta")
db.commit()
def set_meta(self, key: str, value: str) -> None:
db = self._require()
db.execute(
"INSERT OR REPLACE INTO manifest_meta(k,v) VALUES(?,?)",
(str(key), str(value)),
)
def get_meta(self, key: str) -> str | None:
db = self._require()
row = db.execute(
"SELECT v FROM manifest_meta WHERE k=?",
(str(key),),
).fetchone()
return None if row is None else str(row["v"])
def insert_many(self, rows: Iterable[tuple[str, int, str]]) -> None:
db = self._require()
db.executemany(
"""
INSERT INTO manifest_identity(source_key,base_ord,source_kind)
VALUES(?,?,?)
""",
rows,
)
def commit(self) -> None:
self._require().commit()
def base_ord(self, source_key: str) -> int:
db = self._require()
row = db.execute(
"SELECT base_ord FROM manifest_identity WHERE source_key=?",
(source_key,),
).fetchone()
if row is None:
raise KeyError(f"source identity missing from manifest: {source_key}")
return int(row["base_ord"])
def mvt_id(self, source_key: str, role_code: int = ROLE_PRIMARY) -> int:
if role_code < 0 or role_code >= ROLE_FACTOR:
raise ValueError(f"invalid role code: {role_code}")
value = self.base_ord(source_key) * ROLE_FACTOR + int(role_code)
if value > MAX_SIGNED_INT32:
raise RuntimeError(
"deterministic fid exceeded signed int32; "
"increase identity design before publishing"
)
return value
def build_manifest(
mysql_conn,
dataset_id: int,
manifest_path: Path,
rebuild: bool = False,
) -> dict:
fingerprint = dataset_fingerprint(mysql_conn, dataset_id)
with FidManifest(manifest_path) as manifest:
manifest.init_schema()
old_dataset = manifest.get_meta("dataset_id")
old_fingerprint = manifest.get_meta("dataset_fingerprint")
if old_dataset is not None and not rebuild:
if old_dataset == str(dataset_id) and old_fingerprint == fingerprint:
count = int(
manifest._require()
.execute("SELECT COUNT(*) FROM manifest_identity")
.fetchone()[0]
)
return {
"status": "REUSED",
"dataset_id": dataset_id,
"dataset_fingerprint": fingerprint,
"identity_count": count,
"manifest": str(manifest_path),
}
raise RuntimeError(
"existing fid manifest belongs to a different dataset state; "
"run with --rebuild-fid-manifest"
)
manifest.clear()
base_ord = 0
batch: list[tuple[str, int, str]] = []
with mysql_conn.cursor() as cur:
cur.execute(
"""
SELECT
c.source_relative_path,
f.source_record_index,
f.geometry_type
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
ORDER BY
c.source_relative_path,
f.source_record_index,
f.geometry_type
""",
(dataset_id,),
)
while True:
mysql_batch = cur.fetchmany(5000)
if not mysql_batch:
break
for row in mysql_batch:
base_ord += 1
batch.append(
(
feature_source_key(
dataset_id,
row["source_relative_path"],
row["source_record_index"],
row["geometry_type"],
),
base_ord,
"feature",
)
)
manifest.insert_many(batch)
batch.clear()
feature_identity_count = base_ord
cur.execute(
"""
SELECT
c.source_relative_path,
f.source_record_index,
s.point_index
FROM chart_sounding_point s
JOIN chart_feature f ON f.id=s.feature_id
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
ORDER BY
c.source_relative_path,
f.source_record_index,
s.point_index
""",
(dataset_id,),
)
while True:
mysql_batch = cur.fetchmany(5000)
if not mysql_batch:
break
for row in mysql_batch:
base_ord += 1
batch.append(
(
sounding_source_key(
dataset_id,
row["source_relative_path"],
row["source_record_index"],
row["point_index"],
),
base_ord,
"sounding_point",
)
)
manifest.insert_many(batch)
batch.clear()
manifest.set_meta("schema", "navsea.cm95.fid-manifest/v1")
manifest.set_meta("dataset_id", str(dataset_id))
manifest.set_meta("dataset_fingerprint", fingerprint)
manifest.set_meta("role_factor", str(ROLE_FACTOR))
manifest.set_meta("feature_identity_count", str(feature_identity_count))
manifest.set_meta("identity_count", str(base_ord))
manifest.commit()
return {
"status": "BUILT",
"dataset_id": dataset_id,
"dataset_fingerprint": fingerprint,
"feature_identity_count": feature_identity_count,
"identity_count": base_ord,
"manifest": str(manifest_path),
}
def validate_manifest(mysql_conn, dataset_id: int, manifest_path: Path) -> dict:
fingerprint = dataset_fingerprint(mysql_conn, dataset_id)
with FidManifest(manifest_path) as manifest:
manifest.init_schema()
dataset = manifest.get_meta("dataset_id")
stored_fp = manifest.get_meta("dataset_fingerprint")
if dataset != str(dataset_id) or stored_fp != fingerprint:
raise RuntimeError(
"fid manifest does not match current dataset; rebuild required"
)
count = int(
manifest._require()
.execute("SELECT COUNT(*) FROM manifest_identity")
.fetchone()[0]
)
return {
"dataset_id": dataset_id,
"dataset_fingerprint": fingerprint,
"identity_count": count,
"manifest": str(manifest_path),
}

495
src/cm95pbf/mapping.py Normal file
View File

@@ -0,0 +1,495 @@
from __future__ import annotations
import json
from pathlib import Path
from typing import Any
import yaml
DELIVERY_PROPERTY_ALLOWLIST = frozenset(
{
"canonical_object_type",
"class_code",
"chart_fill_pattern",
"chart_fill_style",
"chart_icon_image",
"chart_label_position_code",
"chart_label_subtext",
"chart_label_text",
"chart_line_color",
"chart_line_width",
"chart_symbol_code",
"chart_text_color",
"chart_text_style",
"clearance_height_m",
"depth_value_m",
"display_code",
"least_depth_m",
"light_color_code",
"light_sector_mode",
"arc_id",
"arc_source_code",
"name_ja",
"place_name_en",
"shape_class_code",
}
)
DELIVERY_MAIN_STATUSES = frozenset(
{
"MAPPED",
"MAPPED_CONDITIONAL",
"COMPOSITE",
"MAPPED_DERIVED_POINTS",
}
)
DELIVERY_DERIVED_STATUSES = frozenset(
{
"MAPPED",
"MAPPED_CONDITIONAL",
"DERIVED_LABEL_ONLY",
}
)
NAV_COMPONENT_CLASSES = frozenset(
{
"LIGHTS",
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
}
)
LIGHT_COLOUR = {
1: ("white", "W"),
3: ("red", "R"),
4: ("green", "G"),
6: ("yellow", "Y"),
}
LIGHT_CHARACTER = {
1: "F",
2: "Fl",
3: "LFl",
4: "Q",
5: "VQ",
6: "UQ",
7: "Iso",
8: "Oc",
9: "IQ",
10: "IVQ",
11: "IUQ",
12: "Mo",
13: "F+Fl",
14: "Fl+LFl",
15: "Oc+Fl",
16: "F+LFl",
17: "Al.Oc",
18: "Al.LFl",
19: "Al.Fl",
20: "Al.Gr",
21: "Q+LFl",
22: "VQ+LFl",
23: "UQ+LFl",
}
NATSUR_TEXT = {
1: "M",
2: "Cy",
3: "Si",
4: "S",
5: "St",
6: "G",
7: "P",
8: "Cb",
9: "R",
11: "Lv",
14: "Co",
17: "Sh",
18: "Bo",
}
def scalarize(value: Any) -> Any:
if value is None:
return None
if isinstance(value, bool):
return value
if isinstance(value, (int, float, str)):
return value
if isinstance(value, (list, dict, tuple)):
return json.dumps(value, ensure_ascii=False, separators=(",", ":"))
return str(value)
def get_path(data: dict[str, Any], path: str) -> Any:
cur: Any = data
for token in str(path).split("."):
if isinstance(cur, dict) and token in cur:
cur = cur[token]
else:
return None
return cur
def first_direct_name(attrs: dict[str, Any]) -> str | None:
"""Return a direct source-owned navigation name, never a proximity-derived text."""
for key in ("OBJNAM", "NOBJNM"):
value = attrs.get(key)
if isinstance(value, str):
value = value.strip()
if value:
return value
return None
def unique_direct_names(rows: list[dict[str, Any]]) -> list[str]:
out: list[str] = []
for attrs in rows:
value = first_direct_name(attrs)
if value and value not in out:
out.append(value)
return out
def format_number(value: Any) -> str:
if value is None:
return ""
try:
v = float(value)
except Exception:
return str(value)
if abs(v - round(v)) < 1e-9:
return str(int(round(v)))
return f"{v:.2f}".rstrip("0").rstrip(".")
def format_depth(value: Any) -> str | None:
if value is None:
return None
return format_number(value)
def format_clearance(value: Any) -> str | None:
if value is None:
return None
return f"{format_number(value)}m"
def _depth_token(value: Any) -> str:
return format_number(value)
# Current NavSea unified style only consumes these depth-area buckets.
# Keep this list aligned with style.navsea-delivery-full-semantic-unified-20260808.
NAVSEA_DEPTH_ZONE_INTERVALS: tuple[tuple[float, float, str], ...] = (
(0, 2, "depth_zone_0-2m"),
(0, 5, "depth_zone_0-5m"),
(0, 10, "depth_zone_0-10m"),
(0, 20, "depth_zone_0-20m"),
(2, 5, "depth_zone_2-5m"),
(2, 10, "depth_zone_2-10m"),
(2, 20, "depth_zone_2-20m"),
(5, 10, "depth_zone_5-10m"),
(5, 20, "depth_zone_5-20m"),
(10, 20, "depth_zone_10-20m"),
(20, 100, "depth_zone_20-100m"),
(20, 200, "depth_zone_20-200m"),
(100, 200, "depth_zone_100-200m"),
(200, 500, "depth_zone_200-500m"),
(500, 1000, "depth_zone_500-1000m"),
(1000, 2000, "depth_zone_1000-2000m"),
(2000, 3000, "depth_zone_2000-3000m"),
(3000, 4000, "depth_zone_3000-4000m"),
(4000, 5000, "depth_zone_4000-5000m"),
(5000, 6000, "depth_zone_5000-6000m"),
(6000, 7000, "depth_zone_6000-7000m"),
(7000, 8000, "depth_zone_7000-8000m"),
(8000, 9000, "depth_zone_8000-9000m"),
)
def _smallest_supported_depth_bucket(lo: float, hi: float | None) -> str | None:
if lo >= 9000 and (hi is None or hi >= lo):
return "depth_zone_over_9000m"
candidates: list[tuple[float, float, float, str]] = []
for bucket_lo, bucket_hi, token in NAVSEA_DEPTH_ZONE_INTERVALS:
if hi is None:
# A lower-bounded zone uses the tightest bucket containing the lower bound.
if bucket_lo <= lo < bucket_hi:
width = bucket_hi - bucket_lo
edge_distance = abs(bucket_lo - lo)
candidates.append((width, edge_distance, -bucket_lo, token))
else:
# Prefer the smallest supported interval that fully contains the source range.
if bucket_lo <= lo and hi <= bucket_hi:
width = bucket_hi - bucket_lo
edge_distance = abs(bucket_lo - lo) + abs(bucket_hi - hi)
candidates.append((width, edge_distance, -bucket_lo, token))
if not candidates:
return None
candidates.sort()
return candidates[0][3]
def depth_zone_style(lo: Any, hi: Any) -> str:
"""Normalize CM95 depth ranges to the existing NavSea style vocabulary.
Arbitrary CM95 intervals such as 7.5-10m, 13-20m or 20-50m must never
leak into delivery PBF because the current style does not consume them.
The chosen style bucket is the smallest existing NavSea interval that fully
contains the source range. The original DRVAL1/DRVAL2 remain available in
engineering trace/source attributes.
"""
if lo is None and hi is None:
return "water_area"
try:
lv = float(lo) if lo is not None else 0.0
except Exception:
return "water_area"
hv: float | None
if hi is None:
hv = None
else:
try:
hv = float(hi)
except Exception:
hv = None
if hv is not None and hv < lv:
lv, hv = hv, lv
token = _smallest_supported_depth_bucket(lv, hv)
if token is not None:
return token
# No truthful single bucket exists in the current style vocabulary.
# Use neutral water rather than inventing a style value that will not render.
return "water_area"
def format_natsur(natsur: Any, natqua: Any) -> str | None:
values = natsur if isinstance(natsur, list) else [natsur] if natsur is not None else []
parts: list[str] = []
for value in values:
try:
code = int(value)
except Exception:
code = None
text = NATSUR_TEXT.get(code, str(value) if value is not None else "")
if text and text not in parts:
parts.append(text)
if not parts:
return None
return "/".join(parts)
def s57_light_color(colour: Any) -> str | None:
values = colour if isinstance(colour, list) else [colour] if colour is not None else []
for value in values:
try:
code = int(value)
except Exception:
continue
if code in LIGHT_COLOUR:
return LIGHT_COLOUR[code][0]
return None
def light_colour_abbrs(colour: Any) -> list[str]:
values = colour if isinstance(colour, list) else [colour] if colour is not None else []
out: list[str] = []
for value in values:
try:
code = int(value)
except Exception:
continue
item = LIGHT_COLOUR.get(code)
if item and item[1] not in out:
out.append(item[1])
return out
def format_light_abbreviation(attrs: dict[str, Any]) -> str | None:
parts: list[str] = []
litchr = attrs.get("LITCHR")
if litchr is not None:
try:
char = LIGHT_CHARACTER.get(int(litchr), f"L{int(litchr)}")
except Exception:
char = str(litchr)
siggrp = attrs.get("SIGGRP")
if siggrp and str(siggrp) not in {"(1)", "1"}:
char += str(siggrp)
parts.append(char)
colours = light_colour_abbrs(attrs.get("COLOUR"))
if colours:
parts.append(",".join(colours))
if attrs.get("SIGPER") is not None:
parts.append(f"{format_number(attrs['SIGPER'])}s")
if attrs.get("HEIGHT") is not None:
parts.append(f"{format_number(attrs['HEIGHT'])}m")
if attrs.get("VALNMR") is not None:
parts.append(f"{format_number(attrs['VALNMR'])}M")
if not parts:
colours = light_colour_abbrs(attrs.get("COLOUR"))
if colours:
return ",".join(colours)
return None
return " ".join(parts)
def nav_icon_from_bcnlat(attrs: dict[str, Any], lighted: bool = False) -> str:
try:
cat = int(attrs.get("CATLAM"))
except Exception:
cat = 0
suffix = {
1: "port",
2: "starboard",
3: "starboard",
4: "port",
}.get(cat, "special")
if lighted:
return f"beacon_light_mark_{suffix}"
return f"beacon_small_{suffix}"
def nav_icon_from_bcnspp(attrs: dict[str, Any], lighted: bool = False) -> str:
return "beacon_light_mark_special" if lighted else "beacon_small_special"
def nav_icon_from_boyspp(attrs: dict[str, Any], lighted: bool = False) -> str:
try:
shape = int(attrs.get("BOYSHP"))
except Exception:
shape = 0
if lighted:
if shape == 4:
return "buoy_pillar_light_special"
return "buoy_light_special"
return {
1: "buoy_cone",
2: "buoy_cylinder",
3: "buoy_sphere",
4: "buoy_pillar",
6: "buoy_barrel_light",
}.get(shape, "buoy_lattice_special")
def nav_icon_from_rtpbcn(attrs: dict[str, Any], lighted: bool = False) -> str:
return "beacon_light" if lighted else "beacon_large"
class MappingRegistry:
def __init__(self, path: Path):
self.path = Path(path)
self.document = yaml.safe_load(self.path.read_text(encoding="utf-8"))
self.rules: dict[tuple[str, str], dict[str, Any]] = {}
for rule in self.document.get("rules", []):
key = (
str(rule.get("cm95_object_class") or ""),
str(rule.get("geometry_type") or ""),
)
self.rules[key] = rule
def resolve(self, object_class: str, geometry_type: str) -> dict[str, Any] | None:
return self.rules.get((str(object_class), str(geometry_type)))
def eval_condition(self, condition: Any, attrs: dict[str, Any]) -> bool:
if condition is None or condition == "":
return True
text = str(condition).strip()
if text.endswith(" present"):
field = text[:-8].strip()
return get_path(attrs, field) is not None
return False
def evaluate_fields(
self,
field_spec: dict[str, Any],
attrs: dict[str, Any],
context: dict[str, Any] | None = None,
) -> dict[str, Any]:
context = context or {}
merged = dict(attrs)
merged.update(context)
out: dict[str, Any] = {}
for field, spec in (field_spec or {}).items():
value = self._evaluate_spec(spec, merged)
value = scalarize(value)
if value is not None and value != "":
out[str(field)] = value
return out
def _evaluate_spec(self, spec: Any, attrs: dict[str, Any]) -> Any:
if not isinstance(spec, dict):
return spec
if "const" in spec:
return spec["const"]
if "from" in spec:
return get_path(attrs, str(spec["from"]))
derive = spec.get("derive")
if derive is None:
return None
text = str(derive)
if text == "wreck_surveyed if VALSOU present else wreck_submerged_dangerous":
return "wreck_surveyed" if attrs.get("VALSOU") is not None else "wreck_submerged_dangerous"
if text == "rock_awash if WATLEV in [2,4,5] else rock_submerged":
try:
watlev = int(attrs.get("WATLEV"))
except Exception:
watlev = None
return "rock_awash" if watlev in {2, 4, 5} else "rock_submerged"
if text == "format_depth(VALDCO)":
return format_depth(attrs.get("VALDCO"))
if text == "format_depth(chart_sounding_point.depth)":
return format_depth(get_path(attrs, "chart_sounding_point.depth"))
if text == "depth_zone_style(DRVAL1,DRVAL2)":
return depth_zone_style(attrs.get("DRVAL1"), attrs.get("DRVAL2"))
if text == "depth_zone_style(DRVAL1,null)":
return depth_zone_style(attrs.get("DRVAL1"), None)
if text == "format_natsur(NATSUR,NATQUA)":
return format_natsur(attrs.get("NATSUR"), attrs.get("NATQUA"))
if text == "_texta.text":
return get_path(attrs, "_texta.text")
if text == "s57_colour_to_light_color(COLOUR)":
return s57_light_color(attrs.get("COLOUR"))
if text == "format_light_abbreviation(LITCHR,SIGGRP,SIGPER,COLOUR,HEIGHT,VALNMR)":
return format_light_abbreviation(attrs)
if text == "first_present(OBJNAM,NOBJNM)":
return first_direct_name(attrs)
if text == "sector if SECTR1/SECTR2 present else omni":
return "sector" if attrs.get("SECTR1") is not None or attrs.get("SECTR2") is not None else "omni"
if text == "format_clearance(VERCLR)":
return format_clearance(attrs.get("VERCLR"))
if text == "nav_icon_from_bcnlat_attributes":
return nav_icon_from_bcnlat(attrs, lighted=False)
if text == "nav_icon_from_bcnspp_attributes":
return nav_icon_from_bcnspp(attrs, lighted=False)
if text == "nav_icon_from_boyspp_attributes":
return nav_icon_from_boyspp(attrs, lighted=False)
if text == "nav_icon_from_rtpbcn_attributes":
return nav_icon_from_rtpbcn(attrs, lighted=False)
return None
def minimize_delivery_properties(self, properties: dict[str, Any]) -> dict[str, Any]:
return {
key: scalarize(value)
for key, value in properties.items()
if key in DELIVERY_PROPERTY_ALLOWLIST and scalarize(value) is not None
}

98
src/cm95pbf/policy.py Normal file
View File

@@ -0,0 +1,98 @@
from __future__ import annotations
from dataclasses import dataclass
import math
WEB_MERCATOR_HALF_WORLD = 20037508.342789244
MAX_MERCATOR_LAT = 85.0511287798066
@dataclass(frozen=True)
class TileBounds:
z: int
x: int
y: int
west_m: float
south_m: float
east_m: float
north_m: float
@property
def width_m(self) -> float:
return self.east_m - self.west_m
@property
def height_m(self) -> float:
return self.north_m - self.south_m
@property
def mercator_tuple(self) -> tuple[float, float, float, float]:
return self.west_m, self.south_m, self.east_m, self.north_m
@property
def wgs84_tuple(self) -> tuple[float, float, float, float]:
west, south = mercator_to_lonlat(self.west_m, self.south_m)
east, north = mercator_to_lonlat(self.east_m, self.north_m)
return west, south, east, north
def lonlat_to_mercator(lon: float, lat: float) -> tuple[float, float]:
lat = max(-MAX_MERCATOR_LAT, min(MAX_MERCATOR_LAT, float(lat)))
x = WEB_MERCATOR_HALF_WORLD * float(lon) / 180.0
y = math.log(math.tan((90.0 + lat) * math.pi / 360.0)) / (math.pi / 180.0)
y = WEB_MERCATOR_HALF_WORLD * y / 180.0
return x, y
def mercator_to_lonlat(x: float, y: float) -> tuple[float, float]:
lon = float(x) / WEB_MERCATOR_HALF_WORLD * 180.0
lat = float(y) / WEB_MERCATOR_HALF_WORLD * 180.0
lat = 180.0 / math.pi * (
2.0 * math.atan(math.exp(lat * math.pi / 180.0)) - math.pi / 2.0
)
return lon, lat
def xyz_tile_bounds(z: int, x: int, y: int) -> TileBounds:
n = 1 << int(z)
if x < 0 or y < 0 or x >= n or y >= n:
raise ValueError(f"invalid XYZ tile z={z} x={x} y={y}")
tile_size = (WEB_MERCATOR_HALF_WORLD * 2.0) / n
west = -WEB_MERCATOR_HALF_WORLD + x * tile_size
east = west + tile_size
north = WEB_MERCATOR_HALF_WORLD - y * tile_size
south = north - tile_size
return TileBounds(
z=z,
x=x,
y=y,
west_m=west,
south_m=south,
east_m=east,
north_m=north,
)
def expanded_mercator_bounds(
tile: TileBounds,
buffer_tile_pixels: float,
nominal_tile_pixels: float = 256.0,
) -> tuple[float, float, float, float]:
pad = tile.width_m * float(buffer_tile_pixels) / float(nominal_tile_pixels)
return (
tile.west_m - pad,
tile.south_m - pad,
tile.east_m + pad,
tile.north_m + pad,
)
def child_tiles(z: int, x: int, y: int, child_z: int) -> list[tuple[int, int, int]]:
if child_z < z:
raise ValueError("child_z must be >= z")
factor = 1 << (child_z - z)
out: list[tuple[int, int, int]] = []
for cx in range(x * factor, (x + 1) * factor):
for cy in range(y * factor, (y + 1) * factor):
out.append((child_z, cx, cy))
return out

826
src/cm95pbf/production.py Normal file
View File

@@ -0,0 +1,826 @@
from __future__ import annotations
from concurrent.futures import ThreadPoolExecutor, as_completed
from collections import Counter
from dataclasses import dataclass
from datetime import datetime, timezone
import hashlib
import json
import math
import os
from pathlib import Path
import shutil
import sqlite3
import threading
import traceback
from typing import Any, Iterable
import pymysql
from shapely import wkb
from shapely.geometry import box
from shapely.ops import transform
from cm93db.config import DbConfig
from . import BUILDER_CONTRACT_VERSION
from .builder import Cm95TileBuilder, TileJob
from .identity import dataset_fingerprint, validate_manifest
from .policy import (
WEB_MERCATOR_HALF_WORLD,
lonlat_to_mercator,
xyz_tile_bounds,
)
PRODUCTION_PLAN_SCHEMA = "navsea.cm95.production-plan/v1"
PRODUCTION_RUN_SCHEMA = "navsea.cm95.production-run/v1"
def utc_now() -> str:
return datetime.now(timezone.utc).isoformat(timespec="seconds").replace("+00:00", "Z")
def sha256_file(path: Path) -> str:
h = hashlib.sha256()
with Path(path).open("rb") as f:
for chunk in iter(lambda: f.read(1024 * 1024), b""):
h.update(chunk)
return h.hexdigest()
def canonical_sha256(obj: Any) -> str:
raw = json.dumps(obj, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")
return hashlib.sha256(raw).hexdigest()
def parse_zooms(value: str | Iterable[int]) -> list[int]:
if isinstance(value, str):
values: list[int] = []
for token in value.split(","):
token = token.strip()
if not token:
continue
if "-" in token:
parts = token.split("-", 1)
if len(parts) != 2 or not parts[0].strip() or not parts[1].strip():
raise ValueError(f"invalid zoom range: {token}")
start = int(parts[0].strip())
end = int(parts[1].strip())
if end < start:
raise ValueError(f"invalid zoom range: {token}")
values.extend(range(start, end + 1))
else:
values.append(int(token))
else:
values = [int(v) for v in value]
values = sorted(set(values))
if not values:
raise ValueError("zooms 不能为空")
for z in values:
if z < 0 or z > 22:
raise ValueError(f"invalid zoom: {z}")
return values
def _load_policy(path: Path) -> dict[str, Any]:
import yaml
return yaml.safe_load(Path(path).read_text(encoding="utf-8"))
def _scale_ladder(policy: dict[str, Any], z: int) -> list[int]:
raw = (policy.get("scale_ladders") or {}).get(str(z))
if not raw:
raise RuntimeError(f"no scale ladder configured for z{z}")
return [int(v) for v in raw]
def _enumeration_scales(policy: dict[str, Any], z: int) -> list[int]:
"""Return scales allowed to materialize physical tiles at a zoom.
This is intentionally distinct from scale_ladders: coarse fallback scales may
be read *inside* an already materialized tile, but they must not expand the
high-zoom production footprint.
"""
raw = (policy.get("enumeration_scales") or {}).get(str(z))
if raw:
return [int(v) for v in raw]
return _scale_ladder(policy, z)
def _mercator_geom_from_wkb(value: Any):
if value is None:
return None
if isinstance(value, memoryview):
value = value.tobytes()
elif isinstance(value, bytearray):
value = bytes(value)
geom = wkb.loads(value)
if geom is None or geom.is_empty:
return None
return transform(lambda x, y, z=None: lonlat_to_mercator(x, y), geom)
def _mercator_tile_index(z: int, x_m: float, y_m: float) -> tuple[int, int]:
n = 1 << int(z)
world = WEB_MERCATOR_HALF_WORLD * 2.0
tx = math.floor((float(x_m) + WEB_MERCATOR_HALF_WORLD) / world * n)
ty = math.floor((WEB_MERCATOR_HALF_WORLD - float(y_m)) / world * n)
return max(0, min(n - 1, tx)), max(0, min(n - 1, ty))
def _tiles_intersecting_geom(z: int, geom) -> set[tuple[int, int, int]]:
if geom is None or geom.is_empty:
return set()
minx, miny, maxx, maxy = geom.bounds
x0, y1 = _mercator_tile_index(z, minx, miny)
x1, y0 = _mercator_tile_index(z, maxx, maxy)
xlo, xhi = sorted((x0, x1))
ylo, yhi = sorted((y0, y1))
out: set[tuple[int, int, int]] = set()
for x in range(xlo, xhi + 1):
for y in range(ylo, yhi + 1):
tile_box = box(*xyz_tile_bounds(z, x, y).mercator_tuple)
if geom.intersects(tile_box):
out.add((z, x, y))
return out
def _connect(db: DbConfig):
return pymysql.connect(
host=db.host,
port=db.port,
user=db.user,
password=db.password,
database=db.database,
charset=db.charset,
cursorclass=pymysql.cursors.DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
write_timeout=30,
)
def _fetch_plan_geometries(conn, dataset_id: int, scales: list[int]):
placeholders = ",".join(["%s"] * len(scales))
with conn.cursor() as cur:
cur.execute(
f"""
SELECT
id,
native_scale,
bbox_min_lon,
bbox_min_lat,
bbox_max_lon,
bbox_max_lat
FROM chart_cell
WHERE dataset_id=%s
AND native_scale IN ({placeholders})
ORDER BY native_scale, id
""",
(dataset_id, *scales),
)
cells = list(cur.fetchall())
if not cells:
return []
cell_ids = [int(c["id"]) for c in cells]
ph = ",".join(["%s"] * len(cell_ids))
with conn.cursor() as cur:
cur.execute(
f"""
SELECT cell_id, ST_AsWKB(geom) AS geom_wkb
FROM chart_coverage
WHERE dataset_id=%s
AND cell_id IN ({ph})
ORDER BY cell_id, id
""",
(dataset_id, *cell_ids),
)
coverage_rows = list(cur.fetchall())
by_cell: dict[int, list[Any]] = {}
for row in coverage_rows:
geom = _mercator_geom_from_wkb(row["geom_wkb"])
if geom is None:
continue
by_cell.setdefault(int(row["cell_id"]), []).append(geom)
pieces: list[tuple[int, int, Any, str]] = []
for cell in cells:
cid = int(cell["id"])
scale = int(cell["native_scale"])
geoms = by_cell.get(cid)
if geoms:
for geom in geoms:
pieces.append((cid, scale, geom, "coverage"))
continue
minx, miny = lonlat_to_mercator(float(cell["bbox_min_lon"]), float(cell["bbox_min_lat"]))
maxx, maxy = lonlat_to_mercator(float(cell["bbox_max_lon"]), float(cell["bbox_max_lat"]))
pieces.append((cid, scale, box(minx, miny, maxx, maxy), "cell_bbox_fallback"))
return pieces
def create_production_plan(
db: DbConfig,
dataset_id: int,
mapping_path: Path,
policy_path: Path,
manifest_path: Path,
output_path: Path,
zooms: list[int],
profile: str = "delivery",
) -> dict[str, Any]:
if profile not in {"delivery", "engineering"}:
raise ValueError("profile must be delivery or engineering")
mapping_path = Path(mapping_path)
policy_path = Path(policy_path)
manifest_path = Path(manifest_path)
output_path = Path(output_path)
policy = _load_policy(policy_path)
zooms = parse_zooms(zooms)
all_scales = sorted({s for z in zooms for s in _enumeration_scales(policy, z)})
with _connect(db) as conn:
try:
conn.cursor().execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
fingerprint = dataset_fingerprint(conn, dataset_id)
manifest_info = validate_manifest(conn, dataset_id, manifest_path)
pieces = _fetch_plan_geometries(conn, dataset_id, all_scales)
conn.rollback()
jobs: set[tuple[int, int, int]] = set()
source_stats: dict[str, Any] = {}
for z in zooms:
ladder = _scale_ladder(policy, z)
enumeration = _enumeration_scales(policy, z)
enumeration_set = set(enumeration)
z_pieces = [(cid, scale, geom, src) for cid, scale, geom, src in pieces if scale in enumeration_set]
z_jobs: set[tuple[int, int, int]] = set()
fallback_pieces = 0
for _cid, _scale, geom, source in z_pieces:
if source == "cell_bbox_fallback":
fallback_pieces += 1
z_jobs |= _tiles_intersecting_geom(z, geom)
jobs |= z_jobs
source_stats[str(z)] = {
"enumeration_scales": enumeration,
"scale_ladder": ladder,
"coverage_pieces": len(z_pieces),
"cell_bbox_fallback_pieces": fallback_pieces,
"tile_count": len(z_jobs),
}
job_rows = [
{"z": z, "x": x, "y": y}
for z, x, y in sorted(jobs)
]
immutable = {
"schema": PRODUCTION_PLAN_SCHEMA,
"dataset_id": int(dataset_id),
"dataset_fingerprint": fingerprint,
"profile": profile,
"zooms": zooms,
"mapping_sha256": sha256_file(mapping_path),
"policy_sha256": sha256_file(policy_path),
"builder_contract_version": BUILDER_CONTRACT_VERSION,
"manifest_dataset_fingerprint": manifest_info["dataset_fingerprint"],
"manifest_identity_count": int(manifest_info["identity_count"]),
"jobs": job_rows,
}
plan_id = canonical_sha256(immutable)
plan = {
**immutable,
"plan_id": plan_id,
"release_id": f"cm95-d{int(dataset_id)}-{fingerprint[:12]}-{plan_id[:12]}",
"created_at": utc_now(),
"mapping_path": str(mapping_path),
"policy_path": str(policy_path),
"manifest_path": str(manifest_path),
"source_stats": source_stats,
"job_count": len(job_rows),
}
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_text(json.dumps(plan, ensure_ascii=False, indent=2), encoding="utf-8")
return plan
def load_plan(path: Path) -> dict[str, Any]:
obj = json.loads(Path(path).read_text(encoding="utf-8"))
if obj.get("schema") != PRODUCTION_PLAN_SCHEMA:
raise RuntimeError(f"unsupported plan schema: {obj.get('schema')}")
return obj
class ProductionLedger:
def __init__(self, path: Path):
self.path = Path(path)
self._lock = threading.Lock()
self.path.parent.mkdir(parents=True, exist_ok=True)
self._init()
def _conn(self):
db = sqlite3.connect(self.path, timeout=30)
db.row_factory = sqlite3.Row
db.execute("PRAGMA journal_mode=WAL")
db.execute("PRAGMA synchronous=NORMAL")
return db
def _init(self):
with self._conn() as db:
db.executescript(
"""
CREATE TABLE IF NOT EXISTS run_meta (
k TEXT PRIMARY KEY,
v TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS tile_job (
profile TEXT NOT NULL,
z INTEGER NOT NULL,
x INTEGER NOT NULL,
y INTEGER NOT NULL,
state TEXT NOT NULL,
attempts INTEGER NOT NULL DEFAULT 0,
updated_at TEXT NOT NULL,
output_feature_count INTEGER,
output_layer_count INTEGER,
written INTEGER,
last_error TEXT,
PRIMARY KEY(profile,z,x,y)
);
CREATE INDEX IF NOT EXISTS idx_tile_job_state ON tile_job(state);
"""
)
def set_meta(self, key: str, value: str):
with self._conn() as db:
db.execute(
"INSERT INTO run_meta(k,v) VALUES(?,?) ON CONFLICT(k) DO UPDATE SET v=excluded.v",
(key, value),
)
def get_meta(self, key: str) -> str | None:
with self._conn() as db:
row = db.execute("SELECT v FROM run_meta WHERE k=?", (key,)).fetchone()
return None if row is None else str(row[0])
def seed(self, profile: str, jobs: list[dict[str, int]]):
now = utc_now()
with self._conn() as db:
db.executemany(
"""
INSERT OR IGNORE INTO tile_job(profile,z,x,y,state,attempts,updated_at)
VALUES(?,?,?,?, 'PENDING', 0, ?)
""",
[(profile, int(j["z"]), int(j["x"]), int(j["y"]), now) for j in jobs],
)
db.execute(
"UPDATE tile_job SET state='PENDING', updated_at=? WHERE state='RUNNING'",
(now,),
)
def runnable(self, profile: str, max_attempts: int) -> list[sqlite3.Row]:
with self._conn() as db:
return list(
db.execute(
"""
SELECT * FROM tile_job
WHERE profile=?
AND state!='PASS'
AND attempts < ?
ORDER BY z,x,y
""",
(profile, int(max_attempts)),
).fetchall()
)
def mark_running(self, profile: str, z: int, x: int, y: int):
with self._lock, self._conn() as db:
db.execute(
"""
UPDATE tile_job
SET state='RUNNING', attempts=attempts+1, updated_at=?, last_error=NULL
WHERE profile=? AND z=? AND x=? AND y=?
""",
(utc_now(), profile, z, x, y),
)
def mark_pass(self, profile: str, z: int, x: int, y: int, result: dict[str, Any]):
with self._lock, self._conn() as db:
db.execute(
"""
UPDATE tile_job
SET state='PASS', updated_at=?,
output_feature_count=?, output_layer_count=?, written=?, last_error=NULL
WHERE profile=? AND z=? AND x=? AND y=?
""",
(
utc_now(),
int(result.get("output_feature_count") or 0),
int(result.get("output_layer_count") or 0),
1 if result.get("written") else 0,
profile, z, x, y,
),
)
def mark_failed(self, profile: str, z: int, x: int, y: int, error: str):
with self._lock, self._conn() as db:
db.execute(
"""
UPDATE tile_job
SET state='FAILED', updated_at=?, last_error=?
WHERE profile=? AND z=? AND x=? AND y=?
""",
(utc_now(), error[-12000:], profile, z, x, y),
)
def summary(self, profile: str) -> dict[str, Any]:
with self._conn() as db:
states = {
str(r["state"]): int(r["n"])
for r in db.execute(
"SELECT state,COUNT(*) AS n FROM tile_job WHERE profile=? GROUP BY state",
(profile,),
).fetchall()
}
row = db.execute(
"""
SELECT
COUNT(*) AS jobs,
COALESCE(SUM(attempts),0) AS attempts,
COALESCE(SUM(output_feature_count),0) AS output_features,
COALESCE(SUM(CASE WHEN written=1 THEN 1 ELSE 0 END),0) AS pbf_files
FROM tile_job WHERE profile=?
""",
(profile,),
).fetchone()
return {
"jobs": int(row["jobs"]),
"attempts": int(row["attempts"]),
"output_features": int(row["output_features"]),
"pbf_files": int(row["pbf_files"]),
"states": states,
}
def _validate_plan_inputs(db: DbConfig, plan: dict[str, Any]):
mapping_path = Path(plan["mapping_path"])
policy_path = Path(plan["policy_path"])
manifest_path = Path(plan["manifest_path"])
if sha256_file(mapping_path) != plan["mapping_sha256"]:
raise RuntimeError("mapping file changed after plan creation")
if sha256_file(policy_path) != plan["policy_sha256"]:
raise RuntimeError("policy file changed after plan creation")
with _connect(db) as conn:
fp = dataset_fingerprint(conn, int(plan["dataset_id"]))
if fp != plan["dataset_fingerprint"]:
raise RuntimeError("dataset fingerprint changed after plan creation")
validate_manifest(conn, int(plan["dataset_id"]), manifest_path)
conn.rollback()
def run_production_plan(
db: DbConfig,
plan_path: Path,
release_root: Path,
workers: int = 4,
max_attempts: int = 3,
) -> dict[str, Any]:
plan = load_plan(plan_path)
_validate_plan_inputs(db, plan)
workers = max(1, int(workers))
max_attempts = max(1, int(max_attempts))
release_dir = Path(release_root) / str(plan["release_id"])
output_root = release_dir / "pbf" / str(plan["profile"])
report_root = release_dir / "reports"
ledger = ProductionLedger(release_dir / "production_run_v1.sqlite")
ledger.set_meta("schema", PRODUCTION_RUN_SCHEMA)
ledger.set_meta("plan_id", str(plan["plan_id"]))
ledger.set_meta("release_id", str(plan["release_id"]))
ledger.set_meta("plan_path", str(Path(plan_path)))
ledger.seed(str(plan["profile"]), list(plan["jobs"]))
runnable = ledger.runnable(str(plan["profile"]), max_attempts)
if not runnable:
summary = ledger.summary(str(plan["profile"]))
_write_run_summary(plan, release_dir, summary)
return {"release_dir": str(release_dir), **summary}
def work(row):
z, x, y = int(row["z"]), int(row["x"]), int(row["y"])
profile = str(plan["profile"])
ledger.mark_running(profile, z, x, y)
try:
builder = Cm95TileBuilder(
db=db,
dataset_id=int(plan["dataset_id"]),
mapping_path=Path(plan["mapping_path"]),
policy_path=Path(plan["policy_path"]),
fid_manifest_path=Path(plan["manifest_path"]),
output_root=output_root,
report_root=report_root,
profile=profile,
)
result = builder.build_tile(TileJob(z, x, y))
if result.get("hard_gate_unmapped"):
raise RuntimeError(f"hard-gate unmapped: {result['hard_gate_unmapped']}")
ledger.mark_pass(profile, z, x, y, result)
return (True, z, x, y, result)
except Exception as exc:
err = f"{type(exc).__name__}: {exc}\n{traceback.format_exc()}"
ledger.mark_failed(profile, z, x, y, err)
return (False, z, x, y, err)
completed = 0
failed = 0
with ThreadPoolExecutor(max_workers=workers, thread_name_prefix="cm95pbf") as pool:
futures = [pool.submit(work, row) for row in runnable]
for fut in as_completed(futures):
ok, z, x, y, payload = fut.result()
completed += 1
if ok:
print(
f"PASS {z}/{x}/{y} "
f"features={payload['output_feature_count']} layers={payload['output_layer_count']}"
)
else:
failed += 1
first = str(payload).splitlines()[0]
print(f"FAIL {z}/{x}/{y} {first}")
if completed % 50 == 0:
s = ledger.summary(str(plan["profile"]))
print(f"PROGRESS {completed}/{len(runnable)} states={s['states']}")
# 同一调用内继续重试失败任务,直到 max_attempts 用尽。
while True:
retry = ledger.runnable(str(plan["profile"]), max_attempts)
retry = [r for r in retry if str(r["state"]) == "FAILED"]
if not retry:
break
print(f"RETRY jobs={len(retry)}")
with ThreadPoolExecutor(max_workers=workers, thread_name_prefix="cm95pbf-retry") as pool:
futures = [pool.submit(work, row) for row in retry]
for fut in as_completed(futures):
ok, z, x, y, payload = fut.result()
if ok:
print(f"PASS retry {z}/{x}/{y}")
else:
print(f"FAIL retry {z}/{x}/{y} {str(payload).splitlines()[0]}")
summary = ledger.summary(str(plan["profile"]))
_write_run_summary(plan, release_dir, summary)
return {"release_dir": str(release_dir), **summary}
def _write_run_summary(plan: dict[str, Any], release_dir: Path, summary: dict[str, Any]):
obj = {
"schema": PRODUCTION_RUN_SCHEMA,
"release_id": plan["release_id"],
"plan_id": plan["plan_id"],
"dataset_id": plan["dataset_id"],
"dataset_fingerprint": plan["dataset_fingerprint"],
"profile": plan["profile"],
"builder_contract_version": plan.get("builder_contract_version"),
"updated_at": utc_now(),
**summary,
}
path = Path(release_dir) / "production_run_summary_v1.json"
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")
def production_status(plan_path: Path, release_root: Path) -> dict[str, Any]:
plan = load_plan(plan_path)
release_dir = Path(release_root) / str(plan["release_id"])
ledger = ProductionLedger(release_dir / "production_run_v1.sqlite")
summary = ledger.summary(str(plan["profile"]))
return {
"release_id": plan["release_id"],
"release_dir": str(release_dir),
**summary,
}
def _load_delivery_changed_classes(mapping_path: Path) -> list[str]:
import yaml
obj = yaml.safe_load(Path(mapping_path).read_text(encoding="utf-8")) or {}
contract = obj.get("production_change_contract") or {}
values = contract.get("delivery_output_changed_object_classes") or []
return sorted({str(v) for v in values if str(v).strip()})
def _link_or_copy(src: Path, dst: Path, mode: str = "hardlink") -> str:
src = Path(src)
dst = Path(dst)
dst.parent.mkdir(parents=True, exist_ok=True)
if dst.exists():
dst.unlink()
if mode == "copy":
shutil.copy2(src, dst)
return "copy"
try:
os.link(src, dst)
return "hardlink"
except OSError:
shutil.copy2(src, dst)
return "copy_fallback"
def _load_explicit_invalidate_tiles(path: Path | None) -> set[tuple[int, int, int]]:
if path is None:
return set()
path = Path(path)
if not path.exists():
raise RuntimeError(f"invalidate tiles file not found: {path}")
out: set[tuple[int, int, int]] = set()
for lineno, raw in enumerate(path.read_text(encoding="utf-8").splitlines(), start=1):
line = raw.strip()
if not line or line.startswith("#"):
continue
parts = line.split("/")
if len(parts) != 3:
raise RuntimeError(f"invalid tile at {path}:{lineno}: {line}")
try:
z, x, y = (int(v) for v in parts)
except ValueError as exc:
raise RuntimeError(f"invalid tile at {path}:{lineno}: {line}") from exc
if z < 0 or x < 0 or y < 0 or x >= (1 << z) or y >= (1 << z):
raise RuntimeError(f"invalid XYZ at {path}:{lineno}: {line}")
out.add((z, x, y))
return out
def migrate_production_release(
old_release_dir: Path,
new_plan_path: Path,
release_root: Path,
copy_mode: str = "hardlink",
invalidate_tiles_file: Path | None = None,
) -> dict[str, Any]:
"""Reuse old PASS tiles in a new release when delivery-equivalent.
Safety rules:
- old FAILED/RUNNING/PENDING are never reused;
- any old PASS report mentioning a class whose delivery output changed is rebuilt;
- old PASS with encoder drops, hard-gate unmapped, or planned/output mismatch is rebuilt;
- PBF/report are linked/copied only after checks pass;
- a fresh ledger resets attempts for all rebuilt jobs.
"""
old_release_dir = Path(old_release_dir)
new_plan = load_plan(Path(new_plan_path))
if copy_mode not in {"hardlink", "copy"}:
raise ValueError("copy_mode must be hardlink or copy")
old_ledger_path = old_release_dir / "production_run_v1.sqlite"
if not old_ledger_path.exists():
raise RuntimeError(f"old production ledger not found: {old_ledger_path}")
old_ledger = ProductionLedger(old_ledger_path)
old_summary_path = old_release_dir / "production_run_summary_v1.json"
old_summary = {}
if old_summary_path.exists():
old_summary = json.loads(old_summary_path.read_text(encoding="utf-8"))
if str(old_summary.get("dataset_fingerprint") or "") != str(new_plan["dataset_fingerprint"]):
raise RuntimeError("old/new dataset fingerprint mismatch")
if str(old_summary.get("profile") or "") != str(new_plan["profile"]):
raise RuntimeError("old/new profile mismatch")
profile = str(new_plan["profile"])
new_release_dir = Path(release_root) / str(new_plan["release_id"])
if new_release_dir.resolve() == old_release_dir.resolve():
raise RuntimeError("new release must not overwrite old release")
new_ledger = ProductionLedger(new_release_dir / "production_run_v1.sqlite")
new_ledger.set_meta("schema", PRODUCTION_RUN_SCHEMA)
new_ledger.set_meta("plan_id", str(new_plan["plan_id"]))
new_ledger.set_meta("release_id", str(new_plan["release_id"]))
new_ledger.set_meta("plan_path", str(Path(new_plan_path)))
new_ledger.set_meta("migrated_from_release", old_release_dir.name)
new_ledger.seed(profile, list(new_plan["jobs"]))
new_jobs = {
(profile, int(j["z"]), int(j["x"]), int(j["y"]))
for j in new_plan["jobs"]
}
with old_ledger._conn() as db:
old_rows = list(db.execute(
"SELECT * FROM tile_job WHERE profile=? ORDER BY z,x,y",
(profile,),
).fetchall())
old_jobs = {(profile, int(r["z"]), int(r["x"]), int(r["y"])) for r in old_rows}
if old_jobs != new_jobs:
missing_old = len(new_jobs - old_jobs)
extra_old = len(old_jobs - new_jobs)
raise RuntimeError(
f"old/new job set mismatch: missing_old={missing_old} extra_old={extra_old}"
)
changed_classes = set(_load_delivery_changed_classes(Path(new_plan["mapping_path"])))
explicit_invalidate_tiles = _load_explicit_invalidate_tiles(invalidate_tiles_file)
reused = 0
rebuilt_old_failed = 0
rebuilt_changed_class = 0
rebuilt_integrity = 0
rebuilt_explicit_invalidate = 0
reused_pbf = 0
reused_empty = 0
copy_modes = Counter()
for row in old_rows:
z, x, y = int(row["z"]), int(row["x"]), int(row["y"])
if str(row["state"]) != "PASS":
rebuilt_old_failed += 1
continue
if (z, x, y) in explicit_invalidate_tiles:
rebuilt_explicit_invalidate += 1
continue
old_report = old_release_dir / "reports" / profile / str(z) / str(x) / f"{y}.json"
if not old_report.exists():
rebuilt_integrity += 1
continue
try:
report = json.loads(old_report.read_text(encoding="utf-8"))
except Exception:
rebuilt_integrity += 1
continue
unmapped = set((report.get("unmapped_class_counts") or {}).keys())
hard_gate_classes = {
str(item.get("object_class"))
for item in (report.get("hard_gate_unmapped") or [])
if isinstance(item, dict) and item.get("object_class")
}
if changed_classes & (unmapped | hard_gate_classes):
rebuilt_changed_class += 1
continue
if report.get("encoder_dropped_features") or report.get("hard_gate_unmapped"):
rebuilt_integrity += 1
continue
if int(report.get("planned_output_feature_count") or 0) != int(report.get("output_feature_count") or 0):
rebuilt_integrity += 1
continue
old_pbf = old_release_dir / "pbf" / profile / str(z) / str(x) / f"{y}.pbf"
new_pbf = new_release_dir / "pbf" / profile / str(z) / str(x) / f"{y}.pbf"
output_count = int(report.get("output_feature_count") or 0)
written = bool(row["written"])
if output_count > 0 or written:
if not old_pbf.exists():
rebuilt_integrity += 1
continue
mode_used = _link_or_copy(old_pbf, new_pbf, copy_mode)
copy_modes[mode_used] += 1
reused_pbf += 1
else:
reused_empty += 1
new_report = new_release_dir / "reports" / profile / str(z) / str(x) / f"{y}.json"
copy_modes[_link_or_copy(old_report, new_report, copy_mode)] += 1
old_trace = old_release_dir / "reports" / profile / str(z) / str(x) / f"{y}.trace.jsonl"
if old_trace.exists():
new_trace = new_release_dir / "reports" / profile / str(z) / str(x) / f"{y}.trace.jsonl"
copy_modes[_link_or_copy(old_trace, new_trace, copy_mode)] += 1
new_ledger.mark_pass(
profile, z, x, y,
{
"output_feature_count": output_count,
"output_layer_count": len(report.get("output_layer_counts") or {}),
"written": written,
},
)
reused += 1
summary = new_ledger.summary(profile)
result = {
"schema": "navsea.cm95.production-migration/v1",
"created_at": utc_now(),
"old_release_dir": str(old_release_dir),
"new_release_dir": str(new_release_dir),
"new_release_id": str(new_plan["release_id"]),
"builder_contract_version": new_plan.get("builder_contract_version"),
"changed_delivery_classes": sorted(changed_classes),
"reused_pass_jobs": reused,
"reused_pbf_files": reused_pbf,
"reused_empty_jobs": reused_empty,
"pending_from_old_nonpass": rebuilt_old_failed,
"pending_changed_delivery_class": rebuilt_changed_class,
"pending_integrity_recheck": rebuilt_integrity,
"pending_explicit_invalidate_tiles": rebuilt_explicit_invalidate,
"explicit_invalidate_tile_count": len(explicit_invalidate_tiles),
"invalidate_tiles_file": str(Path(invalidate_tiles_file)) if invalidate_tiles_file else None,
"copy_modes": dict(sorted(copy_modes.items())),
**summary,
}
out = new_release_dir / "production_migration_summary_v1.json"
out.parent.mkdir(parents=True, exist_ok=True)
out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
_write_run_summary(new_plan, new_release_dir, summary)
return result

466
src/cm95pbf/release.py Normal file
View File

@@ -0,0 +1,466 @@
from __future__ import annotations
from collections import Counter
from datetime import datetime, timezone
import hashlib
import json
from pathlib import Path
from typing import Any
import mapbox_vector_tile
from .production import ProductionLedger, load_plan, sha256_file
from .style_contract import audit_pbf_style_and_sprite
RELEASE_SCHEMA = "navsea.cm95.release-manifest/v1"
def _utc_now():
return datetime.now(timezone.utc).isoformat(timespec="seconds").replace("+00:00", "Z")
def _collect_nav_name_conflict_expectations(
report_root: Path,
conflict_reports: list[tuple[Path, int]],
) -> dict[str, Any]:
"""Collect ambiguous navigation-name outputs that must remain unlabeled.
This is intentionally fail-closed:
- a report-side conflict must have exactly matching trace rows;
- each trace row must explicitly say nav_name_source=conflict;
- there must be at least two distinct direct-name candidates;
- the corresponding PBF feature is validated later and must omit
chart_label_text rather than guessing one candidate.
"""
expected_refs: dict[tuple[str, str, int], dict[str, Any]] = {}
unique_outputs: dict[tuple[str, int], dict[str, Any]] = {}
issues: list[dict[str, Any]] = []
trace_occurrences = 0
for report_path, report_count in conflict_reports:
rel_report = report_path.relative_to(report_root)
trace_path = report_path.with_name(report_path.stem + ".trace.jsonl")
pbf_rel = rel_report.with_suffix(".pbf").as_posix()
if not trace_path.exists():
issues.append({
"type": "missing_trace_file",
"report": rel_report.as_posix(),
"expected_conflicts": int(report_count),
})
continue
tile_rows: list[dict[str, Any]] = []
with trace_path.open("r", encoding="utf-8") as handle:
for lineno, raw in enumerate(handle, start=1):
raw = raw.strip()
if not raw:
continue
try:
row = json.loads(raw)
except json.JSONDecodeError as exc:
issues.append({
"type": "invalid_trace_json",
"trace": str(trace_path.relative_to(report_root)),
"line": lineno,
"error": str(exc),
})
continue
if isinstance(row, dict) and row.get("nav_name_conflict") is True:
tile_rows.append(row)
trace_occurrences += len(tile_rows)
if len(tile_rows) != int(report_count):
issues.append({
"type": "report_trace_conflict_count_mismatch",
"report": rel_report.as_posix(),
"report_count": int(report_count),
"trace_count": len(tile_rows),
})
for row in tile_rows:
output_id = row.get("output_id")
layer = str(row.get("output_layer") or "")
name_source = str(row.get("nav_name_source") or "")
raw_candidates = row.get("nav_name_candidates") or []
candidates: list[str] = []
for value in raw_candidates:
text = str(value).strip()
if text and text not in candidates:
candidates.append(text)
if output_id is None or not layer:
issues.append({
"type": "invalid_conflict_trace_identity",
"report": rel_report.as_posix(),
"row": row,
})
continue
try:
fid = int(output_id)
except (TypeError, ValueError):
issues.append({
"type": "invalid_conflict_output_id",
"report": rel_report.as_posix(),
"output_id": output_id,
})
continue
if name_source != "conflict":
issues.append({
"type": "conflict_trace_wrong_name_source",
"report": rel_report.as_posix(),
"output_id": fid,
"nav_name_source": name_source,
})
if len(candidates) < 2:
issues.append({
"type": "conflict_trace_insufficient_candidates",
"report": rel_report.as_posix(),
"output_id": fid,
"candidates": candidates,
})
ref_key = (pbf_rel, layer, fid)
if ref_key in expected_refs:
issues.append({
"type": "duplicate_conflict_trace_reference",
"pbf": pbf_rel,
"layer": layer,
"output_id": fid,
})
expected_refs[ref_key] = {
"pbf": pbf_rel,
"layer": layer,
"output_id": fid,
"source_id": row.get("source_id"),
"relation20": row.get("relation20"),
"native_scale": row.get("native_scale"),
"candidates": candidates,
}
unique_key = (layer, fid)
unique = unique_outputs.setdefault(unique_key, {
"output_id": fid,
"output_layer": layer,
"source_id": row.get("source_id"),
"relation20": row.get("relation20"),
"native_scale": row.get("native_scale"),
"nav_name_candidates": list(candidates),
"occurrences": 0,
"tiles": [],
})
unique["occurrences"] += 1
if pbf_rel not in unique["tiles"]:
unique["tiles"].append(pbf_rel)
for candidate in candidates:
if candidate not in unique["nav_name_candidates"]:
unique["nav_name_candidates"].append(candidate)
return {
"report_occurrences": sum(int(count) for _path, count in conflict_reports),
"trace_occurrences": trace_occurrences,
"expected_refs": expected_refs,
"unique_outputs": unique_outputs,
"issues": issues,
"seen_refs": set(),
"labeled_conflicts": [],
}
def _observe_nav_name_conflict_feature(
state: dict[str, Any],
pbf_rel: str,
layer: str,
fid: Any,
properties: dict[str, Any],
) -> None:
if fid is None:
return
try:
key = (pbf_rel, str(layer), int(fid))
except (TypeError, ValueError):
return
expected = state["expected_refs"].get(key)
if expected is None:
return
state["seen_refs"].add(key)
label = properties.get("chart_label_text")
if label is not None and str(label).strip():
state["labeled_conflicts"].append({
**expected,
"chart_label_text": str(label),
})
def _finalize_nav_name_conflict_audit(state: dict[str, Any]) -> dict[str, Any]:
expected_keys = set(state["expected_refs"])
seen_keys = set(state["seen_refs"])
missing = sorted(expected_keys - seen_keys)
issues = list(state["issues"])
if state["report_occurrences"] != state["trace_occurrences"]:
issues.append({
"type": "global_report_trace_conflict_count_mismatch",
"report_occurrences": state["report_occurrences"],
"trace_occurrences": state["trace_occurrences"],
})
for pbf_rel, layer, fid in missing:
issues.append({
"type": "conflict_output_missing_from_pbf",
"pbf": pbf_rel,
"layer": layer,
"output_id": fid,
})
for item in state["labeled_conflicts"]:
issues.append({
"type": "ambiguous_conflict_was_labeled",
**item,
})
unique_details = []
for row in state["unique_outputs"].values():
item = dict(row)
item["tiles"] = sorted(item.get("tiles") or [])
unique_details.append(item)
unique_details.sort(
key=lambda row: (
int(row.get("native_scale") or 0),
str(row.get("source_id") or ""),
int(row.get("output_id") or 0),
)
)
affected_tiles = sorted({
key[0] for key in state["expected_refs"]
})
safe_omissions = len(seen_keys) - len(state["labeled_conflicts"])
return {
"overall": "PASS" if not issues else "FAIL",
"policy": "AMBIGUOUS_DIRECT_NAMES_OMIT_LABEL_FAIL_CLOSED",
"report_occurrences": int(state["report_occurrences"]),
"trace_occurrences": int(state["trace_occurrences"]),
"safe_omission_occurrences": int(safe_omissions),
"unique_conflict_outputs": len(unique_details),
"affected_tiles": len(affected_tiles),
"labeled_conflict_occurrences": len(state["labeled_conflicts"]),
"missing_pbf_occurrences": len(missing),
"issues": issues,
"unique_conflicts": unique_details,
}
def finalize_release(
plan_path: Path,
release_root: Path,
style_path: Path | None = None,
sprite_json_path: Path | None = None,
gap_disposition_path: Path | None = None,
) -> dict[str, Any]:
plan = load_plan(plan_path)
release_dir = Path(release_root) / str(plan["release_id"])
ledger = ProductionLedger(release_dir / "production_run_v1.sqlite")
status = ledger.summary(str(plan["profile"]))
if status["states"].get("FAILED", 0) or status["states"].get("PENDING", 0) or status["states"].get("RUNNING", 0):
raise RuntimeError(f"release has unfinished jobs: {status['states']}")
if status["states"].get("PASS", 0) != int(plan["job_count"]):
raise RuntimeError(f"PASS job count mismatch: {status['states']} plan={plan['job_count']}")
pbf_root = release_dir / "pbf" / str(plan["profile"])
report_root = release_dir / "reports" / str(plan["profile"])
pbf_files = sorted(pbf_root.rglob("*.pbf")) if pbf_root.exists() else []
report_files = sorted(
p for p in report_root.rglob("*.json")
if not p.name.endswith(".trace.json")
) if report_root.exists() else []
hard_gate = []
encoder_dropped = []
name_conflicts = 0
nav_name_conflict_reports: list[tuple[Path, int]] = []
non_renderable_omissions = 0
non_renderable_omission_layers = Counter()
quantization_fallbacks = 0
quantization_omissions = 0
quantization_omission_layers = Counter()
encoder_reconciled_candidates = 0
encoder_reconciled_tiles = 0
planned = 0
output = 0
report_layer_counts = Counter()
for path in report_files:
obj = json.loads(path.read_text(encoding="utf-8"))
hard_gate += [{"report": str(path.relative_to(release_dir)), **x} for x in obj.get("hard_gate_unmapped") or []]
encoder_dropped += [{"report": str(path.relative_to(release_dir)), **x} for x in obj.get("encoder_dropped_features") or []]
tile_name_conflicts = int((obj.get("navigation_composites") or {}).get("name_conflict_groups") or 0)
name_conflicts += tile_name_conflicts
if tile_name_conflicts:
nav_name_conflict_reports.append((path, tile_name_conflicts))
label_omissions = obj.get("non_renderable_omissions") or []
non_renderable_omissions += len(label_omissions)
for item in label_omissions:
if isinstance(item, dict):
non_renderable_omission_layers[str(item.get("layer") or "UNKNOWN")] += 1
quantization_fallbacks += len(obj.get("quantization_fallbacks") or [])
omissions = obj.get("quantization_omissions") or []
quantization_omissions += len(omissions)
reconcile_candidates = obj.get("encoder_drop_candidates") or []
if reconcile_candidates:
encoder_reconciled_tiles += 1
for candidate in reconcile_candidates:
if isinstance(candidate, dict):
encoder_reconciled_candidates += len(candidate.get("dropped") or [])
for item in omissions:
if isinstance(item, dict):
quantization_omission_layers[str(item.get("layer") or "UNKNOWN")] += 1
planned += int(obj.get("planned_output_feature_count") or 0)
output += int(obj.get("output_feature_count") or 0)
report_layer_counts.update(obj.get("output_layer_counts") or {})
nav_name_conflict_state = _collect_nav_name_conflict_expectations(
report_root,
nav_name_conflict_reports,
)
inventory = []
decoded_features = 0
decoded_layers = Counter()
duplicate_feature_ids = []
for path in pbf_files:
raw = path.read_bytes()
decoded = mapbox_vector_tile.decode(raw)
seen = set()
tile_features = 0
for layer, payload in decoded.items():
feats = payload.get("features", [])
decoded_layers[layer] += len(feats)
tile_features += len(feats)
pbf_rel = str(path.relative_to(pbf_root)).replace("\\", "/")
for feat in feats:
fid = feat.get("id")
_observe_nav_name_conflict_feature(
nav_name_conflict_state,
pbf_rel,
layer,
fid,
feat.get("properties") or {},
)
if fid is None:
continue
key = (layer, int(fid))
if key in seen:
duplicate_feature_ids.append({"file": str(path.relative_to(release_dir)), "layer": layer, "id": int(fid)})
seen.add(key)
decoded_features += tile_features
inventory.append({
"path": str(path.relative_to(release_dir)).replace("\\", "/"),
"bytes": len(raw),
"sha256": hashlib.sha256(raw).hexdigest(),
"features": tile_features,
"layers": len(decoded),
})
style_sha = None
sprite_sha = None
style_contract = None
if style_path is not None:
style_path = Path(style_path)
style_sha = sha256_file(style_path)
if sprite_json_path is not None:
sprite_json_path = Path(sprite_json_path)
sprite_sha = sha256_file(sprite_json_path)
style_contract = audit_pbf_style_and_sprite(
pbf_root,
style_path,
sprite_json_path,
)
gap_disposition_sha = None
semantic_backlog = None
semantic_completeness = "NOT_AUDITED"
if gap_disposition_path is not None:
import yaml
gap_disposition_path = Path(gap_disposition_path)
if gap_disposition_path.exists():
gap_disposition_sha = sha256_file(gap_disposition_path)
gap_obj = yaml.safe_load(gap_disposition_path.read_text(encoding="utf-8")) or {}
semantic_backlog = dict(gap_obj.get("summary") or {})
pending = int((semantic_backlog or {}).get("pending_semantic_review") or 0)
semantic_completeness = "COMPLETE" if pending == 0 else "PENDING_REVIEW"
nav_name_conflict_audit = _finalize_nav_name_conflict_audit(
nav_name_conflict_state
)
failures = []
if hard_gate:
failures.append("hard_gate_unmapped")
if encoder_dropped:
failures.append("encoder_dropped_features")
if name_conflicts and nav_name_conflict_audit.get("overall") != "PASS":
failures.append("nav_name_conflict_audit")
if planned != output:
failures.append("planned_vs_report_output_mismatch")
if output != decoded_features:
failures.append("report_output_vs_decoded_pbf_mismatch")
if duplicate_feature_ids:
failures.append("duplicate_feature_ids_within_tile_layer")
if style_contract is not None and style_contract.get("overall") != "PASS":
failures.append("style_or_sprite_contract")
result = {
"schema": RELEASE_SCHEMA,
"created_at": _utc_now(),
"status": "PASS" if not failures else "FAIL",
"release_id": plan["release_id"],
"plan_id": plan["plan_id"],
"dataset_id": plan["dataset_id"],
"dataset_fingerprint": plan["dataset_fingerprint"],
"profile": plan["profile"],
"zooms": plan["zooms"],
"mapping_sha256": plan["mapping_sha256"],
"policy_sha256": plan["policy_sha256"],
"builder_contract_version": plan.get("builder_contract_version"),
"style_sha256": style_sha,
"sprite_json_sha256": sprite_sha,
"gap_disposition_sha256": gap_disposition_sha,
"semantic_completeness": semantic_completeness,
"semantic_backlog": semantic_backlog,
"style_sprite_contract": style_contract,
"planned_tile_jobs": int(plan["job_count"]),
"pbf_file_count": len(pbf_files),
"report_file_count": len(report_files),
"planned_output_features": planned,
"report_output_features": output,
"decoded_pbf_features": decoded_features,
"non_renderable_omissions": non_renderable_omissions,
"non_renderable_omission_layers": dict(sorted(non_renderable_omission_layers.items())),
"quantization_fallbacks": quantization_fallbacks,
"quantization_omissions": quantization_omissions,
"quantization_omission_layers": dict(sorted(quantization_omission_layers.items())),
"encoder_reconciled_tiles": encoder_reconciled_tiles,
"encoder_reconciled_drop_candidates": encoder_reconciled_candidates,
"hard_gate_unmapped": hard_gate,
"encoder_dropped_features": encoder_dropped,
"nav_name_conflicts": name_conflicts,
"nav_name_conflict_omissions": nav_name_conflict_audit.get("safe_omission_occurrences", 0),
"nav_name_conflict_unique_outputs": nav_name_conflict_audit.get("unique_conflict_outputs", 0),
"nav_name_conflict_audit": nav_name_conflict_audit,
"duplicate_feature_ids": duplicate_feature_ids,
"output_layer_counts": dict(sorted(decoded_layers.items())),
"failures": failures,
"inventory": inventory,
}
out = release_dir / "release_manifest_v1.json"
out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
return result

View File

@@ -0,0 +1,174 @@
from __future__ import annotations
from collections import Counter, defaultdict
import json
from pathlib import Path
from typing import Any
import mapbox_vector_tile
SPRITE_PROPERTY_FIELDS = (
"chart_icon_image",
"chart_fill_pattern",
"chart_line_pattern",
)
def ev(expr: Any, props: dict[str, Any]):
if not isinstance(expr, list):
return expr
if not expr:
return None
op = expr[0]
if op == "get":
return props.get(expr[1])
if op == "has":
return expr[1] in props
if op == "!":
return not bool(ev(expr[1], props))
if op == "all":
return all(bool(ev(x, props)) for x in expr[1:])
if op == "any":
return any(bool(ev(x, props)) for x in expr[1:])
if op == "==":
return ev(expr[1], props) == ev(expr[2], props)
if op == "!=":
return ev(expr[1], props) != ev(expr[2], props)
if op == "slice":
value = ev(expr[1], props)
if value is None:
return None
start = int(ev(expr[2], props))
end = int(ev(expr[3], props)) if len(expr) > 3 else None
return str(value)[start:end]
if op == "to-number":
value = ev(expr[1], props)
try:
num = float(value)
return int(num) if num.is_integer() else num
except Exception:
return 0
if op == "literal":
return expr[1]
if op == "match":
value = ev(expr[1], props)
pairs = expr[2:-1]
default = expr[-1]
for i in range(0, len(pairs), 2):
label = pairs[i]
output = pairs[i + 1]
if isinstance(label, list) and label and label[0] == "literal":
labels = label[1]
if value in labels:
return ev(output, props)
elif isinstance(label, list):
if value in label:
return ev(output, props)
elif value == label:
return ev(output, props)
return ev(default, props)
raise RuntimeError(f"unsupported style filter op: {op}")
def audit_pbf_style_and_sprite(
pbf_root: Path,
style_path: Path,
sprite_json_path: Path | None = None,
) -> dict[str, Any]:
pbf_root = Path(pbf_root)
style = json.loads(Path(style_path).read_text(encoding="utf-8"))
sprite_keys = None
if sprite_json_path is not None:
sprite_obj = json.loads(Path(sprite_json_path).read_text(encoding="utf-8"))
sprite_keys = set(sprite_obj)
style_by_source_layer = defaultdict(list)
for layer in style.get("layers", []):
if layer.get("source") == "navsea_delivery" and layer.get("source-layer"):
style_by_source_layer[layer["source-layer"]].append(layer)
files = sorted(pbf_root.rglob("*.pbf"))
contract_unmatched = Counter()
zoom_hidden = Counter()
visible = Counter()
sprite_missing = Counter()
sprite_values = Counter()
total_features = 0
for path in files:
rel = path.relative_to(pbf_root)
if len(rel.parts) < 3:
raise RuntimeError(f"PBF path must end with z/x/y.pbf: {path}")
z = int(rel.parts[-3])
decoded = mapbox_vector_tile.decode(path.read_bytes())
for source_layer, layer in decoded.items():
style_layers = style_by_source_layer.get(source_layer, [])
for feature in layer.get("features", []):
total_features += 1
props = feature.get("properties") or {}
filter_matches = []
for sl in style_layers:
flt = sl.get("filter")
if flt is None or bool(ev(flt, props)):
filter_matches.append(sl)
key = (z, source_layer)
if not filter_matches:
contract_unmatched[key] += 1
else:
zoom_matches = []
for sl in filter_matches:
minz = sl.get("minzoom")
maxz = sl.get("maxzoom")
if minz is not None and z < minz:
continue
if maxz is not None and z >= maxz:
continue
zoom_matches.append(sl)
if zoom_matches:
visible[key] += 1
else:
zoom_hidden[key] += 1
if sprite_keys is not None:
for field in SPRITE_PROPERTY_FIELDS:
value = props.get(field)
if isinstance(value, str) and value:
sprite_values[(field, value)] += 1
if value not in sprite_keys:
sprite_missing[(field, value)] += 1
return {
"schema": "navsea.cm95.style-sprite-contract-audit/v1",
"pbf_file_count": len(files),
"feature_count": total_features,
"style_source_layer_count": len(style_by_source_layer),
"contract_unmatched_count": sum(contract_unmatched.values()),
"zoom_hidden_count": sum(zoom_hidden.values()),
"visible_count": sum(visible.values()),
"sprite_key_count": None if sprite_keys is None else len(sprite_keys),
"sprite_missing_count": sum(sprite_missing.values()),
"contract_unmatched": [
{"z": z, "source_layer": sl, "count": count}
for (z, sl), count in sorted(contract_unmatched.items())
],
"zoom_hidden": [
{"z": z, "source_layer": sl, "count": count}
for (z, sl), count in sorted(zoom_hidden.items())
],
"sprite_missing": [
{"field": field, "sprite_key": key, "count": count}
for (field, key), count in sorted(sprite_missing.items())
],
"sprite_values": [
{"field": field, "sprite_key": key, "count": count}
for (field, key), count in sorted(sprite_values.items())
],
"overall": (
"PASS"
if sum(contract_unmatched.values()) == 0 and sum(sprite_missing.values()) == 0
else "FAIL"
),
}

View File

@@ -0,0 +1,611 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 全 Dataset → NavSea delivery Mapping Gap 审计 v1
目的
====
在已经完成 production 首轮生成后,对 Dataset 全量 chart_feature 与当前
cm95_to_navsea_v1.yaml 做只读对照,找出“当前 delivery 不会输出”的真实
object_class + geometry_type 组合。
这一步专门用于 production mapping 收口,不修改数据库、不生成 PBF。
默认输入:
dataset_id = 1
mapping = config/mappings/cm95_to_navsea_v1.yaml
默认输出:
build/production/cm95_global_mapping_gap_audit_v1.json
build/production/cm95_global_mapping_gap_variants_v1.csv
build/production/cm95_global_mapping_gap_samples_v1.jsonl
build/production/cm95_global_mapping_gap_summary_v1.txt
审计内容:
- 全 Dataset object_class + geometry_type + native_scale 数量;
- 当前 YAML 是否存在 exact rule;
- 同 object_class 的其它 geometry rule;
- 已知 hard_gate 是否出现未覆盖 geometry variant;
- 显式 ENGINEERING_ONLY / cm95_unmapped;
- 每个 gap variant 的属性键频率、样本值、relation20 覆盖;
- 每个 gap variant 的代表 Feature 样本。
数据库连接直接读取项目 .env:
CM93_DB_HOST
CM93_DB_PORT
CM93_DB_NAME
CM93_DB_USER
CM93_DB_PASSWORD
执行:
& ".\.venv\Scripts\python.exe" .\tools\cm95_global_mapping_gap_audit_v1.py `
--dataset-id 1 `
--mapping .\config\mappings\cm95_to_navsea_v1.yaml
"""
from __future__ import annotations
import argparse
import csv
import json
from collections import Counter, defaultdict
from pathlib import Path
from typing import Any
import pymysql
import yaml
from cm93db.config import load_config
DELIVERY_MAIN_STATUSES = {
"MAPPED",
"MAPPED_CONDITIONAL",
"COMPOSITE",
"MAPPED_DERIVED_POINTS",
}
DELIVERY_DERIVED_STATUSES = {
"MAPPED",
"MAPPED_CONDITIONAL",
"DERIVED_LABEL_ONLY",
}
def parse_args():
p = argparse.ArgumentParser(
description="CM95 全 Dataset → NavSea delivery Mapping Gap 审计 v1"
)
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument(
"--mapping",
default=r"config\mappings\cm95_to_navsea_v1.yaml",
)
p.add_argument(
"--output",
default=r"build\production\cm95_global_mapping_gap_audit_v1.json",
)
p.add_argument("--sample-per-variant", type=int, default=6)
p.add_argument("--attribute-value-limit", type=int, default=12)
return p.parse_args()
def json_dict(value: Any) -> dict[str, Any]:
if value is None:
return {}
if isinstance(value, dict):
return value
if isinstance(value, (bytes, bytearray, memoryview)):
value = bytes(value).decode("utf-8", errors="replace")
try:
obj = json.loads(str(value))
return obj if isinstance(obj, dict) else {}
except Exception:
return {}
def scalar_text(value: Any) -> str:
if isinstance(value, (dict, list)):
return json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":"))
return str(value)
def load_rules(path: Path):
obj = yaml.safe_load(path.read_text(encoding="utf-8")) or {}
rules = obj.get("rules") or obj.get("mappings") or []
if not isinstance(rules, list):
raise RuntimeError("mapping YAML 中找不到 rules/mappings list")
exact: dict[tuple[str, str], dict[str, Any]] = {}
by_class: dict[str, list[dict[str, Any]]] = defaultdict(list)
for rule in rules:
if not isinstance(rule, dict):
continue
cls = str(rule.get("cm95_object_class") or "").strip()
geom = str(rule.get("geometry_type") or "").strip().upper()
if not cls or not geom:
continue
exact[(cls, geom)] = rule
by_class[cls].append(rule)
return obj, exact, by_class
def has_delivery_output(rule: dict[str, Any]) -> bool:
status = str(rule.get("mapping_status") or "")
target = str(rule.get("target_source_layer") or "")
if target and target != "cm95_unmapped" and status in DELIVERY_MAIN_STATUSES:
return True
derived = rule.get("derived_outputs") or []
if derived and status in DELIVERY_DERIVED_STATUSES:
for item in derived:
if not isinstance(item, dict):
continue
layer = str(item.get("source_layer") or "")
if layer and layer != "cm95_unmapped":
return True
return False
def gap_reason(
cls: str,
geom: str,
exact_rules: dict[tuple[str, str], dict[str, Any]],
by_class: dict[str, list[dict[str, Any]]],
):
rule = exact_rules.get((cls, geom))
class_rules = by_class.get(cls, [])
if rule is None:
inherited_hard_gate = any(
str(r.get("safety_class") or "") == "hard_gate"
for r in class_rules
)
return {
"is_gap": True,
"reason": (
"NO_EXACT_RULE_KNOWN_HARD_GATE_VARIANT"
if inherited_hard_gate
else "NO_EXACT_RULE"
),
"rule": None,
"inherited_hard_gate": inherited_hard_gate,
}
if has_delivery_output(rule):
return {
"is_gap": False,
"reason": "DELIVERED",
"rule": rule,
"inherited_hard_gate": False,
}
target = str(rule.get("target_source_layer") or "")
status = str(rule.get("mapping_status") or "")
if target == "cm95_unmapped":
reason = "EXPLICIT_ENGINEERING_ONLY"
else:
reason = f"NOT_DELIVERED_STATUS_{status or 'EMPTY'}"
return {
"is_gap": True,
"reason": reason,
"rule": rule,
"inherited_hard_gate": (
str(rule.get("safety_class") or "") == "hard_gate"
),
}
def connect():
cfg = load_config()
return pymysql.connect(
host=cfg.host,
port=cfg.port,
user=cfg.user,
password=cfg.password,
database=cfg.database,
charset=cfg.charset,
cursorclass=pymysql.cursors.DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
write_timeout=30,
)
def main():
a = parse_args()
mapping_path = Path(a.mapping).resolve()
output_path = Path(a.output).resolve()
outdir = output_path.parent
outdir.mkdir(parents=True, exist_ok=True)
_mapping_obj, exact_rules, by_class = load_rules(mapping_path)
with connect() as conn:
try:
conn.cursor().execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
with conn.cursor() as cur:
cur.execute(
"""
SELECT
f.object_class_id,
f.object_class,
f.geometry_type,
f.native_scale,
COUNT(*) AS feature_count,
COUNT(DISTINCT f.cell_id) AS cell_count
FROM chart_feature f
WHERE f.dataset_id=%s
AND f.geometry_type IN ('POINT','LINE','AREA')
GROUP BY
f.object_class_id,
f.object_class,
f.geometry_type,
f.native_scale
ORDER BY
f.object_class,
f.geometry_type,
f.native_scale
""",
(a.dataset_id,),
)
grouped = list(cur.fetchall())
cur.execute(
"""
SELECT
object_class_id,
object_class,
geometry_code,
display_code,
description
FROM chart_dictionary_object
WHERE dataset_id=%s
""",
(a.dataset_id,),
)
dictionary_rows = list(cur.fetchall())
conn.rollback()
dictionary = {
int(r["object_class_id"]): r
for r in dictionary_rows
if r.get("object_class_id") is not None
}
variants: dict[tuple[str, str], dict[str, Any]] = {}
for row in grouped:
cls = str(row["object_class"])
geom = str(row["geometry_type"]).upper()
key = (cls, geom)
v = variants.setdefault(
key,
{
"object_class_id": (
int(row["object_class_id"])
if row.get("object_class_id") is not None
else None
),
"object_class": cls,
"geometry_type": geom,
"feature_count": 0,
"cell_count_max": 0,
"scale_counts": Counter(),
},
)
cnt = int(row["feature_count"])
v["feature_count"] += cnt
v["cell_count_max"] = max(v["cell_count_max"], int(row["cell_count"]))
v["scale_counts"][str(int(row["native_scale"]))] += cnt
gap_variants = []
for key, v in sorted(
variants.items(),
key=lambda kv: (-kv[1]["feature_count"], kv[0][0], kv[0][1]),
):
cls, geom = key
state = gap_reason(cls, geom, exact_rules, by_class)
if not state["is_gap"]:
continue
oid = v["object_class_id"]
d = dictionary.get(oid) if oid is not None else None
rule = state["rule"]
class_rules = by_class.get(cls, [])
item = {
"object_class_id": oid,
"object_class": cls,
"geometry_type": geom,
"feature_count": int(v["feature_count"]),
"cell_count": int(v["cell_count_max"]),
"scale_counts": dict(sorted(v["scale_counts"].items(), key=lambda x: int(x[0]))),
"gap_reason": state["reason"],
"dictionary_description": d.get("description") if d else None,
"dictionary_geometry_code": d.get("geometry_code") if d else None,
"dictionary_display_code": d.get("display_code") if d else None,
"exact_rule_id": str(rule.get("rule_id")) if rule else None,
"exact_rule_status": str(rule.get("mapping_status")) if rule else None,
"exact_rule_target": str(rule.get("target_source_layer")) if rule else None,
"exact_rule_safety": str(rule.get("safety_class")) if rule else None,
"class_known_geometry_rules": [
{
"geometry_type": str(r.get("geometry_type") or ""),
"rule_id": str(r.get("rule_id") or ""),
"target_source_layer": str(r.get("target_source_layer") or ""),
"mapping_status": str(r.get("mapping_status") or ""),
"safety_class": str(r.get("safety_class") or ""),
"canonical_object_type": str(r.get("canonical_object_type") or ""),
}
for r in class_rules
],
"inherited_hard_gate": bool(state["inherited_hard_gate"]),
"attribute_key_counts": {},
"attribute_value_samples": {},
"relation20_present": 0,
"relation20_missing": 0,
"sample_features": [],
}
gap_variants.append(item)
gap_keys = {(x["object_class"], x["geometry_type"]) for x in gap_variants}
gap_classes = sorted({x[0] for x in gap_keys})
# Gap rows are normally a small subset of Dataset. Read them once and
# build attribute/sample evidence in Python, avoiding dozens of SQL round trips.
if gap_classes:
placeholders = ",".join(["%s"] * len(gap_classes))
with connect() as conn:
try:
conn.cursor().execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
with conn.cursor() as cur:
cur.execute(
f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class_id,
f.object_class,
f.geometry_type,
f.native_scale,
f.raw_geotype,
f.coverage_id,
f.bbox_min_lon,
f.bbox_min_lat,
f.bbox_max_lon,
f.bbox_max_lat,
f.attributes_json,
f.geometry_repaired,
f.geometry_issue
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.object_class IN ({placeholders})
AND f.geometry_type IN ('POINT','LINE','AREA')
ORDER BY
f.object_class,
f.geometry_type,
f.native_scale,
c.source_relative_path,
f.source_record_index
""",
(a.dataset_id, *gap_classes),
)
source_rows = list(cur.fetchall())
conn.rollback()
else:
source_rows = []
item_by_key = {
(x["object_class"], x["geometry_type"]): x
for x in gap_variants
}
key_counters: dict[tuple[str, str], Counter] = defaultdict(Counter)
value_counters: dict[tuple[str, str, str], Counter] = defaultdict(Counter)
sample_counts: Counter = Counter()
sample_jsonl_path = outdir / "cm95_global_mapping_gap_samples_v1.jsonl"
with sample_jsonl_path.open("w", encoding="utf-8") as sample_file:
for row in source_rows:
key = (
str(row["object_class"]),
str(row["geometry_type"]).upper(),
)
item = item_by_key.get(key)
if item is None:
continue
attrs = json_dict(row.get("attributes_json"))
for attr_key, attr_value in attrs.items():
key_counters[key][str(attr_key)] += 1
value_counters[(key[0], key[1], str(attr_key))][scalar_text(attr_value)] += 1
rel = attrs.get("_cm93_relation20_raw")
if rel is None or rel == "":
item["relation20_missing"] += 1
else:
item["relation20_present"] += 1
if sample_counts[key] < max(1, int(a.sample_per_variant)):
sample_counts[key] += 1
sample = {
"feature_id": int(row["feature_id"]),
"cell_id": int(row["cell_id"]),
"source_relative_path": str(row["source_relative_path"]),
"source_record_index": int(row["source_record_index"]),
"object_class_id": (
int(row["object_class_id"])
if row.get("object_class_id") is not None
else None
),
"object_class": key[0],
"geometry_type": key[1],
"native_scale": int(row["native_scale"]),
"raw_geotype": row.get("raw_geotype"),
"coverage_id": row.get("coverage_id"),
"bbox": [
row.get("bbox_min_lon"),
row.get("bbox_min_lat"),
row.get("bbox_max_lon"),
row.get("bbox_max_lat"),
],
"attributes": attrs,
"geometry_repaired": bool(row.get("geometry_repaired")),
"geometry_issue": row.get("geometry_issue"),
}
item["sample_features"].append(sample)
sample_file.write(
json.dumps(sample, ensure_ascii=False, separators=(",", ":"), default=str)
+ "\n"
)
for item in gap_variants:
key = (item["object_class"], item["geometry_type"])
item["attribute_key_counts"] = dict(
key_counters[key].most_common()
)
values = {}
for attr_key, _count in key_counters[key].most_common():
values[attr_key] = [
{"value": value, "count": count}
for value, count in value_counters[
(key[0], key[1], attr_key)
].most_common(max(1, int(a.attribute_value_limit)))
]
item["attribute_value_samples"] = values
reason_counts = Counter()
gap_feature_total = 0
no_exact_total = 0
explicit_total = 0
inherited_hard_gate_total = 0
for item in gap_variants:
reason_counts[item["gap_reason"]] += 1
gap_feature_total += int(item["feature_count"])
if item["gap_reason"].startswith("NO_EXACT_RULE"):
no_exact_total += int(item["feature_count"])
else:
explicit_total += int(item["feature_count"])
if item["inherited_hard_gate"]:
inherited_hard_gate_total += int(item["feature_count"])
report = {
"schema": "navsea.cm95.global-mapping-gap-audit/v1",
"dataset_id": int(a.dataset_id),
"mapping_path": str(mapping_path),
"source_variant_count": len(variants),
"gap_variant_count": len(gap_variants),
"gap_object_class_count": len({x["object_class"] for x in gap_variants}),
"gap_feature_total": gap_feature_total,
"no_exact_rule_feature_total": no_exact_total,
"explicit_engineering_or_status_gap_feature_total": explicit_total,
"inherited_hard_gate_feature_total": inherited_hard_gate_total,
"gap_reason_counts": dict(reason_counts),
"gap_variants": gap_variants,
}
output_path.write_text(
json.dumps(report, ensure_ascii=False, indent=2, default=str),
encoding="utf-8",
)
csv_path = outdir / "cm95_global_mapping_gap_variants_v1.csv"
with csv_path.open("w", encoding="utf-8-sig", newline="") as f:
fields = [
"object_class_id",
"object_class",
"geometry_type",
"feature_count",
"cell_count",
"gap_reason",
"inherited_hard_gate",
"dictionary_description",
"dictionary_geometry_code",
"dictionary_display_code",
"exact_rule_id",
"exact_rule_status",
"exact_rule_target",
"exact_rule_safety",
"scale_counts",
"known_geometry_rules",
"attribute_keys",
"relation20_present",
"relation20_missing",
]
w = csv.DictWriter(f, fieldnames=fields)
w.writeheader()
for item in gap_variants:
w.writerow(
{
"object_class_id": item["object_class_id"],
"object_class": item["object_class"],
"geometry_type": item["geometry_type"],
"feature_count": item["feature_count"],
"cell_count": item["cell_count"],
"gap_reason": item["gap_reason"],
"inherited_hard_gate": item["inherited_hard_gate"],
"dictionary_description": item["dictionary_description"],
"dictionary_geometry_code": item["dictionary_geometry_code"],
"dictionary_display_code": item["dictionary_display_code"],
"exact_rule_id": item["exact_rule_id"],
"exact_rule_status": item["exact_rule_status"],
"exact_rule_target": item["exact_rule_target"],
"exact_rule_safety": item["exact_rule_safety"],
"scale_counts": json.dumps(item["scale_counts"], ensure_ascii=False, separators=(",", ":")),
"known_geometry_rules": json.dumps(item["class_known_geometry_rules"], ensure_ascii=False, separators=(",", ":")),
"attribute_keys": json.dumps(item["attribute_key_counts"], ensure_ascii=False, separators=(",", ":")),
"relation20_present": item["relation20_present"],
"relation20_missing": item["relation20_missing"],
}
)
txt_path = outdir / "cm95_global_mapping_gap_summary_v1.txt"
lines = [
"CM95 全 Dataset → NavSea delivery Mapping Gap 审计 v1",
"=" * 76,
f"Dataset ID : {a.dataset_id}",
f"Source variants : {len(variants)}",
f"Gap variants : {len(gap_variants)}",
f"Gap object classes : {report['gap_object_class_count']}",
f"Gap feature rows : {gap_feature_total}",
f"No exact rule rows : {no_exact_total}",
f"Explicit/status gap rows: {explicit_total}",
f"Inherited hard-gate rows: {inherited_hard_gate_total}",
"",
"Top gap variants:",
]
for item in gap_variants[:80]:
scales = ",".join(
f"{k}:{v}" for k, v in item["scale_counts"].items()
)
lines.append(
f" {item['object_class']:<10} {item['geometry_type']:<5} "
f"rows={item['feature_count']:<6} "
f"reason={item['gap_reason']:<34} "
f"hard={str(item['inherited_hard_gate']):<5} "
f"scales=[{scales}]"
)
lines += [
"",
f"JSON : {output_path}",
f"CSV : {csv_path}",
f"SAMPLES: {sample_jsonl_path}",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,105 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import annotations
import argparse
import json
from pathlib import Path
import yaml
DELIVERY_STATUSES = {"MAPPED", "MAPPED_CONDITIONAL", "COMPOSITE", "MAPPED_DERIVED_POINTS"}
def parse_args():
p = argparse.ArgumentParser(description="CM95 全 Dataset Mapping Gap 分类收口审计 v2")
p.add_argument("--gap-audit", default="build/production/cm95_global_mapping_gap_audit_v1.json")
p.add_argument("--mapping", default="config/mappings/cm95_to_navsea_v1.yaml")
p.add_argument("--disposition", default="config/mappings/cm95_gap_disposition_v1.yaml")
p.add_argument("--output", default="build/production/cm95_global_mapping_gap_closure_audit_v2.json")
return p.parse_args()
def main():
a = parse_args()
gap = json.loads(Path(a.gap_audit).read_text(encoding="utf-8"))
mapping = yaml.safe_load(Path(a.mapping).read_text(encoding="utf-8")) or {}
disposition = yaml.safe_load(Path(a.disposition).read_text(encoding="utf-8")) or {}
rules = {
(str(r.get("cm95_object_class") or ""), str(r.get("geometry_type") or "").upper()): r
for r in mapping.get("rules") or []
if isinstance(r, dict)
}
disp = {
(str(r.get("object_class") or ""), str(r.get("geometry_type") or "").upper()): r
for r in disposition.get("variants") or []
if isinstance(r, dict)
}
unclassified = []
pending = []
existing_non_delivery = []
newly_delivery = []
for item in gap.get("gap_variants") or []:
key = (str(item.get("object_class") or ""), str(item.get("geometry_type") or "").upper())
d = disp.get(key)
if d is None:
unclassified.append({"object_class": key[0], "geometry_type": key[1], "feature_count": item.get("feature_count")})
continue
state = str(d.get("disposition") or "")
row = {
"object_class": key[0],
"geometry_type": key[1],
"feature_count": int(item.get("feature_count") or 0),
"disposition": state,
}
if state == "ENGINEERING_ONLY_PENDING_SEMANTIC_REVIEW":
pending.append(row)
elif state == "DELIVERY_MAPPED_V1_4_3":
newly_delivery.append(row)
elif state.startswith("EXISTING_"):
existing_non_delivery.append(row)
fish = rules.get(("FSHHAV", "AREA"))
fish_ok = bool(
fish
and str(fish.get("target_source_layer")) == "anchor_caution_hazard_area"
and str(fish.get("safety_class")) == "hard_gate"
and str(fish.get("mapping_status")) in DELIVERY_STATUSES
)
contract = mapping.get("production_change_contract") or {}
changed_classes = sorted({str(v) for v in contract.get("delivery_output_changed_object_classes") or []})
changed_ok = changed_classes == ["FSHHAV"]
result = {
"schema": "navsea.cm95.global-mapping-gap-closure-audit/v2",
"dataset_id": gap.get("dataset_id"),
"observed_gap_variants": len(gap.get("gap_variants") or []),
"unclassified_variants": unclassified,
"newly_delivery_mapped": newly_delivery,
"existing_explicit_non_delivery": existing_non_delivery,
"pending_semantic_review": pending,
"pending_semantic_review_feature_rows": sum(x["feature_count"] for x in pending),
"fshhav_area_hard_gate_mapping_ok": fish_ok,
"delivery_output_changed_object_classes": changed_classes,
"delivery_change_contract_ok": changed_ok,
"semantic_completeness": "COMPLETE" if not pending else "PENDING_REVIEW",
"overall": "PASS" if not unclassified and fish_ok and changed_ok else "FAIL",
}
Path(a.output).parent.mkdir(parents=True, exist_ok=True)
Path(a.output).write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
print(f"Observed gap variants : {result['observed_gap_variants']}")
print(f"Unclassified variants : {len(unclassified)}")
print(f"New delivery mappings : {len(newly_delivery)}")
print(f"Pending semantic review : {len(pending)} variants / {result['pending_semantic_review_feature_rows']} rows")
print(f"FSHHAV AREA hard-gate : {'PASS' if fish_ok else 'FAIL'}")
print(f"Delivery change contract: {'PASS' if changed_ok else 'FAIL'} {changed_classes}")
print(f"Semantic completeness : {result['semantic_completeness']}")
print(f"OVERALL classification : {result['overall']}")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,190 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 → NavSea Mapping Contract 静态检查 v1
检查:
1. mapping 的正式 target_source_layer 是否被当前 style 实际消费;
2. chart_icon_image / chart_fill_pattern / chart_line_pattern 常量是否存在于 semantic sprite;
3. cm95_unmapped 不视为正式 style layer;
4. 输出 PASS/FAIL JSON。
示例:
python .\tools\cm95_mapping_contract_check_v1.py `
--mapping .\config\mappings\cm95_to_navsea_v1.yaml `
--style D:\path\style.navsea-delivery-full-semantic-unified-20260808.json `
--sprite-json D:\path\semantic-sprite\sprite.json
"""
from __future__ import annotations
import argparse
import json
from pathlib import Path
import yaml
SPRITE_FIELDS = {
"chart_icon_image",
"chart_fill_pattern",
"chart_line_pattern",
}
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--mapping", required=True)
p.add_argument("--style", required=True)
p.add_argument("--sprite-json", required=True)
p.add_argument("--output", default="cm95_mapping_contract_check_v1.json")
return p.parse_args()
def const_value(v):
if isinstance(v, dict) and set(v.keys()) == {"const"}:
return v["const"]
if isinstance(v, str):
return v
return None
def collect_sprite_refs(style_fields, path="style_fields"):
out = []
if not isinstance(style_fields, dict):
return out
for k, v in style_fields.items():
p = f"{path}.{k}"
if k in SPRITE_FIELDS:
c = const_value(v)
if isinstance(c, str) and c:
out.append((p, c))
if isinstance(v, dict):
out.extend(collect_sprite_refs(v, p))
elif isinstance(v, list):
for i, item in enumerate(v):
if isinstance(item, dict):
out.extend(
collect_sprite_refs(item, f"{p}[{i}]")
)
return out
def main():
a = parse_args()
mapping = yaml.safe_load(
Path(a.mapping).read_text(encoding="utf-8")
)
style = json.loads(
Path(a.style).read_text(encoding="utf-8")
)
sprite = json.loads(
Path(a.sprite_json).read_text(encoding="utf-8")
)
style_layers = {
layer.get("source-layer")
for layer in style.get("layers", [])
if layer.get("source") == "navsea_delivery"
and layer.get("source-layer")
}
sprite_keys = set(sprite)
layer_failures = []
sprite_failures = []
for rule in mapping.get("rules", []):
rid = rule.get("rule_id")
target = rule.get("target_source_layer")
if (
target
and target != "cm95_unmapped"
and target not in style_layers
):
layer_failures.append({
"rule_id": rid,
"target_source_layer": target,
})
for p, key in collect_sprite_refs(
rule.get("style_fields", {})
):
if key not in sprite_keys:
sprite_failures.append({
"rule_id": rid,
"path": p,
"sprite_key": key,
})
for i, derived in enumerate(
rule.get("derived_outputs", []) or []
):
layer = derived.get("source_layer")
if (
layer
and layer != "cm95_unmapped"
and layer not in style_layers
):
layer_failures.append({
"rule_id": rid,
"derived_index": i,
"target_source_layer": layer,
})
for p, key in collect_sprite_refs(
derived.get("style_fields", {}),
f"derived_outputs[{i}].style_fields",
):
if key not in sprite_keys:
sprite_failures.append({
"rule_id": rid,
"path": p,
"sprite_key": key,
})
result = {
"mapping": str(Path(a.mapping).resolve()),
"style": str(Path(a.style).resolve()),
"sprite_json": str(Path(a.sprite_json).resolve()),
"style_source_layer_count": len(style_layers),
"sprite_key_count": len(sprite_keys),
"rule_count": len(mapping.get("rules", [])),
"layer_failures": layer_failures,
"sprite_failures": sprite_failures,
"failure_count": (
len(layer_failures) + len(sprite_failures)
),
}
result["overall"] = (
"PASS" if result["failure_count"] == 0 else "FAIL"
)
Path(a.output).write_text(
json.dumps(result, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print(
f"Rules : {result['rule_count']}"
)
print(
f"Style source layers : {result['style_source_layer_count']}"
)
print(
f"Sprite keys : {result['sprite_key_count']}"
)
print(
f"Layer failures : {len(layer_failures)}"
)
print(
f"Sprite failures : {len(sprite_failures)}"
)
print(
f"OVERALL : {result['overall']}"
)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,375 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 / CM93 助航 relation20 全 AOI 审计 v1
用途
====
验证选定 PBF AOI(默认 z10/914/385)中 CM93 助航对象的
`_cm93_relation20_raw` 是否可以作为 CM95→NavSea `navigation_marks`
的稳定合成键。
重点检查:
- LIGHTS 与 BCNLAT / BCNSPP / BOYSPP / RTPBCN / TOWERS / _extgn 等是否共享 relation20;
- 同一 relation20 组的坐标是否一致;
- 是否存在一个 relation20 对应多个不相干坐标;
- LIGHTS 中有多少可以安全合并,有多少必须独立输出;
- relation20 缺失情况;
- 跨 Cell 不合并。
本脚本只读 MySQL,不修改 importer/schema。
默认 AOI:
z10/914/385
lon 141.328125 .. 141.6796875
lat 40.44694705960049 .. 40.71395582628604
"""
from __future__ import annotations
import argparse
import csv
import getpass
import json
import math
from collections import Counter, defaultdict
from datetime import datetime
from pathlib import Path
import pymysql
from pymysql.cursors import DictCursor
NAV_CLASSES = {
"LIGHTS",
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
"SISTAT",
"SISTAW",
}
BASE_CLASSES = {
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
"SISTAT",
"SISTAW",
}
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password", default=None)
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument("--min-lon", type=float, default=141.328125)
p.add_argument("--min-lat", type=float, default=40.44694705960049)
p.add_argument("--max-lon", type=float, default=141.6796875)
p.add_argument("--max-lat", type=float, default=40.71395582628604)
p.add_argument(
"--coord-tolerance-deg",
type=float,
default=1e-7,
help="同 relation20 组坐标最大容差,默认约厘米级~十米级以下的严格检查",
)
p.add_argument("--output-dir", default=".")
return p.parse_args()
def rel20(attrs):
if not isinstance(attrs, dict):
return None
v = attrs.get("_cm93_relation20_raw")
if v is None:
return None
try:
return int(v)
except Exception:
return str(v)
def coord_distance_deg(a, b):
return math.hypot(a[0] - b[0], a[1] - b[1])
def write_csv(path, rows):
rows = list(rows)
if not rows:
path.write_text("", encoding="utf-8-sig")
return
keys = []
seen = set()
for row in rows:
for k in row:
if k not in seen:
seen.add(k)
keys.append(k)
with path.open("w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=keys)
w.writeheader()
for row in rows:
out = {}
for k in keys:
v = row.get(k)
if isinstance(v, (list, dict, tuple)):
v = json.dumps(v, ensure_ascii=False, default=str)
out[k] = v
w.writerow(out)
def main():
a = parse_args()
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
outdir = Path(a.output_dir).resolve()
outdir.mkdir(parents=True, exist_ok=True)
conn = pymysql.connect(
host=a.host,
port=a.port,
user=a.user,
password=a.password,
database=a.database,
charset="utf8mb4",
cursorclass=DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
)
rows = []
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
try:
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
placeholders = ",".join(["%s"] * len(NAV_CLASSES))
sql = f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class,
f.native_scale,
f.bbox_min_lon,
f.bbox_min_lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.geometry_type='POINT'
AND f.object_class IN ({placeholders})
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.cell_id,
f.native_scale,
f.object_class,
f.source_record_index
"""
params = [
a.dataset_id,
*sorted(NAV_CLASSES),
a.min_lon,
a.max_lon,
a.min_lat,
a.max_lat,
]
cur.execute(sql, params)
rows = list(cur.fetchall())
conn.rollback()
finally:
conn.close()
for row in rows:
attrs = row.get("attributes_json")
if isinstance(attrs, str):
try:
attrs = json.loads(attrs)
except Exception:
attrs = {}
elif attrs is None:
attrs = {}
row["attributes"] = attrs
row["relation20"] = rel20(attrs)
row["lon"] = float(row["bbox_min_lon"])
row["lat"] = float(row["bbox_min_lat"])
row.pop("attributes_json", None)
groups = defaultdict(list)
no_relation = []
for row in rows:
rel = row["relation20"]
if rel is None:
no_relation.append(row)
else:
groups[(int(row["cell_id"]), rel)].append(row)
group_rows = []
light_total = 0
light_with_relation = 0
light_mergeable = 0
light_relation_without_base = 0
coord_conflict_groups = 0
for row in rows:
if row["object_class"] == "LIGHTS":
light_total += 1
if row["relation20"] is not None:
light_with_relation += 1
for (cell_id, relation20), members in sorted(groups.items()):
classes = Counter(m["object_class"] for m in members)
coords = [(m["lon"], m["lat"]) for m in members]
base = coords[0]
max_spread = max(coord_distance_deg(base, c) for c in coords)
has_light = classes["LIGHTS"] > 0
base_members = [
m for m in members
if m["object_class"] in BASE_CLASSES
]
has_base = bool(base_members)
if max_spread > a.coord_tolerance_deg:
coord_conflict_groups += 1
if has_light and has_base and max_spread <= a.coord_tolerance_deg:
light_mergeable += classes["LIGHTS"]
elif has_light and not has_base:
light_relation_without_base += classes["LIGHTS"]
group_rows.append({
"cell_id": cell_id,
"relation20": relation20,
"member_count": len(members),
"classes": dict(classes),
"has_light": has_light,
"has_base_component": has_base,
"base_classes": sorted(
set(m["object_class"] for m in base_members)
),
"max_coord_spread_deg": max_spread,
"coord_ok": max_spread <= a.coord_tolerance_deg,
"members": [
{
"feature_id": m["feature_id"],
"source_record_index": m["source_record_index"],
"object_class": m["object_class"],
"native_scale": m["native_scale"],
"lon": m["lon"],
"lat": m["lat"],
"attributes": m["attributes"],
}
for m in members
],
})
no_relation_counts = Counter(
r["object_class"] for r in no_relation
)
standalone_lights = [
r for r in rows
if r["object_class"] == "LIGHTS"
and (
r["relation20"] is None
or not any(
g["cell_id"] == r["cell_id"]
and g["relation20"] == r["relation20"]
and g["has_base_component"]
and g["coord_ok"]
for g in group_rows
)
)
]
report = {
"version": "v1",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"aoi_bbox": [
a.min_lon, a.min_lat, a.max_lon, a.max_lat
],
"coord_tolerance_deg": a.coord_tolerance_deg,
"counts": {
"nav_point_rows": len(rows),
"relation_groups": len(groups),
"rows_without_relation20": len(no_relation),
"coord_conflict_groups": coord_conflict_groups,
"light_total": light_total,
"light_with_relation20": light_with_relation,
"light_mergeable_by_relation20": light_mergeable,
"light_relation_without_base": light_relation_without_base,
"light_standalone_required": len(standalone_lights),
},
"no_relation_by_class": dict(no_relation_counts),
"groups": group_rows,
"standalone_lights": standalone_lights,
"decision": (
"PASS_RELATION20_PRIMARY_KEY"
if light_total > 0
and light_mergeable > 0
and coord_conflict_groups == 0
else "REVIEW_RELATION20"
),
}
json_path = outdir / "cm95_nav_aid_relation_audit_v1.json"
csv_path = outdir / "cm95_nav_aid_relation_groups_v1.csv"
txt_path = outdir / "cm95_nav_aid_relation_audit_v1.txt"
json_path.write_text(
json.dumps(report, ensure_ascii=False, indent=2, default=str),
encoding="utf-8",
)
write_csv(csv_path, group_rows)
lines = [
"CM95 / CM93 助航 relation20 全 AOI 审计 v1",
"=" * 76,
f"NAV point rows : {len(rows)}",
f"Relation groups : {len(groups)}",
f"Rows without relation20 : {len(no_relation)}",
f"Coordinate conflict groups : {coord_conflict_groups}",
"",
f"LIGHTS total : {light_total}",
f"LIGHTS with relation20 : {light_with_relation}",
f"LIGHTS mergeable : {light_mergeable}",
f"LIGHTS relation no base : {light_relation_without_base}",
f"LIGHTS standalone required : {len(standalone_lights)}",
"",
f"DECISION : {report['decision']}",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
print("")
print("输出:")
print(json_path)
print(csv_path)
print(txt_path)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,546 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 / CM93 助航名称候选审计 v1
目的
====
为 CM95→NavSea `navigation_marks.chart_label_text` 找到可审计的 CM95 自有名称来源,
不使用 NEWPEC/reference PBF 名称反灌。
默认检查第一测试 AOI:
z10/914/385
lon 141.328125 .. 141.6796875
lat 40.44694705960049 .. 40.71395582628604
默认重点比例尺:
1:200000
候选来源:
1. 助航组件自身 OBJNAM / NOBJNM;
2. 同 cell、同 native_scale 的 `_texto._texta.text`;
3. 同 native_scale、邻近 cell 的 `_texto._texta.text`,仅作为低置信参考。
关联原则:
- 助航组件仍然用 `(cell_id, _cm93_relation20_raw)` 合成;
- 本脚本只审计名称,不改变 relation20 合成规则;
- 不自动把最近文字当名称;
- 输出距离和来源,由下一步确定安全规则。
输出:
cm95_nav_name_candidates_v1.json
cm95_nav_name_candidates_v1.csv
cm95_nav_name_candidates_v1.txt
执行:
python .\tools\cm95_nav_name_candidate_audit_v1.py `
--host 127.0.0.1 `
--port 3306 `
--user root `
--database cm93_chart `
--dataset-id 1 `
--native-scale 200000
"""
from __future__ import annotations
import argparse
import csv
import getpass
import json
import math
from collections import defaultdict
from datetime import datetime
from pathlib import Path
from typing import Any
import pymysql
from pymysql.cursors import DictCursor
NAV_CLASSES = {
"LIGHTS",
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
"SISTAT",
"SISTAW",
}
DIRECT_NAME_KEYS = (
"OBJNAM",
"NOBJNM",
)
DEFAULT_BBOX = (
141.328125,
40.44694705960049,
141.6796875,
40.71395582628604,
)
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password", default=None)
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument("--native-scale", type=int, default=200000)
p.add_argument("--min-lon", type=float, default=DEFAULT_BBOX[0])
p.add_argument("--min-lat", type=float, default=DEFAULT_BBOX[1])
p.add_argument("--max-lon", type=float, default=DEFAULT_BBOX[2])
p.add_argument("--max-lat", type=float, default=DEFAULT_BBOX[3])
p.add_argument(
"--radius-m",
type=float,
default=800.0,
help="每个助航对象保存的文字候选搜索半径",
)
p.add_argument(
"--candidate-limit",
type=int,
default=12,
)
p.add_argument("--output-dir", default=".")
return p.parse_args()
def json_dict(value: Any) -> dict[str, Any]:
if value is None:
return {}
if isinstance(value, dict):
return value
if isinstance(value, (bytes, bytearray, memoryview)):
value = bytes(value).decode("utf-8", "replace")
try:
obj = json.loads(value)
except Exception:
return {}
return obj if isinstance(obj, dict) else {}
def relation20(attrs: dict[str, Any]):
value = attrs.get("_cm93_relation20_raw")
if value is None:
return None
try:
return int(value)
except Exception:
return str(value)
def texta(attrs: dict[str, Any]):
value = attrs.get("_texta")
if not isinstance(value, dict):
return None, None
text = value.get("text")
prefix = value.get("prefix")
if text is None:
return None, prefix
text = str(text).strip()
return (text or None), prefix
def direct_names(attrs: dict[str, Any]):
out = []
for key in DIRECT_NAME_KEYS:
value = attrs.get(key)
if isinstance(value, str) and value.strip():
out.append({
"field": key,
"text": value.strip(),
})
return out
def haversine_m(lon1, lat1, lon2, lat2):
r = 6371008.8
p1 = math.radians(lat1)
p2 = math.radians(lat2)
dp = p2 - p1
dl = math.radians(lon2 - lon1)
a = (
math.sin(dp / 2) ** 2
+ math.cos(p1) * math.cos(p2)
* math.sin(dl / 2) ** 2
)
return 2 * r * math.asin(min(1.0, math.sqrt(a)))
def write_csv(path: Path, rows):
rows = list(rows)
fields = [
"cell_id",
"source_relative_path",
"native_scale",
"relation20",
"lon",
"lat",
"component_classes",
"component_source_record_indices",
"direct_names",
"nearest_same_cell_text",
"nearest_same_cell_distance_m",
"nearest_any_cell_text",
"nearest_any_cell_distance_m",
"same_cell_candidate_count",
"all_candidate_count",
"candidate_summary",
]
with path.open("w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=fields)
w.writeheader()
for row in rows:
out = dict(row)
for key in (
"component_classes",
"component_source_record_indices",
"direct_names",
"candidate_summary",
):
out[key] = json.dumps(
out.get(key),
ensure_ascii=False,
separators=(",", ":"),
)
w.writerow(out)
def main():
a = parse_args()
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
outdir = Path(a.output_dir).resolve()
outdir.mkdir(parents=True, exist_ok=True)
conn = pymysql.connect(
host=a.host,
port=a.port,
user=a.user,
password=a.password,
database=a.database,
charset="utf8mb4",
cursorclass=DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
)
nav_rows = []
text_rows = []
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
try:
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
placeholders = ",".join(["%s"] * len(NAV_CLASSES))
cur.execute(
f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale=%s
AND f.geometry_type='POINT'
AND f.object_class IN ({placeholders})
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
a.native_scale,
*sorted(NAV_CLASSES),
a.min_lon,
a.max_lon,
a.min_lat,
a.max_lat,
),
)
nav_rows = list(cur.fetchall())
# 扩大少量边界,避免 tile 边缘的文字候选被切掉。
lat_pad = a.radius_m / 111320.0
mid_lat = (a.min_lat + a.max_lat) / 2.0
lon_pad = (
a.radius_m
/ max(1.0, 111320.0 * math.cos(math.radians(mid_lat)))
)
cur.execute(
"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale=%s
AND f.geometry_type='POINT'
AND f.object_class='_texto'
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
a.native_scale,
a.min_lon - lon_pad,
a.max_lon + lon_pad,
a.min_lat - lat_pad,
a.max_lat + lat_pad,
),
)
text_rows = list(cur.fetchall())
conn.rollback()
finally:
conn.close()
for row in nav_rows:
row["attributes"] = json_dict(row.pop("attributes_json"))
row["relation20"] = relation20(row["attributes"])
row["lon"] = float(row["lon"])
row["lat"] = float(row["lat"])
parsed_text = []
for row in text_rows:
attrs = json_dict(row.pop("attributes_json"))
text, prefix = texta(attrs)
if not text:
continue
parsed_text.append({
"feature_id": int(row["feature_id"]),
"cell_id": int(row["cell_id"]),
"source_relative_path": str(row["source_relative_path"]),
"source_record_index": int(row["source_record_index"]),
"native_scale": int(row["native_scale"]),
"lon": float(row["lon"]),
"lat": float(row["lat"]),
"text": text,
"prefix": prefix,
})
groups = defaultdict(list)
standalone = []
for row in nav_rows:
rel = row["relation20"]
if rel is None:
standalone.append([row])
else:
groups[(int(row["cell_id"]), rel)].append(row)
nav_groups = list(groups.values()) + standalone
results = []
for members in nav_groups:
# relation20 组成员已由上一步证明同址;
# standalone 则只有一条。
lon = sum(m["lon"] for m in members) / len(members)
lat = sum(m["lat"] for m in members) / len(members)
cell_id = int(members[0]["cell_id"])
source_path = str(members[0]["source_relative_path"])
rel = members[0]["relation20"]
strong_names = []
for m in members:
for n in direct_names(m["attributes"]):
strong_names.append({
"object_class": m["object_class"],
"source_record_index": m["source_record_index"],
**n,
})
candidates = []
for t in parsed_text:
distance = haversine_m(
lon,
lat,
t["lon"],
t["lat"],
)
if distance > a.radius_m:
continue
candidates.append({
**t,
"same_cell": t["cell_id"] == cell_id,
"distance_m": round(distance, 2),
})
candidates.sort(
key=lambda c: (
not c["same_cell"],
c["distance_m"],
c["text"],
)
)
same_cell = [
c for c in candidates if c["same_cell"]
]
nearest_same = same_cell[0] if same_cell else None
nearest_any = (
min(candidates, key=lambda c: c["distance_m"])
if candidates
else None
)
results.append({
"cell_id": cell_id,
"source_relative_path": source_path,
"native_scale": a.native_scale,
"relation20": rel,
"lon": lon,
"lat": lat,
"component_classes": [
m["object_class"] for m in members
],
"component_source_record_indices": [
int(m["source_record_index"]) for m in members
],
"direct_names": strong_names,
"nearest_same_cell_text": (
nearest_same["text"] if nearest_same else None
),
"nearest_same_cell_distance_m": (
nearest_same["distance_m"] if nearest_same else None
),
"nearest_any_cell_text": (
nearest_any["text"] if nearest_any else None
),
"nearest_any_cell_distance_m": (
nearest_any["distance_m"] if nearest_any else None
),
"same_cell_candidate_count": len(same_cell),
"all_candidate_count": len(candidates),
"candidate_summary": candidates[: a.candidate_limit],
})
results.sort(
key=lambda r: (
r["cell_id"],
-1 if r["relation20"] is None else r["relation20"],
r["lon"],
r["lat"],
)
)
direct_named = sum(
1 for r in results if r["direct_names"]
)
same_100 = sum(
1
for r in results
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 100.0
)
same_250 = sum(
1
for r in results
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 250.0
)
report = {
"schema": "navsea.cm95.nav-name-candidate-audit/v1",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"native_scale": a.native_scale,
"aoi_bbox": [
a.min_lon,
a.min_lat,
a.max_lon,
a.max_lat,
],
"search_radius_m": a.radius_m,
"counts": {
"nav_component_rows": len(nav_rows),
"nav_groups": len(results),
"texto_rows_with_text": len(parsed_text),
"groups_with_direct_OBJNAM_or_NOBJNM": direct_named,
"groups_with_same_cell_text_within_100m": same_100,
"groups_with_same_cell_text_within_250m": same_250,
},
"groups": results,
"decision": (
"DATA_READY_FOR_NAME_ASSOCIATION_REVIEW"
if results
else "NO_NAV_GROUPS"
),
}
json_path = outdir / "cm95_nav_name_candidates_v1.json"
csv_path = outdir / "cm95_nav_name_candidates_v1.csv"
txt_path = outdir / "cm95_nav_name_candidates_v1.txt"
json_path.write_text(
json.dumps(
report,
ensure_ascii=False,
indent=2,
default=str,
),
encoding="utf-8",
)
write_csv(csv_path, results)
lines = [
"CM95 / CM93 助航名称候选审计 v1",
"=" * 76,
f"Native scale : {a.native_scale}",
f"Nav component rows : {len(nav_rows)}",
f"Nav groups : {len(results)}",
f"_texto rows with text : {len(parsed_text)}",
f"Groups with direct OBJNAM/NOBJNM : {direct_named}",
f"Same-cell text <=100m : {same_100}",
f"Same-cell text <=250m : {same_250}",
"",
"注意:最近文字只是候选,不代表自动确定为助航名称。",
"下一步由映射审计决定哪些关系可安全写入 chart_label_text。",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
print("")
print(json_path)
print(csv_path)
print(txt_path)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,285 @@
from __future__ import annotations
import argparse
import csv
import json
from collections import Counter, defaultdict
from pathlib import Path
from typing import Any
def parse_args() -> argparse.Namespace:
p = argparse.ArgumentParser(
description="Audit CM95 navigation composite name conflicts from production trace reports."
)
p.add_argument("--release-dir", required=True, type=Path)
p.add_argument(
"--profile",
default="delivery",
choices=["delivery", "engineering"],
)
p.add_argument("--output-json", required=True, type=Path)
p.add_argument("--output-csv", required=True, type=Path)
return p.parse_args()
def tile_from_trace_path(trace_path: Path, trace_root: Path) -> str:
rel = trace_path.relative_to(trace_root)
parts = rel.parts
if len(parts) < 3:
return rel.as_posix()
z, x, y_name = parts[-3], parts[-2], parts[-1]
y = y_name.replace(".trace.jsonl", "")
return f"{z}/{x}/{y}"
def read_jsonl(path: Path):
with path.open("r", encoding="utf-8") as f:
for line_no, raw in enumerate(f, 1):
raw = raw.strip()
if not raw:
continue
try:
obj = json.loads(raw)
except json.JSONDecodeError as exc:
raise RuntimeError(f"{path}:{line_no}: invalid JSON: {exc}") from exc
if isinstance(obj, dict):
yield obj
def main() -> int:
args = parse_args()
release_dir = args.release_dir.resolve()
report_root = release_dir / "reports" / args.profile
if not report_root.exists():
raise SystemExit(f"report root not found: {report_root}")
trace_files = sorted(report_root.rglob("*.trace.jsonl"))
report_files = sorted(
p for p in report_root.rglob("*.json")
if not p.name.endswith(".trace.json")
)
report_conflict_occurrences = 0
for path in report_files:
try:
obj = json.loads(path.read_text(encoding="utf-8"))
except Exception:
continue
report_conflict_occurrences += int(
(obj.get("navigation_composites") or {}).get("name_conflict_groups") or 0
)
raw_conflicts: list[dict[str, Any]] = []
for trace_path in trace_files:
tile = tile_from_trace_path(trace_path, report_root)
z = int(tile.split("/", 1)[0]) if "/" in tile else None
for row in read_jsonl(trace_path):
if row.get("nav_name_conflict") is not True:
continue
candidates = [
str(v) for v in (row.get("nav_name_candidates") or [])
if v is not None and str(v) != ""
]
components = [
str(v) for v in (row.get("source_component_ids") or [])
if v is not None
]
raw_conflicts.append(
{
"tile": tile,
"zoom": z,
"output_id": row.get("output_id"),
"output_layer": row.get("output_layer"),
"source_id": row.get("source_id"),
"relation20": row.get("relation20"),
"native_scale": row.get("native_scale"),
"mapping_rule_id": row.get("mapping_rule_id"),
"mapping_status": row.get("mapping_status"),
"nav_name_source": row.get("nav_name_source"),
"nav_name_candidates": candidates,
"source_component_ids": components,
"trace_path": str(trace_path.relative_to(release_dir)).replace("\\", "/"),
}
)
unique: dict[str, dict[str, Any]] = {}
for item in raw_conflicts:
output_id = item.get("output_id")
if output_id is not None:
key = f"output_id:{output_id}"
else:
key = json.dumps(
{
"source_id": item.get("source_id"),
"relation20": item.get("relation20"),
"native_scale": item.get("native_scale"),
"components": sorted(item.get("source_component_ids") or []),
},
sort_keys=True,
ensure_ascii=False,
)
if key not in unique:
unique[key] = {
"key": key,
"output_id": item.get("output_id"),
"output_layer": item.get("output_layer"),
"source_id": item.get("source_id"),
"relation20": item.get("relation20"),
"native_scale": item.get("native_scale"),
"mapping_rule_id": item.get("mapping_rule_id"),
"mapping_status": item.get("mapping_status"),
"nav_name_candidates": list(item.get("nav_name_candidates") or []),
"source_component_ids": list(item.get("source_component_ids") or []),
"occurrences": 0,
"tiles": [],
"zooms": [],
"trace_paths": [],
}
u = unique[key]
u["occurrences"] += 1
tile = item["tile"]
if tile not in u["tiles"]:
u["tiles"].append(tile)
z = item.get("zoom")
if z is not None and z not in u["zooms"]:
u["zooms"].append(z)
tpath = item["trace_path"]
if tpath not in u["trace_paths"]:
u["trace_paths"].append(tpath)
# Preserve any candidates/components that differ across repeated tile occurrences.
for candidate in item.get("nav_name_candidates") or []:
if candidate not in u["nav_name_candidates"]:
u["nav_name_candidates"].append(candidate)
for component in item.get("source_component_ids") or []:
if component not in u["source_component_ids"]:
u["source_component_ids"].append(component)
unique_rows = list(unique.values())
for row in unique_rows:
row["tiles"].sort()
row["zooms"].sort()
row["trace_paths"].sort()
unique_rows.sort(
key=lambda r: (
-(int(r.get("occurrences") or 0)),
int(r.get("native_scale") or 0),
str(r.get("source_id") or ""),
)
)
zoom_occurrences = Counter(
int(x["zoom"]) for x in raw_conflicts if x.get("zoom") is not None
)
scale_unique = Counter(
int(x["native_scale"]) for x in unique_rows if x.get("native_scale") is not None
)
candidate_count_unique = Counter(
len(x.get("nav_name_candidates") or []) for x in unique_rows
)
tile_set = {x["tile"] for x in raw_conflicts}
result = {
"schema": "navsea.cm95.nav-name-conflict-audit/v1",
"release_dir": str(release_dir),
"profile": args.profile,
"trace_file_count": len(trace_files),
"report_file_count": len(report_files),
"report_name_conflict_occurrences": report_conflict_occurrences,
"trace_name_conflict_occurrences": len(raw_conflicts),
"unique_conflict_outputs": len(unique_rows),
"affected_tiles": len(tile_set),
"occurrences_by_zoom": dict(sorted(zoom_occurrences.items())),
"unique_conflicts_by_native_scale": dict(sorted(scale_unique.items())),
"unique_conflicts_by_candidate_count": dict(sorted(candidate_count_unique.items())),
"unique_conflicts": unique_rows,
}
args.output_json.parent.mkdir(parents=True, exist_ok=True)
args.output_json.write_text(
json.dumps(result, ensure_ascii=False, indent=2),
encoding="utf-8",
)
args.output_csv.parent.mkdir(parents=True, exist_ok=True)
with args.output_csv.open("w", encoding="utf-8-sig", newline="") as f:
writer = csv.DictWriter(
f,
fieldnames=[
"output_id",
"source_id",
"relation20",
"native_scale",
"occurrences",
"tile_count",
"zooms",
"nav_name_candidates",
"source_component_ids",
"mapping_rule_id",
"mapping_status",
],
)
writer.writeheader()
for row in unique_rows:
writer.writerow(
{
"output_id": row.get("output_id"),
"source_id": row.get("source_id"),
"relation20": row.get("relation20"),
"native_scale": row.get("native_scale"),
"occurrences": row.get("occurrences"),
"tile_count": len(row.get("tiles") or []),
"zooms": "|".join(str(v) for v in row.get("zooms") or []),
"nav_name_candidates": " | ".join(row.get("nav_name_candidates") or []),
"source_component_ids": " | ".join(row.get("source_component_ids") or []),
"mapping_rule_id": row.get("mapping_rule_id"),
"mapping_status": row.get("mapping_status"),
}
)
print("CM95 navigation name conflict audit")
print("=" * 72)
print(f"Release : {release_dir}")
print(f"Report conflict occurrences : {report_conflict_occurrences}")
print(f"Trace conflict occurrences : {len(raw_conflicts)}")
print(f"Unique conflict outputs : {len(unique_rows)}")
print(f"Affected tiles : {len(tile_set)}")
print(f"JSON : {args.output_json}")
print(f"CSV : {args.output_csv}")
if report_conflict_occurrences != len(raw_conflicts):
print("")
print("WARNING: report count and trace count differ; inspect reports before changing policy.")
print("")
print("Top unique conflicts:")
for row in unique_rows[:20]:
print(
f" output_id={row.get('output_id')} "
f"scale={row.get('native_scale')} "
f"occ={row.get('occurrences')} "
f"tiles={len(row.get('tiles') or [])} "
f"relation20={row.get('relation20')} "
f"names={row.get('nav_name_candidates')}"
)
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,716 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""
CM95 / CM93 助航名称多尺度与显式关系审计 v2
目标
====
确认 CM95 自身是否存在可安全写入 NavSea
`navigation_marks.chart_label_text` 的名称来源。
重点:
1. 同时检查 1:20,000 / 1:50,000 / 1:200,000;
2. 优先检查助航对象和 `_texto` 中的显式关系/索引字段;
3. 再检查同 Cell 最近文字;
4. 不自动把最近文字当名称;
5. 不读取或反灌 NEWPEC/reference PBF 名称;
6. 只读 MySQL,不修改 importer/schema。
默认 AOI:
z10/914/385
lon 141.328125 .. 141.6796875
lat 40.44694705960049 .. 40.71395582628604
输出:
- cm95_nav_name_multiscale_audit_v2.json
- cm95_nav_name_multiscale_groups_v2.csv
- cm95_nav_text_relation_fields_v2.csv
- cm95_nav_name_multiscale_audit_v2.txt
"""
from __future__ import annotations
import argparse
import csv
import getpass
import json
import math
from collections import Counter, defaultdict
from datetime import datetime
from pathlib import Path
from typing import Any
import pymysql
from pymysql.cursors import DictCursor
NAV_CLASSES = {
"LIGHTS",
"BCNLAT",
"BCNSPP",
"BOYSPP",
"RTPBCN",
"TOWERS",
"_extgn",
"SISTAT",
"SISTAW",
}
DEFAULT_SCALES = (20000, 50000, 200000)
DIRECT_NAME_KEYS = ("OBJNAM", "NOBJNM")
RELATION_KEY_HINTS = (
"relation",
"related",
"index",
"record",
"assoc",
"link",
"ref",
"cm93",
)
DEFAULT_BBOX = (
141.328125,
40.44694705960049,
141.6796875,
40.71395582628604,
)
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--host", default="127.0.0.1")
p.add_argument("--port", type=int, default=3306)
p.add_argument("--user", default="root")
p.add_argument("--password", default=None)
p.add_argument("--database", default="cm93_chart")
p.add_argument("--dataset-id", type=int, default=1)
p.add_argument(
"--scales",
default="20000,50000,200000",
help="逗号分隔,例如 20000,50000,200000",
)
p.add_argument("--min-lon", type=float, default=DEFAULT_BBOX[0])
p.add_argument("--min-lat", type=float, default=DEFAULT_BBOX[1])
p.add_argument("--max-lon", type=float, default=DEFAULT_BBOX[2])
p.add_argument("--max-lat", type=float, default=DEFAULT_BBOX[3])
p.add_argument("--radius-m", type=float, default=800.0)
p.add_argument("--candidate-limit", type=int, default=12)
p.add_argument("--output-dir", default=".")
return p.parse_args()
def json_dict(value: Any) -> dict[str, Any]:
if value is None:
return {}
if isinstance(value, dict):
return value
if isinstance(value, (bytes, bytearray, memoryview)):
value = bytes(value).decode("utf-8", "replace")
try:
obj = json.loads(value)
except Exception:
return {}
return obj if isinstance(obj, dict) else {}
def relation20(attrs: dict[str, Any]):
value = attrs.get("_cm93_relation20_raw")
if value is None:
return None
try:
return int(value)
except Exception:
return str(value)
def texta(attrs: dict[str, Any]):
value = attrs.get("_texta")
if not isinstance(value, dict):
return None, None
text = value.get("text")
prefix = value.get("prefix")
if text is None:
return None, prefix
text = str(text).strip()
return (text or None), prefix
def direct_names(attrs: dict[str, Any]):
out = []
for key in DIRECT_NAME_KEYS:
value = attrs.get(key)
if isinstance(value, str) and value.strip():
out.append({"field": key, "text": value.strip()})
return out
def relation_like_fields(attrs: dict[str, Any]):
out = {}
for key, value in attrs.items():
lk = str(key).lower()
if any(h in lk for h in RELATION_KEY_HINTS):
out[key] = value
return out
def haversine_m(lon1, lat1, lon2, lat2):
r = 6371008.8
p1 = math.radians(lat1)
p2 = math.radians(lat2)
dp = p2 - p1
dl = math.radians(lon2 - lon1)
a = (
math.sin(dp / 2) ** 2
+ math.cos(p1) * math.cos(p2)
* math.sin(dl / 2) ** 2
)
return 2 * r * math.asin(min(1.0, math.sqrt(a)))
def flatten_relation_values(obj: Any):
"""用于审计,不解释语义。把标量/list/dict转成可比较字符串集合。"""
values = set()
def walk(v):
if v is None:
return
if isinstance(v, dict):
for kk, vv in v.items():
values.add(f"{kk}={json.dumps(vv, ensure_ascii=False, sort_keys=True, default=str)}")
walk(vv)
elif isinstance(v, list):
for item in v:
walk(item)
else:
values.add(str(v))
walk(obj)
return values
def write_csv(path: Path, rows, fields):
with path.open("w", encoding="utf-8-sig", newline="") as f:
w = csv.DictWriter(f, fieldnames=fields)
w.writeheader()
for row in rows:
out = {}
for field in fields:
value = row.get(field)
if isinstance(value, (dict, list, tuple)):
value = json.dumps(
value,
ensure_ascii=False,
separators=(",", ":"),
default=str,
)
out[field] = value
w.writerow(out)
def main():
a = parse_args()
scales = tuple(
sorted(
{
int(x.strip())
for x in a.scales.split(",")
if x.strip()
}
)
)
if not scales:
raise SystemExit("scales 不能为空")
if a.password is None:
a.password = getpass.getpass("MySQL password: ")
outdir = Path(a.output_dir).resolve()
outdir.mkdir(parents=True, exist_ok=True)
conn = pymysql.connect(
host=a.host,
port=a.port,
user=a.user,
password=a.password,
database=a.database,
charset="utf8mb4",
cursorclass=DictCursor,
autocommit=False,
connect_timeout=20,
read_timeout=900,
)
nav_rows = []
text_rows = []
try:
with conn.cursor() as cur:
try:
cur.execute("SET SESSION TRANSACTION READ ONLY")
except Exception:
pass
try:
cur.execute("START TRANSACTION READ ONLY")
except Exception:
cur.execute("START TRANSACTION")
nav_ph = ",".join(["%s"] * len(NAV_CLASSES))
scale_ph = ",".join(["%s"] * len(scales))
cur.execute(
f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale IN ({scale_ph})
AND f.geometry_type='POINT'
AND f.object_class IN ({nav_ph})
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.native_scale,
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
*scales,
*sorted(NAV_CLASSES),
a.min_lon,
a.max_lon,
a.min_lat,
a.max_lat,
),
)
nav_rows = list(cur.fetchall())
lat_pad = a.radius_m / 111320.0
mid_lat = (a.min_lat + a.max_lat) / 2.0
lon_pad = (
a.radius_m
/ max(
1.0,
111320.0 * math.cos(math.radians(mid_lat)),
)
)
cur.execute(
f"""
SELECT
f.id AS feature_id,
f.cell_id,
c.source_relative_path,
f.source_record_index,
f.object_class,
f.native_scale,
f.bbox_min_lon AS lon,
f.bbox_min_lat AS lat,
f.attributes_json
FROM chart_feature f
JOIN chart_cell c ON c.id=f.cell_id
WHERE f.dataset_id=%s
AND f.native_scale IN ({scale_ph})
AND f.geometry_type='POINT'
AND f.object_class='_texto'
AND f.bbox_min_lon BETWEEN %s AND %s
AND f.bbox_min_lat BETWEEN %s AND %s
ORDER BY
f.native_scale,
f.cell_id,
f.source_record_index
""",
(
a.dataset_id,
*scales,
a.min_lon - lon_pad,
a.max_lon + lon_pad,
a.min_lat - lat_pad,
a.max_lat + lat_pad,
),
)
text_rows = list(cur.fetchall())
conn.rollback()
finally:
conn.close()
parsed_nav = []
for row in nav_rows:
attrs = json_dict(row.pop("attributes_json"))
parsed_nav.append(
{
**row,
"feature_id": int(row["feature_id"]),
"cell_id": int(row["cell_id"]),
"source_record_index": int(row["source_record_index"]),
"native_scale": int(row["native_scale"]),
"lon": float(row["lon"]),
"lat": float(row["lat"]),
"attributes": attrs,
"relation20": relation20(attrs),
"direct_names": direct_names(attrs),
"relation_fields": relation_like_fields(attrs),
}
)
parsed_text = []
relation_field_counter = Counter()
for row in text_rows:
attrs = json_dict(row.pop("attributes_json"))
text, prefix = texta(attrs)
rel_fields = relation_like_fields(attrs)
for key in rel_fields:
relation_field_counter[
(int(row["native_scale"]), str(key))
] += 1
parsed_text.append(
{
**row,
"feature_id": int(row["feature_id"]),
"cell_id": int(row["cell_id"]),
"source_record_index": int(row["source_record_index"]),
"native_scale": int(row["native_scale"]),
"lon": float(row["lon"]),
"lat": float(row["lat"]),
"text": text,
"prefix": prefix,
"attributes": attrs,
"relation_fields": rel_fields,
"relation_values": sorted(
flatten_relation_values(rel_fields)
),
}
)
# relation20 仅在同 cell + 同 scale 内组成助航主组。
grouped = defaultdict(list)
standalone = []
for row in parsed_nav:
rel = row["relation20"]
if rel is None:
standalone.append([row])
else:
grouped[
(
row["native_scale"],
row["cell_id"],
rel,
)
].append(row)
nav_groups = list(grouped.values()) + standalone
results = []
per_scale = {}
for members in nav_groups:
scale = members[0]["native_scale"]
cell_id = members[0]["cell_id"]
rel = members[0]["relation20"]
lon = sum(m["lon"] for m in members) / len(members)
lat = sum(m["lat"] for m in members) / len(members)
direct = []
nav_relation_values = set()
for m in members:
for n in m["direct_names"]:
direct.append(
{
"object_class": m["object_class"],
"source_record_index": m["source_record_index"],
**n,
}
)
nav_relation_values |= flatten_relation_values(
m["relation_fields"]
)
candidates = []
# 同比例尺;显式关系优先,同 cell 次之,距离只作证据。
for t in parsed_text:
if t["native_scale"] != scale or not t["text"]:
continue
distance = haversine_m(
lon,
lat,
t["lon"],
t["lat"],
)
explicit_overlap = sorted(
nav_relation_values.intersection(
set(t["relation_values"])
)
)
if distance <= a.radius_m or explicit_overlap:
candidates.append(
{
"feature_id": t["feature_id"],
"cell_id": t["cell_id"],
"source_relative_path": t["source_relative_path"],
"source_record_index": t["source_record_index"],
"native_scale": t["native_scale"],
"lon": t["lon"],
"lat": t["lat"],
"text": t["text"],
"prefix": t["prefix"],
"same_cell": t["cell_id"] == cell_id,
"distance_m": round(distance, 2),
"explicit_relation_overlap": explicit_overlap,
"text_relation_fields": t["relation_fields"],
}
)
candidates.sort(
key=lambda c: (
not bool(c["explicit_relation_overlap"]),
not c["same_cell"],
c["distance_m"],
c["text"],
)
)
explicit = [
c
for c in candidates
if c["explicit_relation_overlap"]
]
same = [c for c in candidates if c["same_cell"]]
nearest_same = (
min(same, key=lambda c: c["distance_m"])
if same
else None
)
result = {
"native_scale": scale,
"cell_id": cell_id,
"source_relative_path": members[0]["source_relative_path"],
"relation20": rel,
"lon": lon,
"lat": lat,
"component_classes": [
m["object_class"] for m in members
],
"component_source_record_indices": [
m["source_record_index"] for m in members
],
"direct_names": direct,
"nav_relation_fields": {
str(m["source_record_index"]): m["relation_fields"]
for m in members
if m["relation_fields"]
},
"explicit_text_candidates": explicit[
: a.candidate_limit
],
"nearest_same_cell_text": (
nearest_same["text"] if nearest_same else None
),
"nearest_same_cell_distance_m": (
nearest_same["distance_m"] if nearest_same else None
),
"same_cell_candidate_count": len(same),
"all_candidate_count": len(candidates),
"candidate_summary": candidates[
: a.candidate_limit
],
}
results.append(result)
results.sort(
key=lambda r: (
r["native_scale"],
r["cell_id"],
-1 if r["relation20"] is None else r["relation20"],
r["lon"],
r["lat"],
)
)
for scale in scales:
subset = [r for r in results if r["native_scale"] == scale]
per_scale[str(scale)] = {
"nav_groups": len(subset),
"groups_with_direct_names": sum(
1 for r in subset if r["direct_names"]
),
"groups_with_explicit_text_candidates": sum(
1
for r in subset
if r["explicit_text_candidates"]
),
"groups_with_same_cell_text_within_50m": sum(
1
for r in subset
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 50
),
"groups_with_same_cell_text_within_100m": sum(
1
for r in subset
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 100
),
"groups_with_same_cell_text_within_250m": sum(
1
for r in subset
if r["nearest_same_cell_distance_m"] is not None
and r["nearest_same_cell_distance_m"] <= 250
),
}
relation_rows = [
{
"native_scale": scale,
"field_name": field,
"occurrence_count": count,
}
for (scale, field), count in sorted(
relation_field_counter.items()
)
]
report = {
"schema": "navsea.cm95.nav-name-multiscale-audit/v2",
"generated_at": datetime.now().isoformat(timespec="seconds"),
"dataset_id": a.dataset_id,
"scales": list(scales),
"aoi_bbox": [
a.min_lon,
a.min_lat,
a.max_lon,
a.max_lat,
],
"search_radius_m": a.radius_m,
"counts": {
"nav_component_rows": len(parsed_nav),
"nav_groups": len(results),
"texto_rows": len(parsed_text),
"texto_rows_with_text": sum(
1 for t in parsed_text if t["text"]
),
},
"per_scale": per_scale,
"text_relation_field_counts": relation_rows,
"groups": results,
"decision": "READY_FOR_SAFE_NAME_RULE_REVIEW",
}
json_path = (
outdir / "cm95_nav_name_multiscale_audit_v2.json"
)
groups_csv = (
outdir / "cm95_nav_name_multiscale_groups_v2.csv"
)
rel_csv = (
outdir / "cm95_nav_text_relation_fields_v2.csv"
)
txt_path = (
outdir / "cm95_nav_name_multiscale_audit_v2.txt"
)
json_path.write_text(
json.dumps(
report,
ensure_ascii=False,
indent=2,
default=str,
),
encoding="utf-8",
)
write_csv(
groups_csv,
results,
[
"native_scale",
"cell_id",
"source_relative_path",
"relation20",
"lon",
"lat",
"component_classes",
"component_source_record_indices",
"direct_names",
"nav_relation_fields",
"explicit_text_candidates",
"nearest_same_cell_text",
"nearest_same_cell_distance_m",
"same_cell_candidate_count",
"all_candidate_count",
"candidate_summary",
],
)
write_csv(
rel_csv,
relation_rows,
[
"native_scale",
"field_name",
"occurrence_count",
],
)
lines = [
"CM95 / CM93 助航名称多尺度与显式关系审计 v2",
"=" * 82,
f"Dataset ID : {a.dataset_id}",
f"Scales : {','.join(map(str, scales))}",
f"Nav component rows : {len(parsed_nav)}",
f"Nav groups : {len(results)}",
f"_texto rows : {len(parsed_text)}",
"",
]
for scale in scales:
s = per_scale[str(scale)]
lines += [
f"1:{scale}",
f" groups : {s['nav_groups']}",
f" direct names : {s['groups_with_direct_names']}",
f" explicit text relation: {s['groups_with_explicit_text_candidates']}",
f" same-cell <= 50m : {s['groups_with_same_cell_text_within_50m']}",
f" same-cell <= 100m : {s['groups_with_same_cell_text_within_100m']}",
f" same-cell <= 250m : {s['groups_with_same_cell_text_within_250m']}",
"",
]
lines += [
"注意:",
"- 显式关系候选优先于距离候选。",
"- 最近文字仍不会被脚本自动写入 chart_label_text。",
"- 若 20k/50k/200k 都无安全来源,则该数据源的助航名称保持为空,不从 NEWPEC 反灌。",
]
txt_path.write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))
print("")
print(json_path)
print(groups_csv)
print(rel_csv)
print(txt_path)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,112 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import annotations
import argparse
from collections import Counter
import json
from pathlib import Path
def parse_args():
p = argparse.ArgumentParser()
p.add_argument("--report-root", default="build/pbf-reports")
p.add_argument("--profile", choices=["delivery", "engineering"], default="delivery")
p.add_argument("--output", default="cm95_pbf_build_reports_audit_v1.json")
return p.parse_args()
def main():
a = parse_args()
root = Path(a.report_root) / a.profile
files = sorted(
p for p in root.rglob("*.json")
if not p.name.endswith(".trace.json")
)
layer_counts = Counter()
unmapped = Counter()
hard_gate = []
total_input = 0
total_output = 0
relation_groups = 0
standalone_lights = 0
named_from_direct_source = 0
name_conflict_groups = 0
quantization_fallbacks = 0
quantization_omissions = 0
quantization_omission_layers = Counter()
encoder_dropped_features = []
planned_output = 0
for p in files:
obj = json.loads(p.read_text(encoding="utf-8"))
total_input += int(obj.get("input_feature_count") or 0)
total_output += int(obj.get("output_feature_count") or 0)
planned_output += int(obj.get("planned_output_feature_count") or obj.get("output_feature_count") or 0)
layer_counts.update(obj.get("output_layer_counts") or {})
unmapped.update(obj.get("unmapped_class_counts") or {})
nav = obj.get("navigation_composites") or {}
relation_groups += int(nav.get("groups") or 0)
standalone_lights += int(nav.get("standalone_lights") or 0)
named_from_direct_source += int(nav.get("named_from_direct_source") or 0)
name_conflict_groups += int(nav.get("name_conflict_groups") or 0)
quantization_fallbacks += len(obj.get("quantization_fallbacks") or [])
omissions = obj.get("quantization_omissions") or []
quantization_omissions += len(omissions)
for item in omissions:
if isinstance(item, dict):
quantization_omission_layers[str(item.get("layer") or "UNKNOWN")] += 1
for item in obj.get("encoder_dropped_features") or []:
encoder_dropped_features.append({"file": str(p), **item})
for item in obj.get("hard_gate_unmapped") or []:
hard_gate.append({"file": str(p), **item})
result = {
"schema": "navsea.cm95.build-report-audit/v1",
"profile": a.profile,
"report_file_count": len(files),
"input_rows_considered": total_input,
"planned_output_features": planned_output,
"output_features": total_output,
"output_layer_counts": dict(layer_counts),
"unmapped_class_counts": dict(unmapped),
"navigation_relation_groups": relation_groups,
"standalone_lights": standalone_lights,
"nav_named_from_direct_source": named_from_direct_source,
"nav_name_conflict_groups": name_conflict_groups,
"quantization_fallbacks": quantization_fallbacks,
"quantization_omissions": quantization_omissions,
"quantization_omission_layers": dict(sorted(quantization_omission_layers.items())),
"encoder_dropped_features": encoder_dropped_features,
"hard_gate_unmapped": hard_gate,
"failure_count": len(hard_gate) + name_conflict_groups + len(encoder_dropped_features) + (1 if planned_output != total_output else 0),
"overall": (
"PASS"
if not hard_gate and name_conflict_groups == 0 and not encoder_dropped_features and planned_output == total_output
else "FAIL"
),
}
Path(a.output).write_text(
json.dumps(result, ensure_ascii=False, indent=2),
encoding="utf-8",
)
print(f"Reports : {len(files)}")
print(f"Input rows : {total_input}")
print(f"Planned output : {planned_output}")
print(f"Output features : {total_output}")
print(f"Navigation composites : {relation_groups}")
print(f"Standalone LIGHTS : {standalone_lights}")
print(f"Direct nav names : {named_from_direct_source}")
print(f"Nav name conflicts : {name_conflict_groups}")
print(f"Hard-gate unmapped : {len(hard_gate)}")
print(f"Quantization fallback : {quantization_fallbacks}")
print(f"Quantization omissions : {quantization_omissions}")
print(f"Encoder dropped : {len(encoder_dropped_features)}")
print(f"OVERALL : {result['overall']}")
if __name__ == "__main__":
main()

Some files were not shown because too many files have changed in this diff Show More