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

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

1
QGISの最近傍グループ化選択
qgisにインポートしたlat / long形式で100,000以上のポイントを含むリストがあります。 さて、私がここでやろうとしているのは、これらすべてのポイントをボックスグループにグループ化することです。つまり、本質的に、マップを境界ボックスに分割したいということです。 私の要件は次のとおりです。 ボックス化されたグループは100ポイント以下、200ポイント以下である必要があります 複数のグループにポイントを配置しないでください すべてのポイントは、最近傍に基づいている必要があります qgisでこれをどのように達成できますか? カスタムクエリコードを渡して、結果またはシェープファイルとして作成されたボックスを保存できると仮定していますか?誰かがこれをどのように行うことができ、コードがどのように見えるかを説明してもらえますか? 前述のように、私の目的は、各ボックス内に100個以上、200個以下のプロパティが含まれるシェープファイルレイヤーとして表示される正方形のボックスを作成することです。

1
PostGISのラインからポリゴンを作成する
ポリゴンをラインから小さなポリゴンに分割しようとしていますが、st_split関数を使用できないと思います。必要なのは、ラインストリンググリッドを使用して、大きなポリゴン内に小さなポリゴンを作成することです。 いくつかの方法を試しましたが、結果を得ることができません。私が試したもの: st_split()を使用してLineStringから1つのポリゴンを分割します 境界ポリゴンから。 そして、線ストリング表: 次のポリゴンが必要です。 問題:複数のラインからポリゴンを分割することはできません。マルチラインストリングからポリゴンを分割することもできません。 私が試みているもう1つの方法は、st_polygonize()でラインからポリゴンを作成することです SELECT g.path[1] as gid, g.geom::geometry(polygon, 22033) as geom FROM (SELECT (ST_Dump(ST_Polygonize(geom))).* FROM linestable ) as g; PostgreSQLおよびPostGISを使用してラインセグメントからポリゴンを作成することから抽出 問題:ポリゴン(境界)を1つしか取得できません。 誰かがラインストリングからポリゴンを取得する最善の方法だと教えてもらえますか、または何かが足りない場合は? 注:テーブルは同じSRIDにあり、ジオメトリはグリッドにスナップされます。QGISでは、ラインからポリゴンへのポリゴン化プロセスを完全に実行できます。 ジョンの要求として、ここにラインストリングテーブルがあります。 https://drive.google.com/file/d/0B603y_m735jfS014S0EyVnpMUEU/view?usp=sharing
13 postgis  sql  topology 

1
Hstoreキー/値と空間クエリの組み合わせが大きすぎるOSM抽出を処理するには遅すぎる
PostgreSQL 9.3.5およびPostGIS 2.1.4を使用して、OSMデータの統計を計算しようとしています。Geofabrikからダウンロードした小さなバイエルン抽出物から始めました。dbスキーマは通常のAPI 0.6スキーマであり、データはダンプアプローチを介してPostgresにインポートされました(osmosisに付属のpgsnapshot_schema_0.6 * .sqlスクリプトを使用)。ANALYZE VACUUMも実行されました。 私が使用している唯一のカスタムメイドのものは、すべての管理境界関係のマルチポリゴンを含むポリゴンテーブルです。ポリゴンジオメトリは、決して簡素化されていません。 私が今達成しようとしているのは、バイエルンのadmin = 6境界内にあるすべてのノードをカウントすることです。これが私のSQLクエリです。 SELECT relpoly.id, count(node) FROM bavaria.relpolygons relpoly, bavaria.nodes node WHERE relpoly.tags @> '"boundary"=>"administrative","admin_level"=>"6"'::hstore AND ST_Intersects(relpoly.geom, node.geom) GROUP BY relpoly.id; Postgresはネストされたループ結合を行っており、admin = 6境界ごとにすべてのノードをスキャンするため、このクエリの実行時間はひどいです。参考までに、バイエルンは98個のadmin = 6ポリゴンに分割され、バイエルン抽出物には約3,000万個のノードがあります。 この準最適なクエリの実行を回避し、Postgresにすべてのノードを一度だけスキャンするように指示することは可能ですか(たとえば、結果セット内の対応するポリゴンのカウンターをインクリメントするか、ヒントを使用して) 編集: 1)バイエルンノードに空間インデックスが存在する: CREATE INDEX idx_nodes_geom ON bavaria.nodes USING gist (geom); 2)クエリプランは次のようになります。 HashAggregate (cost=284908.49..284908.75 rows=26 width=103) …

