タグ付けされた質問 「postgresql」

PostgreSQLは、オープンソースのオブジェクトリレーショナルデータベースシステムです。

3
PostGISに大きなラスターを保存し、QGISで視覚化するとパフォーマンスが低下する
私の質問は、PostgreSQL、PostGIS、QGIS、およびGDALなど、いくつかのソフトウェアツールを組み合わせて使用​​およびパフォーマンスすることに関するものです。 私は、ArcGIS、Python、Rの長年のユーザーであり、無料のオープンソースGISエコシステムとLinuxへの多様化にも関心があります。最近、QGIS(ver 2.8)をPostgreSQL(ver 9.4)およびPostGIS(ver 2.1)と一緒に使用することに非常に興味があり、Windows 8.1 x64を搭載したコンピューターにコンピューターにソフトウェアをインストールしました(コンピューターの仕様:ThinkPad 2.1GHzコア2、8GB RAM、および240GB SSDを搭載したX200)。空間データ(〜100GB相当)の管理方法を学んだら、このマシンでUbuntuを実行したいと思います。 現時点では、シェープファイルとラスターを確実に保存および取得しようとしています。これまでのところ、シェープファイルをPostGISに読み込むことに成功していますが、ラスターはより問題が多いことが判明しています。小さなgeoTIFFおよびGRIDファイルの単一およびバッチインポートを正常に完了しましたが、大きなラスター(たとえば、ディスク上のサイズが156MBの15619x14655セルIMGまたはTIFFファイル)がPostGISにロードされるまでに時間がかかります。空間インデックスを構築し、これらのパラメーターを使用してタイルによってラスターを読み込むために、raster2pgsqlツールを読んで構成しました。 raster2pgsql -s 3161 -C -I D:\PostGIS_data\dem.img -t auto raster.dem | psql -h localhost -U postgres -p 5432 -d postgres インポートのパフォーマンスは依然として非常に低く、ハードウェアは問題ではありません。QGISでのPostGISラスターの視覚化はさらに悪く、せいぜい小さなラスターをゆっくりロードするか、完全にフリーズします。私が述べたような大きなラスターは、QGISで視覚化することは不可能です。ドキュメントとフォーラムの議論から、この欠点はQGIS自体ではなく、GDALのPostGISラスタードライバーによるものと思われます。フォーラムでの議論ではこの問題について簡単に言及しており、ラスタをPostGISに保存すべきではないと示唆する人もいます(ラスタをスムーズに処理できない空間データベースのポイントは何ですか?)。それでも、私は日常的にESRIのファイルジオデータベースを使用して、非常に大きな(〜70GB)ラスターをすばやく簡単に保存、視覚化、分析し、ArcGIS 10.1はそのような日常的な操作によってフリーズまたはスローダウンすることはありません。 ここで不足しているもの、対処していないボトルネックはありますか?PostGISのパフォーマンス上の利点を実現するために、PostgreSQLをチューニングする必要がありますか?探してコンパイルする必要があるGDALのバージョンがありませんか?特に、QGISでのシェープファイルとラスターのPostGISパフォーマンスと視覚化を改善するにはどうすればよいですか?Linuxターミナルを使用して、包括的かつ迅速な空間データ管理の栄光を享受するにはどうすればよいですか?この問題に関する助けを歓迎します! Duncan Golicherがこのガイドに従いました:https ://duncanjg.wordpress.com/2012/11/20/the-basics-of-postgis-raster/ 私は元々自動設定のタイルを使用していましたが、タイルを行ごとに100x100セルにリセットし、ガイドに示されているようにピラミッドを含めました。 raster2pgsql -s 3161 -d -C -I -M -l 4 D:\PostGIS_data\dem.img -t 100x100 raster.dem100 …

