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

構造化クエリ言語の略語。リレーショナルデータベースからデータを取得して操作するための構文。

2
PostgisでのArcGISのような速度の取得
私は1年の3/4でPostgis 2.0を使用していますが、実際に使用している間は、クエリ処理に時間がかかりすぎて、ユースケースでは基本的に使用できなくなりました。 私は、多くの場合、数十万のマルチポリゴンを持つ地方自治体のデータセットで大量のジオプロセシングを行う傾向があります。これらのマルチポリゴンの形状は非常に不規則な場合があり、マルチポリゴンごとに4ポイントから78,000ポイントまで変化する可能性があります。 たとえば、525個のマルチポリゴンを含む管轄データセットで329,152個のマルチポリゴンとパーセルデータセットを交差させると、合計消費時間について次の統計が得られます。 ArcGIS 10.0 (on same host with windows 7 OS): 3 minutes Postgis:56 minutes (not including geometry pre-processing queries) 言い換えると、ArcGISよりもPostgisでこの共通部分を実行するのに1500%長い時間が必要です。これは、私の最も単純なクエリの1つです。 ArcGISが高速に実行されると思われる理由の1つは、インデックスの改善によるものです。最近、一部のプログラマはこれらのインデックスがどのように機能するかを理解しました。Postgisでこれらのインデックスを作成する方法(またはインデックスを模倣するテーブルを作成する方法)を知っている人がいるかどうか疑問に思います。おそらくこれはPostgisの速度の問題のほとんどを解決するでしょう。特にArcGISは4 GBのRAMしか使用できませんが、postgisサーバーの最大4倍のRAMを使用できるため、何らかの方法が必要だと思います。 もちろん、postgisの動作が遅くなる理由はたくさんありますので、システム仕様の詳細バージョンを提供します。 Machine: Dell XPS 8300 Processor: i7-2600 CPU @ 3.40 GHz 3.40 GHz Memory: Total Memory 16.0 GB (10.0 GB on virtual machine) Platform: Ubuntu …

4
PostGISを使用して、多数の小さなポリゴンを結合して大きなポリゴンを形成しますか?
postgisでSRID 27700を使用する次のレイヤーがあります。 それは英国のすべての行政区域であり、(色のグループからわかるように)それぞれには、彼らが属する郡を指定するテキストフィールドがあります。 私がやりたいのは、特定の郡の小さなポリゴンから大きな郡ポリゴンを作成することです。したがって、上の図のすべてのティールカラーポリゴンは、その中のすべてのポリゴンを含む単一の外側リングから1つの大きなポリゴンを形成します賢明なように、すべての紫、茶色、ピンク、灰色などの色はすべて1つの多角形を形成するはずです。 私はすでに次のことを試しました: insert into parishesmerged (geometry) select astext(multi(ST_Union(the_geom))) as the_geom from parishes group by county_name しかし、壊れたジオメトリが生成され続けるため、さらに処理する際に大きな問題が発生します。 主要な出力エリアを含む、より単純な郡レベルのマップを作成しようとしています。 いずれのソリューションもPostgisにある必要はありません。OS4Geoのフルスタックがインストールされており、QGisの最新バージョンと、棒を振るよりも多くのユーティリティがあります。 私が持っていないのは、ArcGisのような大きな男の子だけです(ただし、古いMapinfoがどこかにあるかもしれません) 記録のために、私が作成しようとしているデータセットは、.NETを使用してGISアプリケーションを記述したい.NETプログラマーを対象とした、執筆中のGISブックに付属しています。 以下の提案を試した後、最も効果があったのは「ポールラムジー」ソリューションでした。 これで、私の本にとっては十分に単純ですが、興味深い地理空間SQLを示すことができるほど複雑な、素敵な簡略化された郡と自治区のファイルができました。 ポールのソリューションは最終的には私にとっては有効なソリューションでしたが、ポリゴンマップの簡素化や複雑さの軽減など、他の回答も参考にしました。 しかし、これを行っている間に私が観察したことで、ST_Collectは実際にはST_Unionより高速ですが、実行のために実行することは、ジオメトリの破損の主な原因でもありました。私の推測では、コア関数の精度は低下しますが、速度の向上は得られます。
47 postgis  sql  dissolve 