2
ArcGISとPostgreSQLをArcSDEだけで使用することの利点は何ですか?
ArcGIS空間データ型(ST_GEOMETRY、バージョン対応ジオデータベースなど)を活用するには、ArcSDEをインストールする必要があることを理解しています。10.1クライアントでは、自動的にインストールされます(2層クライアント>> DBMS、こちらを参照)。 ただし、EsriフロントエンドをPostgreSQL(またはOracle)に接続する利点を理解しようとしています。スケーラビリティ/パフォーマンス/冗長性/ DBAabilityなどの純粋にバックエンドの利点ですか、それともPostgreSQL / PostGISセットアップによって提供される追加のフロントエンド機能がありますか?Esriのヘルプは精巧ではないようです 参考までに、私はPostgresql / PostGIS / QGISがArcGIS /他のデータベースよりもスケーラブル/柔軟(そして安価)である理由を説明することを目的としたGIS論文を設計しているデータベース初心者です。実装する余裕はありません。この最後のポイント、特にワークフローに関するリンク(たとえば、シェイプファイルが大量に散らばっていないなど)は大歓迎です。d。

3
Pythonリストにある場合、属性によって機能を選択しますか?
Pythonで属性による選択を完了しようとしていますが、属性がリストに存在するかどうかのクエリに基づいています。 そのような最も単純なクエリは、次のようになります。 qry = " \"OBJECTID\" in oid_list" arcpy.SelectLayersByAttribute_management(inft, "NEW_SELECTION", qry) しかし、そのアプローチは無効な式エラーを返します。 過去には、このタイプのクエリには、次のようなより複雑な構文を使用する必要がありました。 sqlQuery2 = "nid in (" + ','.join(["'"+x+"'" for x in delta_list]) +")" しかし、このスニペットの適応も私にとってはうまくいかないようです。 "OBJECTID_1 in (" + ','.join(["'"+str(x)+"'" for x in oid_list]) +")" ここで何が欠けていますか?

3
PostGISでGPS位置を補間する方法
5秒ごとのGPS位置のPostGISテーブルがあります。 2011-01-01 00:00:05, POINT(x1,y1) 2011-01-01 00:00:10, POINT(x2,y2) 2011-01-01 00:00:15, POINT(x3,y3) ... 1秒ごとに値(タイムスタンプとポイント)を返すクエリを探しています。ポイントが直線で接続されていると仮定しても構いません。 私は、外部スクリプトを書くことではなく、データベース内でこれを行う方法を具体的に探しています。