2
GeoServerでPostGISラスターを公開しますか?
GeoServerを使用してPostGISラスターを公開するにはどうすればよいですか? Image Mosaic JDBCを使用してRasterデータソースを作成しようとして多くの時間を費やしましたが、運はありません。 実行手順: 1. JDBC Image Mosaic拡張機能をダウンロードしてインストールしました(正常に機能しました) 2.「接続パラメーター」ファイルを作成しました: connect.postgis.xml.inc: <connect> <dstype value="DBCP"/> <username value="postgres" /> <password value="password" /> <jdbcUrl value="jdbc:postgresql://localhost:5432/db1" /> <driverClassName value="org.postgresql.Driver"/> <maxActive value="10"/> <maxIdle value="0"/> </connect> mapping.postgis.xml.inc: <spatialExtension name="postgis"/> <mapping> <masterTable name="mosaic" > <coverageNameAttribute name="name"/> <maxXAttribute name="maxX"/> <maxYAttribute name="maxY"/> <minXAttribute name="minX"/> <minYAttribute name="minY"/> <resXAttribute name="resX"/> <resYAttribute …

4
注入速度を最適化するにはどうすればよいですか?
osm2pgroutingで作成されたpostgisデータベースでpgroutingを使用しています。限られたデータセットで非常に優れたパフォーマンスを発揮します(3.5kの方法、20ミリ秒未満のすべての最短パスA *検索)。 ただし、europe.osmからより大きなバウンディングボックス(122kウェイ)をインポートしたため、パフォーマンスが大幅に低下しました(最短パスのコストは約900ミリ秒)。 A *を使用すると、これらのエッジのほとんどは、邪魔にならないため、決してアクセスされないと思います。 速度を改善するためにこれまでに行ったこと: ジオメトリ列にインデックスを配置します(顕著な効果はありません) メモリーを8GBから16GBに増やしました postgresqlのメモリ設定(shared_buffers、effective_cache_size)を(128MB、128MB)から(1GB、2GB)に変更します(顕著な効果はありません) ほとんどの作業はグラフが作成されているC Boostライブラリで行われているので、postgresqlを最適化しても良い結果が得られないと感じています。検索ごとにA *に選択した行のセットに小さな変更を加えると、ブーストライブラリはグラフをキャッシュできず、毎回122kのエッジをすべて再構築する必要があるのではないかと心配しています(非常にクエリごとの限定サブセット)。そして、実際の最短パス検索と比較して、それを行うのにどれだけの費用がかかるかわかりません。 122k以上のOSMデータセットでpgroutingを使用している人はいますか?どのようなパフォーマンスが期待できますか?どの設定がパフォーマンスに最も影響しますか?

1
PostGISとQGISは信頼できるマルチユーザー編集を提供できますか?
いくつかのオプションを検討した後、15〜20のQGIS 2.2ユーザーが1つまたは2つの基本的なPostGISレイヤーを同時に表示/編集できるようにしようとしています。PostgreSQL 9.1 / PostGIS 2.0をインストールしましたが、基本的なテストはうまくいくようですが、まだ大衆に解き放たれていません。 通常、一度に2〜3人の編集者しかいませんが、15人の閲覧者がいる可能性があります。編集はすべてQGISで行われ、視聴者はQGISとArcGISで行われます(ただし、SDEはありません)。 私が言ったように、これらは単なる基本的なポイントファイルであり、編集はポイントの追加/削除といくつかのテーブル編集になります。同じ機能を同時に編集することを心配していません。 この組み合わせは、2つの基本的なポイントファイルに対して信頼できるマルチユーザー編集を提供できますか?

4
pgAdmin 4のシェープファイルローダー
最近、postgresqlのバージョンを更新しました。また、pgAdminを3から4にアップグレードしました。しかし、シェープファイルをロードできませんでした。シェイプファイルローダーと呼ばれるプラグインが見つかりませんでした。pgAdmin 4でシェープファイルローダープラグインを取得するにはどうすればよいですか?