8
PostGISで交差しないフィーチャを選択します
これは私にはそのような単純な質問のように思えます(おそらくそうです)が、答えを与える例を見つけることができないようです。PostGISを使用して、ポリゴンの外側にあるポイントを選択したいだけです。最終的に、これはST_Intersectsの逆であり、私が見る限りです。 例:タックスロットレイヤーと住所ポイントレイヤーがあります。ST_Intersectsを使用する必要があると思いますが、逆選択を行うようにするにはどうすればよいですか?次のコードの前にNOTステートメントを追加することも考えられましたが、うまくいきませんでした。 CREATE table t_intersect AS SELECT hp.gid, hp.st_address, hp.city, hp.st_num, hp.the_geom FROM public.parcel as par, public.housepoints as hp WHERE ST_Intersects(hp.the_geom,par.the_geom);

21
ArcSDEを使用せずに表示とクエリのためにArcMapからPostGISデータベースに接続しますか?
ArcGIS Desktop 9.3以降を使用して、ArcMapからPostGISデータベースに接続するにはどうすればよいですか? テーブルの内容を単にダンプするのではなく、空間的に有効化されたクエリを実行し、結果(空間および非空間結合、フィルタリングなど)を受信できるようにしたいと思います。 ArcSDE空間拡張を使用したくない、ArcGIS DesktopでPostGIS空間拡張を使用したい。

4
PostGISの完全なgeojson機能を持つSQLクエリ?
PostGISのプロパティでgeojson機能を取得したいと思います。機能のコレクションを持つ例を見つけましたが、機能だけで機能させることはできません。 SELECT row_to_json(fc) FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features FROM (SELECT 'Feature' As type , ST_AsGeoJSON(lg.geog)::json As geometry , row_to_json(lp) As properties FROM locations As lg INNER JOIN (SELECT loc_id, loc_name FROM locations) As lp ON lg.loc_id = lp.loc_id ) As f ) As fc; これまで、例の機能コレクションクエリを変更しようとしました。しかし、出力は無効です。

5
QGISのSQLコンソール
QGISにはフィールド計算機が付属していることは知っていますが、悪くはありません。また、ジオメトリと属性に対するいくつかの操作を許可するftoolsが付属しています。しかし、より多くの制御が必要になることが多く、そのような操作を実行するQGISの便利なツールはありません(空間クエリを実行しながら、必要なフィールドを選択したり、算術演算を実行したりできます)。 基本的に、SQLコンソール(Mapinfo mapbasicウィンドウの一種)がQGISのロードマップ上にあるかどうか、そうでない場合はプラグインとしてコーディングするのが難しいかどうかを知りたいです。まだ存在する場合、私に知らせてください、私はそれを逃しました!;-)

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 …



4
QGISを使用してシェープファイルフィールドから個別の値のリストを取得していますか?
クエリダイアログでwhere句を指定してフィルター処理できる機能を持つシェープファイルがあります。Fx「city_name」という名前のフィールドがあり、where句に「city_name = "London"」と記述することで、ロンドンのみが表示されます。ここでやりたいことは、属性テーブルから「city_name」のすべての値を取得することです。 そんな感じ: select distinct city_name from [attribute table] QGISでいくつかのツールが明らかにSQLを処理していることを発見し、さまざまなプラグインを簡単に確認しました。しかし、データベースまたはテーブル名に接続できません...その場合、どのデータベースまたはテーブルですか? 最後に、結果リストをエクスポートし、さらに処理するために使用します。 QGIS 1.8を使用しています。
18 qgis  shapefile  sql 

