Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
© 2024 NTT DATA GROUP Corporation
PostGISの落とし⽳
2024/07/01
イノベーション技術部IOWN推進室
池⽥凜太郎
© 2024 NTT DATA GROUP Corporation 2
⾃⼰紹介
池⽥ 凜太郎 (イケダ リンタロウ)
[概要]
NTTデータグループのイノベーション技術部 (昨⽇まで技術開発本部)でPostgreSQL関連の仕事をしています。
社会⼈、PostgreSQL 2年⽬
[最近のニュース]
⼤船あたりに引っ越そうかと物件を探しています。
おすすめエリアがあればぜひ教えてください。
© 2024 NTT DATA GROUP Corporation 3
本発表の⽬的
PostGISは⼊⼒のバリデーションは完璧ではなく、正しく利⽤するために⽤語を理解する必要があります。
本資料では、理解のとっかかりになる事項、間違えやすい点をまとめました。
PostgreSQL、PostGISどちらも初⼼者なので、誤っている点があれば遠慮なく指摘してください。
本プレゼンテーションのスコープ:
• PostGISを利⽤する前に理解するべき地理情報、PostGISに関する基本的なポイント
• 想定していない出⼒が返却された時に思い出していただきたい内容
• (余談として内部関数)
想定するPostGISのバージョン: 3.4
© 2024 NTT DATA GROUP Corporation 4
PostGISとは何か︖
PostgreSQLの地理空間情報を扱う拡張機能で、地理情報システムとして動作します。
主要機能:
• 空間データの保管
• 空間インデックスの作成
• 空間図形に対する関数
• 地理データの処理
• ラスターデータの処理
• 位置参照機能 (Geocoding)
• 他分析ソフトとの連携
https://postgis.net/

Recommended for you

pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)

pg_bigmを用いた全文検索のしくみ(前編)

postgresqlnttdatanttデータ
Mr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625cMr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625c
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx

IMAX3: Amazing Dataflow-Centric CGRA and its Applications I present this slide to all hungry engineers who are tired of CPU, GPU, FPGA, tensor core, AI core, who want some challenging one with no black box inside, and who want to improve by themselves.