3
PostGISで空間テーブルを作成する
PostGISドキュメントでは、SQLで空間テーブルを作成するには2つのステップがあると書かれています。 通常の非空間テーブルを作成します。 OpenGISの「AddGeometryColumn」関数を使用して、空間列をテーブルに追加します。 例に従えば、次のterrain_pointsようなテーブルを作成します。 CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, elevation double precision, ); SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 ); あるいは、pgAdmin IIIの既存のテーブルを見ると、次のように同じテーブルを作成できるようです。 CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, wkb_geometry geometry, elevation double precision, CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid), CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 3), CONSTRAINT …

8
pgadmin3でShapefile GUIローダーを有効にするにはどうすればよいですか?
Ubuntu 11.10にPostgreSQL 9.1とPostGIS 1.5.3をインストールしました。 この手順に従って、pgadmin3 1.14.0-beta1もインストールしました。 正しく覚えていれば、PostGISをWindowsにインストールすると、pgadminにはShapefile GUI Loaderプラグインが自動的にインストールされていました。ただし、Ubuntuでは、プラグインのドロップダウンメニューは空です。 私が見つけた指示は、Windows固有のもののようです。 Ubuntuにインストール/有効化する方法はありますか?

1
Postgis2.0のラスターテーブルにビューを作成できますか?
ラスターデータを含むテーブル上にPostgreSQLビューを作成することは可能ですか? ビューの作成に成功しましたが、エントリraster_columnsが正しくありません(すべてのラスター情報が欠落しています)。また、QGISを使用してSQLビューを開くことができませんでした(ほとんどの場合、raster_columnsが正しくないためです)。 gemetry_columns&viewsに関するこの質問と同じ状況ですが、ラスタ列については、ビューの作成中にtypemodを強制する正しい構文が見つかりませんでした。 私が見つけることができるのはこれだけです: raster(ARRAY ['8BUI'、 '8BUI'、 '8BUI']、4326,0.5、-0.5、...); しかし、「...」の後に続くのは謎です。 誰かがraster_columnsに正しいエントリを持つビューを作成できましたか? 短い例を高く評価します。

3
WindowsでPostGIS 2.0データベースにラスターをロードする
ラスタをPostGIS2.0データベースにロードする方法を理解しようとしています(このトピックに関する以前の質問は、こことここにあります)。raster2pgsql.exePostGIS2.0で提供されるプログラムを使用しようとしています。 Windowsのコマンドプロンプトを管理者として実行する必要があることを理解した後(Windows 7で管理者としてコマンドラインを実行するcmdには、検索バーに入力してctrl+ shift+ enterを押しraster2pgsql.exeます)、機能を有効にして並べ替えを管理しますラスタをデータベースにロードします。インストールのフォルダーras_test.tifに一時的に配置したというラスターファイルがあります。次のコードを使用して、このラスターを変換してロードします。binpostgresql C:\Program Files (x86)\PostgreSQL\9.1\bin>raster2pgsql -s 102003 ras_test.tif -t> elev.sql Processing 1/1: ras_test.tif C:\Program Files (x86)\PostgreSQL\9.1\bin>psql.exe -p 5434 -U postgres -d test2 -f elev.sql BEGIN psql:elev.sql:2: NOTICE: CREATE TABLE will create implicit sequence "-t_rid_seq" for serial column "-t.rid" psql:elev.sql:2: NOTICE: CREATE TABLE / PRIMARY KEY will create …

1
PostGIS距離クエリのインデックスを適切に設定する方法は?
から数キロメートル離れRecordたテーブル内のすべてを照会して返すことになっているアプリケーションを構築しています。およびの位置は、Google Geocode APIによって提供される情報から決定されます。XPointXRecordsPointX(long/lat) 私はPostGISが初めてです。簡単な調査の後、私はこの質問を見つけました。答えは次のようなものに沿っているようです: SELECT * FROM your_table WHERE ST_Distance_Sphere(the_geom, ST_MakePoint(your_lon,your_lat)) <= radius_mi * 1609.34 問題は、GISを始めたばかりであるにもかかわらず、上記のクエリを見ると、インデックスをどのように使用できるか想像できないことです。2つの関数呼び出しがあります。毎回テーブルがスキャンされると想像しますRecord。私は間違っていたいです:) 質問:PostGISには、上記のクエリを実行できるインデックスタイプがありますか?そうでない場合、必要なことを行う推奨アプローチは何ですか?