1
ogr2ogrを使用して属性でフィーチャを選択しますか?
何らかの処理の後にシェープファイルを作成しています。ただし、最後の手順では、シェープファイルの属性による選択を行う必要があります。 コマンドが動作するときにPythonスクリプトで使用することを目的として、シェルでコマンドを使用しています。 ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp エラーメッセージが表示されます。 FAILURE: Unable to open datasource `Downloads' with the following drivers. 何が間違っているのでしょうか?

3
PostGISでMultiLinestringをLinestringに変換しますか?
複数行の文字列があり、それをラインストリングに変換して、ラインストリングでのみ機能するいくつかの関数を使用したい。ST_Dump()ジオメトリのコレクションを使用して取得しました。それらをマージして戻すと、まだ複数線ストリングが得られます。単純なラインストリングで終わるために、Npointsを取得し、それらを一緒に結合するか、何かにする必要がありますか?ST_LineMerge()私の複数線ストリングでも機能せず、同じ結果を返します。 私の例、 MULTILINESTRING(( - 3.16420835153456 55.9269166007097、-3.164222 55.926918)、( - 3.1642070167833 55.9269296196706、-3.16421351659546 55.9268662214904)、( - 3.16421351659546 55.9268662214904、-3.16421636372824 55.9268384509897)、( - 3.16421636372824 55.9268384509897、-3.16422182573761 55.9267851753802)、( - 3.16422182573761 55.9267851753802、-3.16422870102352 55.926718114886 )、( - 3.16422870102352 55.926718114886、-3.16423309121073 55.926675293667)、( - 3.16423309121073 55.926675293667、-3.16423565148822 55.9266503211093)、( - 3.16423565148822 55.9266503211093、-3.16424103159897 55.9265978443265)、( - 3.16424103159897 55.9265978443265、-3.16424680776317 55.9265415044985)、( - 3.16424680776317 55.9265415044985、-3.16425267254583 55.9264843002995 )、(-3.16425267254583 55.9264843002995、-3.16425541048045 55.9264575949012)、(-3.16425541048045 55.9264575949012、-3.16426111146586 55.9264019883556)、(-3.16426111146586 55.9264019883556、-3.1642667032531 …
16 postgis  sql 

1
PostGISを使用してトポロジ関係を識別する
PostGISを使用して基本的な類型分析を実行しようとしています。私の目的は、他のポリゴンに接触するポリゴンを見つけることです。これを行うために、私ST_GetFaceEdgesはうまくいくと思った(リファレンス)。データベース内のすべてのポリゴンをチェックし、それに接触する他のすべてのポリゴンをリストしたい。下の画像では、2つのポリゴン(建物)が1つの建物に接触し、他の4つのポリゴンが0のポリゴンに接触していると言う結果が期待されます。 しかし、私は何をすべきかを理解するのに少し苦労しています。この例をコピーしようとしたときに、理解できない部分がいくつかありました。 -- Returns the sequence, edge id -- , and geometry of the edges that bound face 1 -- If you just need geom and seq, can use ST_GetFaceGeometry SELECT t.seq, t.edge, geom FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge) INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id; topologyテーブル、列、または関数の一部の名前がわからない。私はそれがテーブルだと思っていましたが、よくわかりません。 -- try …
16 postgis  sql  topology 

3
PostGISを使用してラスタとポリゴンを交差させる-アーティファクトエラー
PostGIS2.0を使用して、ラスター/ポリゴンの交差を行います。どの操作を使用する必要があるのか​​、これを実行する最も速い方法は何かを理解するのが困難です。私の問題は次のとおりです。 ポリゴンとラスターがあります ポリゴン内にあるすべてのピクセルを見つけて、ピクセル値の合計を取得したい (更新された問題):クエリを実行すると、元のラスターに存在しないいくつかのピクセルの大きな値を取得しています ST_Intersects()またはを使用する必要があるかどうかがわかりませんST_Intersection()。また、ピクセルを合計するための最良のアプローチが何であるかわかりません。これが私が試した最初のアプローチです(#1): SELECT r.rast FROM raster as r, polygon as p WHERE ST_Intersects(r.rast, p.geom) これはrast値のリストを返しますが、これをどうすればいいのかわかりません。を使用して要約統計を計算しようとしましたST_SummaryStats()が、これがポリゴン内にあるすべてのピクセルの加重和であるかどうかはわかりません。 SELECT (result).count, (result).sum FROM ( SELECT ST_SummaryStats(r.rast) As result FROM raster As r, polygon As p WHERE ST_Intersects(r.rast, p.geom) ) As tmp 私が試した他のアプローチ(#2)はST_Intersection()次を使用します: SELECT (gv).geom, (gv).val FROM ( SELECT ST_Intersection(r.rast, p.geom) AS …

3
交差する線をPostGISで結合する
これは私が尋ねることをほとんど恥じているものですが、私はそれが私の人生のために機能するように思えません。 セグメントを持つ道路レイヤーがあり、各セグメントにはRoad IDとセグメントがありますtype。 すべてのセグメントRoad IDを1つのラインストリングに結合しますが、それらが同じでtypeあり、接触している場合のみ(すべてのラインがスナップされます)。 Road ID - Type 1 L 1 L 1 T 1 L
15 postgis  sql 

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