© 2024 NTT DATA GROUP Corporation 5
01
利⽤前に知っておくべき
基本的な知識
© 2024 NTT DATA GROUP Corporation 6
地理情報を表すデータ型
PostGISは2種類のデータ型を実装している。
1. Geometry: 投影座標系(カルテシアン座標系、デカルト座標系、直交座標)で表される属性
地球が平⾯だと思っている座標系
(英語だとCartesian/Projected coordinate)
例えば、メルカトル図法、正⾓図法、正距⽅位図法
2. Geography: 地理座標系(極座標、測地座標)で表される属性
地球が球体だと思っている座標系
(英語だとGeographic/Geodetic coordinate)
例えば、地球儀、楕円体座標
https://en.wikipedia.org/wiki/Cartesian_coordinate_system
https://en.wikipedia.org/wiki/Geographic_coordinate_system
注、座標系の厳密さは置いておく
© 2024 NTT DATA GROUP Corporation 7
空間参照系とは
空間参照系は、地球上のある点と座標の対応関係が存在する系である。
座標系と測地系の要素をもつ。
従来の測地系も各所で利⽤されている。例えば、ゼンリンの地図データベース「Zmap DATABASE」は旧⽇本測地系を利⽤し
ている。
測地系 (Datum)
地球に座標系を適⽤するための
ルール。準拠楕円体、⽔平/⾼さ
の基準点を規定する。
座標系
点を特定する座標を導出するた
めのルール
現⾏
WGS 84
⽇本測地系2011 (JGD2011)
従来
⽇本測地系2000 (JGD2000)
旧⽇本測地系 (Tokyo Datum)
地理座標系
回転楕円体に投影した緯度経度
投影座標系
平⾯直⾓座標系
UTM座標系
Webメルカトル座標系
JGD2011は東⽇本⼤震災の影響
(図)を補正している。
メルカトル図法、
正距⽅位図法
、正⾓図法
の類
© 2024 NTT DATA GROUP Corporation 8
空間参照識別⼦ (SRID)
空間参照識別⼦: Spatial Reference Identifier (SRID)
空間参照系を特定するIDのこと。空間参照系ごとに以下の特徴があります。
• 単位 (メートル、度)
• 座標系 (カルテシアン、極座標、楕円体座標)
• ⽬的 (Webマッピング、地理測量など)
• 利⽤推奨範囲
⽤途に応じたSRIDを利⽤します。
https://epsg.io/はSRIDの情報を検索する時に便利です。
その他注意︓
• 複数のジオメトリを引数とする関数には、⼀貫するSRIDを持つジオメトリを⼊⼒する必要があります。
• ST_Transform関数を⽤いてSRIDを変換することができます。
EPSG: 9896 [1]
推奨される
利⽤範囲
INSERT INTO geotable (the_geom, the_name) VALUES (
ST_GeomFromEWKT('SRID=312;POINT(-126.4 45.32)'), 'A Place’);
[1] https://epsg.io/9896

Recommended for you

20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net

2020/07/04 JapanCV発表資料

cvsaisentanjapancvcomputer vision
国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告

State of the Map Japan 2014にて発表させていただいた内容です。

openstreetmap: japanese
AVRマイコン入門
AVRマイコン入門 AVRマイコン入門
AVRマイコン入門

電子工作を全くやったことがない人にAVRマイコンに興味を持ってもらえれば。

© 2024 NTT DATA GROUP Corporation 9
SRIDの選び⽅と誤差
⼀般的な空間参照系はEuropean Petroleum Survey Group (EPSG) が標準化している。
[1] https://epsg.io/4326
測地系
座標系
© 2024 NTT DATA GROUP Corporation 10
PostGISが扱う空間図形 (1)
1. Open Geospatial Consortium (OGC)ジオメトリ (基本的な図形)の⼀部
Point: 点
POINT (1 2)
LineString: 折れ線
LINESTRING (1 2, 3 4, 1 6)
LinearRing: 閉じた折れ線
LINEARRING (0 0 0, 4 0 0, 6 4 0, 0 0 0)
Polygon: 多⾓形
POLYGON(0 0 0, 4 0 0, 6 2 0, 6 6 0, 4 8 0, 0 8 0, -2 6 0,
-2, -2, 0, 0 0 0)
© 2024 NTT DATA GROUP Corporation 11
PostGISの提供する関数
PostGISには数多くの関数が存在します。https://postgis.net/docs/reference.html
ここでは、ジオメトリを操作するごく⼀部の関数を紹介します。
• float ST_Distance(geometry g1, geometry g2);
2次元の距離を返却します。(後のスライドで例として出てきます。)
• geometry ST_Union(geometry g1, geometry g2);
⼊⼒の2つのジオメトリを重複なく結合した結果を返却します。
• geometry ST_Rotate(geometry geomA, float rotRadians, float x0, float y0);
点(x0, y0)を中⼼としてrotRadiansだけ反時計回りに回転させたジオメトリを返却します。
• float ST_Area(geometry g1);
ジオメトリのなす⾯積を返却します。
• boolean ST_Touches(geometry A, geometry B);
2つのジオメトリが接していれば、Trueを返却します。
© 2024 NTT DATA GROUP Corporation 12
02
落とし⽳
1. 投影単位のよくある間違い
2. SRIDの⼤切さ
3. 過信すると危険なIntersects
4. ポリゴンの持つ⾃明な(隠れた?)制約

Recommended for you

Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
javascript
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介

ETロボコンにおけるMindstorms NXTのBluetooth通信と活用方法の紹介

etrobo
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション

SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション

sicsic sbdsic spice model
© 2024 NTT DATA GROUP Corporation 13
投影単位のよくある間違い (簡単)
地点A, Bの距離を計測する。
A: 40°N, 140°E (秋⽥県⼤潟村)
B: 35°N, 135°E (兵庫県⻄脇市)
誤ったSQL⽂
間違った結果が返却される原因
SRID:4326の空間参照系の単位はdegreeであるので、degreeの単位で距離が返却されてしまう。単位が距離の空間参照
系を利⽤する必要がある。
地球の全周は約4万kmなので、40000*7/360 = 778 kmでおおよそ合致する。
補⾜: PostGISのよくある質問の⼀つらしい。
https://gis.stackexchange.com/questions/76967/what-is-the-unit-used-in-st-distance
postgres=# SELECT ST_Distance(
ST_GeomFromEWKT('SRID=4326;POINT(140 40)'),
ST_GeomFromEWKT('SRID=4326;POINT(135 35)'));
st_distance
--------------------
7.0710678118654755
(1 row)
Google mapでは
709.46 km
A
B
← 7 m???
間違った値を返却している。 google map
© 2024 NTT DATA GROUP Corporation 14
ST_Distance関数の正しい使い⽅
ST_Distance関数のマニュアル
For geometry types returns the minimum 2D Cartesian (planar) distance between two geometries, in projected
units (spatial ref units).
For geography types defaults to return the minimum geodesic distance between two geographies in meters,
compute on the spheroid determined by the SRID. If use_spheroid is false, a faster spherical calculation is used.
1. 単位がメートルの空間参照系に変換する
2. Geography型に変換する。
postgres=# SELECT ST_Distance(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(140 40)'),6677),
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(135 35)'),6677));
st_distance
-------------------
709732.3831650843
(1 row)
postgres=# SELECT ST_Distance(
ST_GeomFromEWKT('SRID=4326;POINT(140 40)')::geography,
ST_GeomFromEWKT('SRID=4326;POINT(135 35)')::geography);
st_distance
-----------------
709253.72943453
(1 row)
Google mapの計測結果
(709 km)と合致する距離を得
ることができた。
© 2024 NTT DATA GROUP Corporation 15
投影単位がmならば、どの空間参照系でも良いのか︖
デジタル庁と豊洲センタービルの距離を計測する。まずは、google map
デジタル庁 (N 35.679551, E 139.73691)
豊洲センタービル前 (N 35.655436, E 139.79669)
Google mapによれば
6.03 km
google map
© 2024 NTT DATA GROUP Corporation 16
⽬的に合わないSRIDを指定すると、、、
例1. SRID: 6677 (スコープ: 地理測量)
例2. SRID: 3857 (スコープ: マッピング、可視化。google mapの描画もこれ)
距離測定に不向きなSRIDでは誤差が⼤きい結果になった。⼀⽅で、全球において⼀
定程度の誤差に収まるために、可視化には適している。
ポイント: ⽬的に合致した、⼀貫したSRIDを使⽤しなければいけない。
postgres=# SELECT ST_Distance(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.73691 35.679551)'), 6677),
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.79669 35.655436)'), 6677));
st_distance
-------------------
6037.143806027076
(1 row)
postgres=# SELECT ST_Distance(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.73691 35.679551)'), 3857),
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.79669 35.655436)'), 3857));
st_distance
-------------------
7429.887070380764
(1 row)
距離: 6.04 km Google mapとほぼ⼀致した。
距離: 7.43 km Google mapと乖離している。
利⽤推奨範囲
全球で利⽤可
およそ⽇本の領海内で利⽤可
[1] https://epsg.io/6677
[2] https://epsg.io/3857
[1]
[2]

