-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 941e09a
Showing
40 changed files
with
3,837 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
<!DOCTYPE html> | ||
<!--[if IE]><![endif]--> | ||
<html> | ||
|
||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | ||
<title>不動産IDマッチングシステム </title> | ||
<meta name="viewport" content="width=device-width"> | ||
<meta name="title" content="不動産IDマッチングシステム "> | ||
|
||
<link rel="shortcut icon" href="favicon.ico"> | ||
<link rel="stylesheet" href="styles/docfx.vendor.min.css"> | ||
<link rel="stylesheet" href="styles/docfx.css"> | ||
<link rel="stylesheet" href="styles/main.css"> | ||
<meta property="docfx:navrel" content="toc.html"> | ||
<meta property="docfx:tocrel" content="manual/toc.html"> | ||
|
||
<meta property="docfx:rel" content=""> | ||
|
||
</head> | ||
<body data-spy="scroll" data-target="#affix" data-offset="120"> | ||
<div id="wrapper"> | ||
<header> | ||
|
||
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation"> | ||
<div class="container"> | ||
<div class="navbar-header"> | ||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar"> | ||
<span class="sr-only">Toggle navigation</span> | ||
<span class="icon-bar"></span> | ||
<span class="icon-bar"></span> | ||
<span class="icon-bar"></span> | ||
</button> | ||
|
||
<a class="navbar-brand" href="index.html"> | ||
<img id="logo" class="svg" src="resources/logo.svg" alt=""> | ||
</a> | ||
</div> | ||
<div class="collapse navbar-collapse" id="navbar"> | ||
<form class="navbar-form navbar-right" role="search" id="search"> | ||
<div class="form-group"> | ||
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off"> | ||
</div> | ||
</form> | ||
</div> | ||
</div> | ||
</nav> | ||
|
||
<div class="subnav navbar navbar-default"> | ||
<div class="container hide-when-search" id="breadcrumb"> | ||
<ul class="breadcrumb"> | ||
<li></li> | ||
</ul> | ||
</div> | ||
</div> | ||
</header> | ||
<div class="container body-content"> | ||
|
||
<div id="search-results"> | ||
<div class="search-list">Search Results for <span></span></div> | ||
<div class="sr-items"> | ||
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p> | ||
</div> | ||
<ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul> | ||
</div> | ||
</div> | ||
<div role="main" class="container body-content hide-when-search"> | ||
|
||
<div class="sidenav hide-when-search"> | ||
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a> | ||
<div class="sidetoggle collapse" id="sidetoggle"> | ||
<div id="sidetoc"></div> | ||
</div> | ||
</div> | ||
<div class="article row grid-right"> | ||
<div class="col-md-10"> | ||
<article class="content wrap" id="_content" data-uid=""> | ||
<h1 id="不動産idマッチングシステム">不動産IDマッチングシステム</h1> | ||
|
||
<p>3D都市モデルの建築物データに「不動産ID」を付与するマッチングシステムである。</p> | ||
<p><img src="resources/index.png" alt=""></p> | ||
|
||
</article> | ||
</div> | ||
|
||
<div class="hidden-sm col-md-2" role="complementary"> | ||
<div class="sideaffix"> | ||
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix"> | ||
<h5>In this article</h5> | ||
<div></div> | ||
</nav> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<footer> | ||
<div class="grad-bottom"></div> | ||
<div class="footer"> | ||
<div class="container"> | ||
<span class="pull-right"> | ||
<a href="#top">Back to top</a> | ||
</span> | ||
|
||
<span>Generated by <strong>DocFX</strong></span> | ||
</div> | ||
</div> | ||
</footer> | ||
</div> | ||
|
||
<script type="text/javascript" src="styles/docfx.vendor.min.js"></script> | ||
<script type="text/javascript" src="styles/docfx.js"></script> | ||
<script type="text/javascript" src="styles/main.js"></script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{ | ||
"index.html": { | ||
"href": "index.html", | ||
"title": "不動産IDマッチングシステム", | ||
"keywords": "不動産IDマッチングシステム 3D都市モデルの建築物データに「不動産ID」を付与するマッチングシステムである。" | ||
}, | ||
"manual/create_dbMan.html": { | ||
"href": "manual/create_dbMan.html", | ||
"title": "データ構築環境作成", | ||
"keywords": "データ構築環境作成 「不動産IDマッチングシステム」で利用するマッチングのためのデータ「不動産ID空間データ」の作り方について説明します。 なお、データ作成に利用する「不動産登記データ」は非公開のため、個人情報等を含まないダミーデータをサンプルとして収録しています。 「不動産ID空間データ」とは 不動産IDマッチングシステムは、3D都市モデルの建築物データに含まれる建物形状、高さ、建物構造などの情報と、不動産登記データに含まれる床面積や階数などの情報を比較し、最も一致する率の高い不動産登記の「不動産番号」をもとに建物の不動産IDを計算します。 また、建物データの座標と不動産登記データの所在地の座標が一致していることを確認するため、登記所備付地図を利用して所在地に対応する座標の範囲(ポリゴン)を求めています。 この処理を高速に行うために、不動産登記データと登記所備付地図を、地理情報を管理できるリレーショナルデータベース(PostGIS)に検索可能な形で登録した空間データベースを作成しておく必要があります。 このデータベースを「不動産ID空間データ」と呼んでいます。 これ以降で説明するのは、下図右側の「変換」に当たる処理を行い、入力データから不動産ID空間データを作成する手順です。 必要なデータセット 不動産ID空間データを作成するには、対象とする地域の以下のデータが必要です。 不動産登記(建物・土地)データはCSV形式、登記所備付地図データは、GeoJSON形式のものを用意してください。 不動産登記(建物)データ 不動産登記(建物)データには、建物の不動産番号のほか、建物の面積や階数、用途種別などマッチングに最も必要な情報が含まれています。 不動産登記(土地)データ 不動産登記(土地)データは上の図では省略していますが、土地の分筆や合筆の履歴、土地の不動産番号が含まれています。 建物の新築時の登記に記載されている所在地は登記時点のものであり、それ以降に他の土地と合筆された場合には現存しないことがあります。 登記時点の所在地記載を現在の所在地に変換するため、土地の履歴を利用する必要があります。 また、分譲マンションなどの区分所有建物の不動産IDは「土地の不動産番号」から計算すると決められているため、そこでも土地の登記データを利用します。 登記所備付地図データ 登記所備付地図データは、不動産登記(建物)データと不動産登記(土地)データに含まれる所在地に対応する座標を計算するために利用します。 「不動産ID空間データ」作成手順 Docker環境構築 データ作成にはPostGISやGDAL、Pythonなどが必要ですが、Dockerを利用すると環境構築を自動的に行うことができます。 使用するOSに合わせてDocker DesktopまたはDocker Engineをインストールしてください。 PostGIS起動 不動産ID空間データはPostGIS上に構築されるため、まずはPostGISをバックグランド(ディタッチドモード)で起動してください。 $ docker compose up -d postgis_realestate 入力データファイルを配置 inputディレクトリに入力データファイルを配置します。 サンプルデータを利用する場合は、sampleディレクトリの下にある 37201_dummy_tatemono.csv.gz、37201_dummy_tochi.csv.gz、37201_sample.geojson.gzの3ファイルをinputディレクトリにコピーしてください。 $ cp sample/*.gz input/ 不動産登記(建物)データのファイル名は必ず*_tatemono*.csv.gzにマッチする必要があります(*はワイルドカード)。ファイルフォーマットはCSVをgzipで圧縮してください。 不動産登記(土地)データのファイル名は必ず*_tochi*.csv.gzにマッチする必要があります(*はワイルドカード)。ファイルフォーマットはCSVをgzipで圧縮してください。 登記所備付地図データのファイル名は必ず*.geojson.gzにマッチする必要があります(*はワイルドカード)。ファイルフォーマットはGeoJSONをgzipで圧縮してください。 データ作成スクリプトを実行 realestate_id_dbサービスを実行すると作成処理を実行します。 $ docker compose run --rm realestate_id_db 正常に処理が完了するとwork/realestate_id_db-YYYYMMDD_hhmmss.dump.gzに不動産ID空間データをすべて含むPostGISダンプファイルが生成されます。なお、YYYYMMDDは処理を開始した年月日、hhmmssは時分秒です。 このダンプファイルをマッチングシステムのPostGISに読み込めば、3次元都市モデルの建物ポリゴンとのマッチングを行うことができます。 作業用Dockerコンテナ・イメージの削除 作業が終わり、それ以降はデータ作成用のDockerコンテナを利用しない場合は、以下のコマンドにより作成したコンテナを削除します。 $ docker compose down -v また、イメージも不要であれば削除して構いません。 $ docker rmi postgis_realestate $ docker rmi realestate_id_db 不動産ID空間データを作成する手順は以上です。" | ||
}, | ||
"manual/matchingMan.html": { | ||
"href": "manual/matchingMan.html", | ||
"title": "サービス環境実行方法", | ||
"keywords": "サービス環境実行方法 概要 建物のCityGMLを入力とし、不動産IDを付与したCityGMLを出力するスクリプトです。 ディレクトリ構成 本スクリプトを実行するためのディレクトリ構成は以下の通りです。 /estate_id_batch /batch /data /input /output /src main.py Dockerfile 前提条件 本スクリプトは、Dockerコンテナ、および、AWS Batch環境で実行することを想定しています。予め利用OSにDocker環境をインストールしておいてください。 処理可能なのは建物のCityGMLのみです。そのほかの種類のCityGMLは処理できません。 実行手順 本スクリプトをWindows PowerShellで実行する場合は、以下の手順で実行してください。 Dockerfileファイルが置かれているディレクトリに移動します。 PS C:\\estate_id_batch\\batch> cd estate_id_batch/batch Dockerfileファイルからdocker buildを行い、ローカルマシンにイメージを作成します。 PS C:\\estate_id_batch\\batch> docker build -t estate_matching_image . 出力結果例: => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 32B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for ghcr.io/osgeo/gdal:ubuntu-small-3.7.1 1.0s => [internal] load build context 0.0s => => transferring context: 49.64kB 0.0s => [1/6] FROM ghcr.io/osgeo/gdal:ubuntu-small-3.7.1@sha256:25c22fd2d889a09362ec12b39ddf26530198a2943fbf8160c7b921ac86c50e6a 0.0s => CACHED [2/6] RUN apt-get update && apt-get install -y postgresql-client && apt-get install -y python3-pip 0.0s => CACHED [3/6] RUN pip install boto3 psycopg2-binary install python-dotenv lxml requests pytz 0.0s => CACHED [4/6] WORKDIR /app 0.0s => CACHED [5/6] RUN mkdir /app/data 0.0s => [6/6] COPY src /app/src 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:4cca64457fea7f0e571a2ebccb4c3822a3aac7b636cd5430ba9fcf19b67f6464 0.0s => => naming to docker.io/library/estate_matching_image 0.0s buildが完了したイメージを実行します。 次のコマンドを用いて、イメージ内で使っているOS(Linux)にログインします。 docker run -it -v ${pwd}:/app estate_matching_image bash イメージ内のOSに環境変数を定義します。 root@0344a7d63e05:/app# export USE_ESTATE_ID_CONFIRMATION_SYSTEM=0 root@0344a7d63e05:/app# export NO_USE_IAM_MODE=1 root@0344a7d63e05:/app# export ESTATE_ID_USER_ID=[任意のユーザID文字列] root@0344a7d63e05:/app# export ESTATE_ID_SESSION_ID=[任意のセッションID文字列] CityGMLファイルをdata/input以下のディレクトリに配置します。 スクリプトで処理するCityGMLの配置ディレクトリにはルールがあり、 data/input/[ESTATE_ID_USER_ID]/[ESTATE_ID_SESSION_ID]というディレクトリから処理するCityGMLファイルを読み取ります。 data/input/[ESTATE_ID_USER_ID]/[ESTATE_ID_SESSION_ID]ディレクトリを作成し、その中にCityGMLファイルを配置してください。 例: ESTATE_ID_USER_ID: matsuyama ESTATE_ID_SESSION_ID: session_1 と設定している場合、 data/input/matsuyama/session_1というディレクトリを作成し、その中に処理をするCityGMLファイルを配置してください。 pythonスクリプトsrc/main.pyを実行します。 root@0344a7d63e05:/app# python src/main.py 実行時のログが画面に出力されます。 data/input/test-user/matsuyama_session_1 Download completed. lod0RoofEdge 50324684_bldg_6697_op.gmlをインポート中... 50324684_bldg_6697_op.gmlをインポート完了 lod0RoofEdge 50324685_bldg_6697_op.gmlをインポート中... 50324685_bldg_6697_op.gmlをインポート完了 lod0RoofEdge 50324686_bldg_6697_op.gmlをインポート中... 50324686_bldg_6697_op.gmlをインポート完了 lod0RoofEdge 50324687_bldg_6697_op.gmlをインポート中... 50324687_bldg_6697_op.gmlをインポート完了 lod0RoofEdge 50324694_bldg_6697_op.gmlをインポート中... 50324694_bldg_6697_op.gmlをインポート完了 lod0RoofEdge 50324695_bldg_6697_op.gmlをインポート中... 50324695_bldg_6697_op.gmlをインポート完了 lod0RoofEdge ...(略)... 50325567_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 6件 50325568_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 237件 50325569_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 14件 50325574_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ追加件数: 0件 50325575_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 5件 50325576_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ追加件数: 0件 50325577_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 538件 50325578_bldg_6697_op.gmlにマッチング結果を付与マッチング処理... uro_uri https://www.geospatial.jp/iur/uro/3.0 マッチングデータ件数: 2493件 delete building_citygml_matched, building_citygml table data. desirialize data/outputディレクトリにディレクトリが生成され、処理したCityGMLファイルが保存されていることを確認します。 諸注意 本スクリプトは、Dockerコンテナ、および、AWS Batch環境で実行することを想定しています。 一度に処理するファイル数は、50個程度に留めてください。 DBはAIGID AWSのRDSを利用しています。特定のIPアドレスからのみアクセス可能です。 以上" | ||
} | ||
} |
Oops, something went wrong.