2
PostGISを使用して複数のテーブルからジオメトリを取得しますか?
私は、PostGIS、PostgreSQL、SQL全般について非常に新しいです。 PostGISデータベースには44個のテーブルがあり、各テーブルはベクターデータの異なるレイヤーを表しています。それぞれが個別のシェープファイルからロードされ、それぞれには、そのレイヤーのジオメトリを記述する列があります。wkb_geometry 1つのレイヤーで特定のポリゴンを選択し、そのポリゴンの境界ボックスとオーバーラップするレイヤーのサブセットからすべてのジオメトリを取得したい。私は、出てくる順序について気難しいとは感じていませんが、各グループのジオメトリが由来するテーブルによって編成されていると便利です。 これが私のSQLステートメントのサンプルです。 SELECT ST_AsEWKT(wkb_geometry) /* Some of this data has z values, hence the EWKT */ FROM table2, table3, table4, table5 WHERE wkb_geometry && ( SELECT wkb_geometry FROM table1 WHERE ogc_fid = 25 ); エラーを返します: column reference "wkb_geometry" is ambiguous /* note that every table that I am …
13 postgis  sql 

2
PostGISを使用してテーブルの緯度/経度からジオメトリを作成しますか?
緯度と経度の列を含む、80万件を超えるレコードを持つテーブルがあります。データソースはジオメトリを作成しなかったため、これを行う方法を探していました。ST_MakePoint(x、y、SRID)があることは知っていますが、すべてのドキュメントと他のスレッドは、単一のポイントを作成する方法を示しています。これらの列を使用してジオメトリタイプを作成するにはどうすればよいですか?
13 postgis  sql 

1
ST_プレフィックスは、SQL / MMパート3に含まれていない関数に適していますか?
このGithubの問題でPrestoの地理空間拡張に関するスレッドを読んでいたところ、関数line_locate_pointが導入されました。これはPostGISのST_LineLocatePoint関数に基づいており、特定の場所に最も近いポイントのラインに沿った分数を表すフロートを返します。 PostGISバージョンとは異なりline_locate_point、なぜ名前が付けられたのかという疑問が持ち上がりましたST_LineLocatePoint。応答は、この関数はSQL / MMパート3標準に存在しないため、で始まるべきではないというものでしたST_。 標準をすばやく読んで、標準にない空間関数をデータベースに導入する場合の処理​​方法についてのコメントはありません。ST_接頭辞の精神は、空間関数を非空間関数と区別するためですか(PostGISの場合のように)、または関数がSQL / MMパート3の同等の関数に準拠していることを示すためですか? PrestoのAPIの現在の状態を見ると、後者のアプローチはあまりきれいに見えず、名前が一貫していない理由について混乱を招いていると言わざるを得ませんが、おそらくこれは上部の簡単なメモで対処できます。 私の質問は、定義された空間オブジェクトのセットを超えて拡張できるように見落としている標準の側面があるかどうか、または以下の標準の書かれたまたは書かれていない規則によって明示的に禁止されている場合。

3
PostGISでのボロノイ図の作成
ここからの修正コードを使用して、点のグリッドからボロノイ図を作成しようとしています。これは私の変更後のSQLクエリです。 DROP TABLE IF EXISTS example.voronoi; WITH -- Sample set of points to work with Sample AS (SELECT ST_SetSRID(ST_Union(geom), 0) geom FROM example."MeshPoints2d"), -- Build edges and circumscribe points to generate a centroid Edges AS ( SELECT id, UNNEST(ARRAY['e1','e2','e3']) EdgeName, UNNEST(ARRAY[ ST_MakeLine(p1,p2) , ST_MakeLine(p2,p3) , ST_MakeLine(p3,p1)]) Edge, ST_Centroid(ST_ConvexHull(ST_Union(-- Done this …

1
ST_DelaunayTrianglesを使用してボロノイ図を作成する方法
(編集2019)PostGIS v2.3 以降で使用可能なST_VoronoiPolygons! PostGIS 2.1+では、ST_DelaunayTriangles()を使用してDelaunay三角形分割を生成できます。これは、そのボロノイ線図の双対グラフであり、理論的には、正確かつ可逆的な変換を行います。 このPostGIS2 DelaunayからVoronoiへの変換のために、最適化されたアルゴリズムを備えた安全な SQL標準スクリプトはありますか? その他の引用文献:1、2

2
大きなCSVファイルをPostGISにインポートする
CSVファイルをPostGISにインポートしようとしています。この投稿に続いて、以前にテーブルを作成しました。copyコマンドを実行できると言っている他の提案を見つけました。 このコマンドを実行した場合: COPY table FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; テーブルをまったくコピーしませんでした。「テーブル」は認識されないと言います。 私はこれを試しました: COPY moulding (Borough,Block,Lot,CD,CT2010,CB2010,SchoolDist,Council,ZipCode,FireComp,PolicePrct,Address,ZoneDist1,ZoneDist2,ZoneDist3,ZoneDist4,Overlay1,Overlay2,SPDist1,SPDist2,LtdHeight,AllZoning1,AllZoning2,SplitZone,BldgClass,LandUse,Easements,OwnerType,OwnerName,LotArea,BldgArea,ComArea,ResArea,OfficeArea,RetailArea,GarageArea,StrgeArea,FactryArea,OtherArea,AreaSource,NumBldgs,NumFloors,UnitsRes,UnitsTotal,LotFront,LotDepth,BldgFront,BldgDepth,Ext,ProxCode,IrrLotCode,LotType,BsmtCode,AssessLand,AssessTot,ExemptLand,ExemptTot,YearBuilt,BuiltCode,YearAlter1,YearAlter2,HistDist,Landmark,BuiltFAR,ResidFAR,CommFAR,FacilFAR,BoroCode,BBL,CondoNo,Tract2010,XCoord,YCoord,ZoneMap,ZMCode,Sanborn,TaxMap,EDesigNum,APPBBL,APPDate,PLUTOMapID,Version) FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; しかし、どちらも機能しませんでした。 このようなデータセットの例は、次のリンクからダウンロードできます。 モデルを作成してから実行する必要がありますか?


1
ArcGIS DesktopのSELECT TOPクエリ?
ArcGISデスクトップ内でSELECT TOP(n)を使用する方法はありますか?ArcGISクエリビルダーはWHERE句の後にSQLステートメントを効果的に構築しているため、これは不可能であると思われます。 ここで、一般的なSQLの例の使用の: SELECT TOP 3 * FROMレイヤー

1
フィールドを更新して、STIntersectsを使用してポリゴン内のポイントの数を指定しますか?
ポイントレイヤー(dbo.ptLayer)があります 約1Mポイント 空間ジオメトリタイプ(dbo.ptLayer.geom) 空間インデックスはまだありませんが、データ収集が完了すると作成されます。 ポリゴンレイヤー(dbo.polygonLayer)があります 約500個のポリゴン。 空間ジオメトリタイプ(dbo.polygonLayer.geom) どちらにもIDというフィールドがあります。 ポリゴンレイヤーの空の整数フィールドに、各ポリゴン内の合計ポイント数を入力するにはどうすればよいですか? 他のソフトウェア製品にもアクセスできますが、純粋にSQLおよびSQL Server内で何ができるかを知りたいと思っています。 STIntersectsを使用する必要があると思いますが、このフィールドにデータを入力するための更新を行う最適な方法を知りたいと思います。

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