Recommended for you

SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション

SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション

sic sbdltspice
都市工学調査資料
都市工学調査資料都市工学調査資料
都市工学調査資料

まだ学生だったころに都市工学と情報学の関連を調査した資料です。仕事で位置情報サービスのお話を受けたので、改めてテンプレートをデータアーティスト版にしてみました。 今見てもそれなりにまとまっていると思うので、今後位置情報のサービス活用に着手しようと考えてらっしゃる方のお役に少しでも立てばと思います。

data science mining gis real estate
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)

OSS-DB Gold 合格体験記 (第29回PostgreSQLアンカンファレンス@オンライン 発表資料) 2021年12月21日(火) NTTデータ 技術開発本部 加藤 健

certificationnttdatanttデータ
© 2024 NTT DATA GROUP Corporation 17
どのSRIDを利⽤するべき︖
[1] ⽇本を含む19つの領域 (系番号: Ⅰ- XIX)から適切なものを選択する。
[2] ⽇本を含む5つの領域 (51N~55N)から適切なものを選択する。
※PostGISが標準でサポートしていないSRIDは⼿動でインストールする必要があります。
測地系
座標系
アメリカの投影座標系を利⽤する
場合は、別途
© 2024 NTT DATA GROUP Corporation 18
過信すると危険なIntersects
以下のように7点を設定する。
A(0, 0, 0)
B(2, 1, 1)
C(0, 1, 1)
D(1, 0, 0)
E(1, 1, 1)
座標点から⽅程式を考えると、線分ABとCDは(2/3, 1/3, 1/3)で、線分AEとCDは(0.5, 0.5, 0.5)で交差するので、返り値
にはTrueを期待する。しかし、ST_3DIntersects関数は 線分ABとCDを衝突していない(false)と判定している。
原因︓浮動⼩数点演算によるものである。
対策︓線分と線分、線分と点などの細い(体積のない)⽴体同⼠の衝突を検知したい場合にはST_3DDistance関数を利⽤し
て、閾値以下であれば衝突と判定するといったロジックを作るなどといった対応をとることができる。
POINTとLINESTRING(https://postgis.net/documentation/faq/intersection-intersect/)だけでなく、LINESTRING同⼠でも発⽣する。
postgres=# WITH parts AS (
SELECT
'LINESTRING(0 0 0, 2 1 1)'::geometry AS AB,
'LINESTRING(0 1 1, 1 0 0)'::geometry AS CD,
'LINESTRING(0 0 0, 3 3 3)'::geometry AS AE,
'LINESTRING(2 0 0, 0 2 2)'::geometry AS FG
)
SELECT
ST_3DIntersects(AB, CD), ST_3DDistance(AB, CD),
ST_3DIntersects(AE, FG), ST_3DDistance(AE, FG)
FROM parts;
-[ RECORD 1 ]---+----------------------
st_3dintersects | f
st_3ddistance | 7.850462293418876e-17
st_3dintersects | t
st_3ddistance | 0
© 2024 NTT DATA GROUP Corporation 19
閾値の選び⽅
(注) どんぶり勘定です。
PostGISは内部的にdouble型で変数を持っているので、15桁の有効桁数がある。
360度の経度で表現すると、10-12まで表現できる。
地球の全周は約4万km = 4×109 cmなので、 1cmは10-7度
1cmの距離に相当する経度の引き算をしても、5桁は⽣きている。
PostGISの距離計測関数を1度実⾏するくらいであれば、閾値は1mmと設定するのは問題なさそう。
逆に、1μmだと状況によっては問題になる。
[1] https://epsg.io/4326
© 2024 NTT DATA GROUP Corporation 20
ポリゴンの持つ制約と隠れた(⾃明な?)制約
ドキュメントはポリゴンの持つ制約を以下のように定めている。
1. the polygon boundary rings (the exterior shell ring and interior hole rings) are simple (do not cross or self-
touch). Because of this a polygon cannnot have cut lines, spikes or loops. This implies that polygon holes must be
represented as interior rings, rather than by the exterior ring self-touching (a so-called "inverted hole").
2. boundary rings do not cross
3. boundary rings may touch at points but only as a tangent (i.e. not in a line)
4. interior rings are contained in the exterior ring
5. the polygon interior is simply connected (i.e. the rings must not touch in a way that splits the polygon into more
than one part)
Polygonでない
(制約に違反する)
6つ⽬の隠れた制約
ポリゴンをなす点は同⼀平⾯上になければならない。
(“ポリゴン”の定義から)
制約に違反する図形は関数⼊⼒のバリデーションで
チェックされないので、関数は異常な値を返却する。
Polygon
https://postgis.net/
3 1 4
5