3
PostGISが適切にフォーマットされた住所をジオコーディングするのにどれくらいの速度が必要ですか?
PostGISが適切にフォーマットされた住所をジオコーディングするのにどれくらいの速度が必要ですか? PostgreSQL 9.3.7とPostGIS 2.1.7をインストールし、国のデータとすべての州のデータをロードしましたが、ジオコーディングが予想よりはるかに遅いことがわかりました。期待値を高く設定しすぎていませんか?1秒あたり平均3つの個別のジオコードを取得しています。約500万回行う必要がありますが、これを3週間待ちたくありません。 これは巨大なR行列を処理するための仮想マシンであり、このデータベースを横にインストールしたため、構成が少し間抜けに見えるかもしれません。VMの構成の大きな変更が役立つ場合は、構成を変更できます。 ハードウェア仕様 メモリー:65GBプロセッサー:6 lscpuはこれを私に与えます: # lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0-5 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 6 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Stepping: 0 CPU …

1
西に面するすべてのビーチのOSMを照会しますか?-QGISが望ましい
この惑星(またはその特定のサブセット)で西向き(+/- 20-30度)にあるすべてのビーチを特定したい。 私の考えは、OSMをデータソースとして使用することです。タグ「natural = beach」を持つすべてのポリゴンを抽出すると、ビーチとしてフラグが付けられているすべてのエリアのデータセット/シェープファイルが得られます。ここまでは順調ですね。 また、海岸線のデータ(OSMやNatural Earthなど)を使用して、ビーチの向きを特定できることも知っています。 小さな不一致を修正するためにビーチの形状をバッファリングし、これらを海岸線と交差させると、形状のどちら側が水に面しているかに関するデータが得られます。交差するすべてのポイントの最大値/最小値を使用すると、方位がわかります。(90度+/- 20-30度なら問題ありません...) そして、それは私が失われた場所です... 私の好みのツールはQGISですが、PostGISも同様です。 このパズルを解く方法を知っている人はいますか?

3
PostGISを使用して道路の交差点を特定する
道路が交差する場所を特定し、交差点を形成する道路の数をリストして、この交差点でポイントを作成しようとしています。 これを達成するためにST_NumPointsを使用する方法があるかどうか疑問に思っていましたが、私は何をすべきかを理解できません。次のコードを使用して、線が交差するポイントのテーブルを作成しました。 CREATE TABLE test_points as SELECT ST_Intersection(a.geom, b.geom), a.gid FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom); 道路のサンプルでこれを実行すると、次の点のグリッドが得られます(道路は説明のために示されています)。 ポイントの1つを調べると、多くのポイントが積み重なっていることがわかります。 ここのGIDは道路IDですが、なぜ多くのポイントがあるのか​​理解できません。中央の道路の交差点で4つのポイントがカウントされることは理解できますが、ここには12ポイントがリストされています。PostGISでこの計算を実行するより良い方法はありますか?

2
PostGISで最も近いジオメトリを見つける
私はPostGISの関数の「API」を見てきましたが、それらのほとんどが比較するために2つの要素を必要とすることに気付きました。たとえば、ST_Distance関数は、距離を見つけるために2つのジオメトリ/地理要素を取ります。 「ジオメトリGを指定して、テーブルTでG.id <> GClosest.idの最も近いジオメトリGClosestを指定してください」などの機能はありません。 PL / PgSQL関数を作成してテーブルを反復処理し、各要素でST_Distanceを呼び出すことができることを理解していますが、より良い、より効率的なソリューションがあることを望んでいます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.