Recommended for you

空間データで遊ぶ
空間データで遊ぶ空間データで遊ぶ
空間データで遊ぶ

Oracle Spatial and Graph Spatial Features 空間データ で遊ぶ

oracle databasespatial
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
advanced computational science a
基板を作ろう(修正版)
基板を作ろう(修正版)基板を作ろう(修正版)
基板を作ろう(修正版)
© 2024 NTT DATA GROUP Corporation 21
ジオメトリのバリデーション
PostGISはバリデーション関数を提供するが、あまり強⼒ではない。。。
boolean ST_IsValid(geometry g);
boolean ST_IsValid(geometry g, integer flags);
4Dまでの⼊⼒を受け付けるが、2Dでのバリデーションのみを実⾏する。
注意: 前スライドの制約6 (ポリゴンをなす点が同⼀平⾯上にある)が満たされていることの判定はPostGISの内部
関数では実⾏できない。バリデーションを実⾏したければ、関数を⾃作する必要がある。 (浮動⼩数の同値判定をす
ることになる。これがPostGISの関数が上記のバリデーションしか提供しない理由?)
SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,
ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly
--results
NOTICE: Self-intersection at or near point 0 0
good_line | bad_poly
-----------+----------
t | f
利⽤例
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)

More Related Content

Similar to PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)

Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewall
Tomoya Hibi
 
BERTology のススメ
BERTology のススメBERTology のススメ
BERTology のススメ
University of Tsukuba
 
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
Takuya Minagawa
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
 
Mr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625cMr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625c
耕作 茂木
 
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx
NAIST
 
20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net
Takuya Minagawa
 
国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告
Satoshi Iida
 
AVRマイコン入門
AVRマイコン入門 AVRマイコン入門
AVRマイコン入門
amusementcreators
 
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
takesako
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
Takehiko YOSHIDA
 
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
Tsuyoshi Horigome
 
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
Tsuyoshi Horigome
 
都市工学調査資料
都市工学調査資料都市工学調査資料
都市工学調査資料
Satoru Yamamoto
 
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
空間データで遊ぶ
空間データで遊ぶ空間データで遊ぶ
空間データで遊ぶ
オラクルエンジニア通信
 
基板を作ろう(修正版)
基板を作ろう(修正版)基板を作ろう(修正版)
基板を作ろう(修正版)
Kazuyuki Nakashima
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
Yosuke Arai
 
200702material hirokawa
200702material hirokawa200702material hirokawa
200702material hirokawa
RCCSRENKEI
 

Similar to PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料) (20)

Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewall
 
BERTology のススメ
BERTology のススメBERTology のススメ
BERTology のススメ
 
2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)2020/07/04 BSP-Net (CVPR2020)
2020/07/04 BSP-Net (CVPR2020)
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
Mr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625cMr13 03 uctd試験観測速報20130625c
Mr13 03 uctd試験観測速報20130625c
 
PBL1-v1-008j.pptx
PBL1-v1-008j.pptxPBL1-v1-008j.pptx
PBL1-v1-008j.pptx
 
20200704 bsp net
20200704 bsp net20200704 bsp net
20200704 bsp net
 
国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告国土数値情報・行政区境データのインポート報告
国土数値情報・行政区境データのインポート報告
 
AVRマイコン入門
AVRマイコン入門 AVRマイコン入門
AVRマイコン入門
 
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
 
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
 
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーションSiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
SiC SBDのモデルパラメータにおけるモンテカルロシミュレーション
 
都市工学調査資料
都市工学調査資料都市工学調査資料
都市工学調査資料
 
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSS-DB Gold 合格体験記(第29回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
空間データで遊ぶ
空間データで遊ぶ空間データで遊ぶ
空間データで遊ぶ
 
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
CMSI計算科学技術特論A(14) 量子化学計算の大規模化1
 
基板を作ろう(修正版)
基板を作ろう(修正版)基板を作ろう(修正版)
基板を作ろう(修正版)
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
 
200702material hirokawa
200702material hirokawa200702material hirokawa
200702material hirokawa
 

More from NTT DATA Technology & Innovation

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
NTT DATA Technology & Innovation
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
NTT DATA Technology & Innovation
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
NTT DATA Technology & Innovation
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 

Recently uploaded

内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
Fast Retailing Co., Ltd.
 
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
嶋 是一 (Yoshikazu SHIMA)
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
Tetsuya Nihonmatsu
 
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
Toru Tamaki
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
company21
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
Tatsuya Ishikawa
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 

Recently uploaded (10)

内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
 
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
 
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 

PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)

  • 1. © 2024 NTT DATA GROUP Corporation PostGISの落とし⽳ 2024/07/01 イノベーション技術部IOWN推進室 池⽥凜太郎
  • 2. © 2024 NTT DATA GROUP Corporation 2 ⾃⼰紹介 池⽥ 凜太郎 (イケダ リンタロウ) [概要] NTTデータグループのイノベーション技術部 (昨⽇まで技術開発本部)でPostgreSQL関連の仕事をしています。 社会⼈、PostgreSQL 2年⽬ [最近のニュース] ⼤船あたりに引っ越そうかと物件を探しています。 おすすめエリアがあればぜひ教えてください。
  • 3. © 2024 NTT DATA GROUP Corporation 3 本発表の⽬的 PostGISは⼊⼒のバリデーションは完璧ではなく、正しく利⽤するために⽤語を理解する必要があります。 本資料では、理解のとっかかりになる事項、間違えやすい点をまとめました。 PostgreSQL、PostGISどちらも初⼼者なので、誤っている点があれば遠慮なく指摘してください。 本プレゼンテーションのスコープ: • PostGISを利⽤する前に理解するべき地理情報、PostGISに関する基本的なポイント • 想定していない出⼒が返却された時に思い出していただきたい内容 • (余談として内部関数) 想定するPostGISのバージョン: 3.4
  • 4. © 2024 NTT DATA GROUP Corporation 4 PostGISとは何か︖ PostgreSQLの地理空間情報を扱う拡張機能で、地理情報システムとして動作します。 主要機能: • 空間データの保管 • 空間インデックスの作成 • 空間図形に対する関数 • 地理データの処理 • ラスターデータの処理 • 位置参照機能 (Geocoding) • 他分析ソフトとの連携 https://postgis.net/
  • 5. © 2024 NTT DATA GROUP Corporation 5 01 利⽤前に知っておくべき 基本的な知識
  • 6. © 2024 NTT DATA GROUP Corporation 6 地理情報を表すデータ型 PostGISは2種類のデータ型を実装している。 1. Geometry: 投影座標系(カルテシアン座標系、デカルト座標系、直交座標)で表される属性 地球が平⾯だと思っている座標系 (英語だとCartesian/Projected coordinate) 例えば、メルカトル図法、正⾓図法、正距⽅位図法 2. Geography: 地理座標系(極座標、測地座標)で表される属性 地球が球体だと思っている座標系 (英語だとGeographic/Geodetic coordinate) 例えば、地球儀、楕円体座標 https://en.wikipedia.org/wiki/Cartesian_coordinate_system https://en.wikipedia.org/wiki/Geographic_coordinate_system 注、座標系の厳密さは置いておく
  • 7. © 2024 NTT DATA GROUP Corporation 7 空間参照系とは 空間参照系は、地球上のある点と座標の対応関係が存在する系である。 座標系と測地系の要素をもつ。 従来の測地系も各所で利⽤されている。例えば、ゼンリンの地図データベース「Zmap DATABASE」は旧⽇本測地系を利⽤し ている。 測地系 (Datum) 地球に座標系を適⽤するための ルール。準拠楕円体、⽔平/⾼さ の基準点を規定する。 座標系 点を特定する座標を導出するた めのルール 現⾏ WGS 84 ⽇本測地系2011 (JGD2011) 従来 ⽇本測地系2000 (JGD2000) 旧⽇本測地系 (Tokyo Datum) 地理座標系 回転楕円体に投影した緯度経度 投影座標系 平⾯直⾓座標系 UTM座標系 Webメルカトル座標系 JGD2011は東⽇本⼤震災の影響 (図)を補正している。 メルカトル図法、 正距⽅位図法 、正⾓図法 の類
  • 8. © 2024 NTT DATA GROUP Corporation 8 空間参照識別⼦ (SRID) 空間参照識別⼦: Spatial Reference Identifier (SRID) 空間参照系を特定するIDのこと。空間参照系ごとに以下の特徴があります。 • 単位 (メートル、度) • 座標系 (カルテシアン、極座標、楕円体座標) • ⽬的 (Webマッピング、地理測量など) • 利⽤推奨範囲 ⽤途に応じたSRIDを利⽤します。 https://epsg.io/はSRIDの情報を検索する時に便利です。 その他注意︓ • 複数のジオメトリを引数とする関数には、⼀貫するSRIDを持つジオメトリを⼊⼒する必要があります。 • ST_Transform関数を⽤いてSRIDを変換することができます。 EPSG: 9896 [1] 推奨される 利⽤範囲 INSERT INTO geotable (the_geom, the_name) VALUES ( ST_GeomFromEWKT('SRID=312;POINT(-126.4 45.32)'), 'A Place’); [1] https://epsg.io/9896
  • 9. © 2024 NTT DATA GROUP Corporation 9 SRIDの選び⽅と誤差 ⼀般的な空間参照系はEuropean Petroleum Survey Group (EPSG) が標準化している。 [1] https://epsg.io/4326 測地系 座標系
  • 10. © 2024 NTT DATA GROUP Corporation 10 PostGISが扱う空間図形 (1) 1. Open Geospatial Consortium (OGC)ジオメトリ (基本的な図形)の⼀部 Point: 点 POINT (1 2) LineString: 折れ線 LINESTRING (1 2, 3 4, 1 6) LinearRing: 閉じた折れ線 LINEARRING (0 0 0, 4 0 0, 6 4 0, 0 0 0) Polygon: 多⾓形 POLYGON(0 0 0, 4 0 0, 6 2 0, 6 6 0, 4 8 0, 0 8 0, -2 6 0, -2, -2, 0, 0 0 0)
  • 11. © 2024 NTT DATA GROUP Corporation 11 PostGISの提供する関数 PostGISには数多くの関数が存在します。https://postgis.net/docs/reference.html ここでは、ジオメトリを操作するごく⼀部の関数を紹介します。 • float ST_Distance(geometry g1, geometry g2); 2次元の距離を返却します。(後のスライドで例として出てきます。) • geometry ST_Union(geometry g1, geometry g2); ⼊⼒の2つのジオメトリを重複なく結合した結果を返却します。 • geometry ST_Rotate(geometry geomA, float rotRadians, float x0, float y0); 点(x0, y0)を中⼼としてrotRadiansだけ反時計回りに回転させたジオメトリを返却します。 • float ST_Area(geometry g1); ジオメトリのなす⾯積を返却します。 • boolean ST_Touches(geometry A, geometry B); 2つのジオメトリが接していれば、Trueを返却します。
  • 12. © 2024 NTT DATA GROUP Corporation 12 02 落とし⽳ 1. 投影単位のよくある間違い 2. SRIDの⼤切さ 3. 過信すると危険なIntersects 4. ポリゴンの持つ⾃明な(隠れた?)制約
  • 13. © 2024 NTT DATA GROUP Corporation 13 投影単位のよくある間違い (簡単) 地点A, Bの距離を計測する。 A: 40°N, 140°E (秋⽥県⼤潟村) B: 35°N, 135°E (兵庫県⻄脇市) 誤ったSQL⽂ 間違った結果が返却される原因 SRID:4326の空間参照系の単位はdegreeであるので、degreeの単位で距離が返却されてしまう。単位が距離の空間参照 系を利⽤する必要がある。 地球の全周は約4万kmなので、40000*7/360 = 778 kmでおおよそ合致する。 補⾜: PostGISのよくある質問の⼀つらしい。 https://gis.stackexchange.com/questions/76967/what-is-the-unit-used-in-st-distance postgres=# SELECT ST_Distance( ST_GeomFromEWKT('SRID=4326;POINT(140 40)'), ST_GeomFromEWKT('SRID=4326;POINT(135 35)')); st_distance -------------------- 7.0710678118654755 (1 row) Google mapでは 709.46 km A B ← 7 m??? 間違った値を返却している。 google map
  • 14. © 2024 NTT DATA GROUP Corporation 14 ST_Distance関数の正しい使い⽅ ST_Distance関数のマニュアル For geometry types returns the minimum 2D Cartesian (planar) distance between two geometries, in projected units (spatial ref units). For geography types defaults to return the minimum geodesic distance between two geographies in meters, compute on the spheroid determined by the SRID. If use_spheroid is false, a faster spherical calculation is used. 1. 単位がメートルの空間参照系に変換する 2. Geography型に変換する。 postgres=# SELECT ST_Distance( ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(140 40)'),6677), ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(135 35)'),6677)); st_distance ------------------- 709732.3831650843 (1 row) postgres=# SELECT ST_Distance( ST_GeomFromEWKT('SRID=4326;POINT(140 40)')::geography, ST_GeomFromEWKT('SRID=4326;POINT(135 35)')::geography); st_distance ----------------- 709253.72943453 (1 row) Google mapの計測結果 (709 km)と合致する距離を得 ることができた。
  • 15. © 2024 NTT DATA GROUP Corporation 15 投影単位がmならば、どの空間参照系でも良いのか︖ デジタル庁と豊洲センタービルの距離を計測する。まずは、google map デジタル庁 (N 35.679551, E 139.73691) 豊洲センタービル前 (N 35.655436, E 139.79669) Google mapによれば 6.03 km google map
  • 16. © 2024 NTT DATA GROUP Corporation 16 ⽬的に合わないSRIDを指定すると、、、 例1. SRID: 6677 (スコープ: 地理測量) 例2. SRID: 3857 (スコープ: マッピング、可視化。google mapの描画もこれ) 距離測定に不向きなSRIDでは誤差が⼤きい結果になった。⼀⽅で、全球において⼀ 定程度の誤差に収まるために、可視化には適している。 ポイント: ⽬的に合致した、⼀貫したSRIDを使⽤しなければいけない。 postgres=# SELECT ST_Distance( ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.73691 35.679551)'), 6677), ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.79669 35.655436)'), 6677)); st_distance ------------------- 6037.143806027076 (1 row) postgres=# SELECT ST_Distance( ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.73691 35.679551)'), 3857), ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(139.79669 35.655436)'), 3857)); st_distance ------------------- 7429.887070380764 (1 row) 距離: 6.04 km Google mapとほぼ⼀致した。 距離: 7.43 km Google mapと乖離している。 利⽤推奨範囲 全球で利⽤可 およそ⽇本の領海内で利⽤可 [1] https://epsg.io/6677 [2] https://epsg.io/3857 [1] [2]
  • 17. © 2024 NTT DATA GROUP Corporation 17 どのSRIDを利⽤するべき︖ [1] ⽇本を含む19つの領域 (系番号: Ⅰ- XIX)から適切なものを選択する。 [2] ⽇本を含む5つの領域 (51N~55N)から適切なものを選択する。 ※PostGISが標準でサポートしていないSRIDは⼿動でインストールする必要があります。 測地系 座標系 アメリカの投影座標系を利⽤する 場合は、別途
  • 18. © 2024 NTT DATA GROUP Corporation 18 過信すると危険なIntersects 以下のように7点を設定する。 A(0, 0, 0) B(2, 1, 1) C(0, 1, 1) D(1, 0, 0) E(1, 1, 1) 座標点から⽅程式を考えると、線分ABとCDは(2/3, 1/3, 1/3)で、線分AEとCDは(0.5, 0.5, 0.5)で交差するので、返り値 にはTrueを期待する。しかし、ST_3DIntersects関数は 線分ABとCDを衝突していない(false)と判定している。 原因︓浮動⼩数点演算によるものである。 対策︓線分と線分、線分と点などの細い(体積のない)⽴体同⼠の衝突を検知したい場合にはST_3DDistance関数を利⽤し て、閾値以下であれば衝突と判定するといったロジックを作るなどといった対応をとることができる。 POINTとLINESTRING(https://postgis.net/documentation/faq/intersection-intersect/)だけでなく、LINESTRING同⼠でも発⽣する。 postgres=# WITH parts AS ( SELECT 'LINESTRING(0 0 0, 2 1 1)'::geometry AS AB, 'LINESTRING(0 1 1, 1 0 0)'::geometry AS CD, 'LINESTRING(0 0 0, 3 3 3)'::geometry AS AE, 'LINESTRING(2 0 0, 0 2 2)'::geometry AS FG ) SELECT ST_3DIntersects(AB, CD), ST_3DDistance(AB, CD), ST_3DIntersects(AE, FG), ST_3DDistance(AE, FG) FROM parts; -[ RECORD 1 ]---+---------------------- st_3dintersects | f st_3ddistance | 7.850462293418876e-17 st_3dintersects | t st_3ddistance | 0
  • 19. © 2024 NTT DATA GROUP Corporation 19 閾値の選び⽅ (注) どんぶり勘定です。 PostGISは内部的にdouble型で変数を持っているので、15桁の有効桁数がある。 360度の経度で表現すると、10-12まで表現できる。 地球の全周は約4万km = 4×109 cmなので、 1cmは10-7度 1cmの距離に相当する経度の引き算をしても、5桁は⽣きている。 PostGISの距離計測関数を1度実⾏するくらいであれば、閾値は1mmと設定するのは問題なさそう。 逆に、1μmだと状況によっては問題になる。 [1] https://epsg.io/4326
  • 20. © 2024 NTT DATA GROUP Corporation 20 ポリゴンの持つ制約と隠れた(⾃明な?)制約 ドキュメントはポリゴンの持つ制約を以下のように定めている。 1. the polygon boundary rings (the exterior shell ring and interior hole rings) are simple (do not cross or self- touch). Because of this a polygon cannnot have cut lines, spikes or loops. This implies that polygon holes must be represented as interior rings, rather than by the exterior ring self-touching (a so-called "inverted hole"). 2. boundary rings do not cross 3. boundary rings may touch at points but only as a tangent (i.e. not in a line) 4. interior rings are contained in the exterior ring 5. the polygon interior is simply connected (i.e. the rings must not touch in a way that splits the polygon into more than one part) Polygonでない (制約に違反する) 6つ⽬の隠れた制約 ポリゴンをなす点は同⼀平⾯上になければならない。 (“ポリゴン”の定義から) 制約に違反する図形は関数⼊⼒のバリデーションで チェックされないので、関数は異常な値を返却する。 Polygon https://postgis.net/ 3 1 4 5
  • 21. © 2024 NTT DATA GROUP Corporation 21 ジオメトリのバリデーション PostGISはバリデーション関数を提供するが、あまり強⼒ではない。。。 boolean ST_IsValid(geometry g); boolean ST_IsValid(geometry g, integer flags); 4Dまでの⼊⼒を受け付けるが、2Dでのバリデーションのみを実⾏する。 注意: 前スライドの制約6 (ポリゴンをなす点が同⼀平⾯上にある)が満たされていることの判定はPostGISの内部 関数では実⾏できない。バリデーションを実⾏したければ、関数を⾃作する必要がある。 (浮動⼩数の同値判定をす ることになる。これがPostGISの関数が上記のバリデーションしか提供しない理由?) SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line, ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly --results NOTICE: Self-intersection at or near point 0 0 good_line | bad_poly -----------+---------- t | f 利⽤例