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

OGR Simple Features Libraryは、ベクターファイル形式へのアクセスを提供するC ++オープンソースライブラリ(およびコマンドラインツール)です。




1
ラインシェープファイルをノードとリンクを含むCSVに変換する方法は?
線形シェープファイルを次の形式のCSVファイルに変換する方法はありますか。 Node_1, Node_2, attribute_1, ...., attribute_x 1 2 "hello" 567845.334 私はGDAL / OGR2OGRとPostGISを見てきましたが、どちらもデータを希望の形式に変換するとは思いません。 私が正しい方向に導かれていれば、それを行うスクリプトを書いてもかまいません。
12 shapefile  convert  ogr  csv 

3
GDALを使用してシェープファイル内のポリゴンの総面積を計算しますか?
British National Gridプロジェクションにシェープファイルがあります。 Geometry: 3D Polygon Feature Count: 5378 Extent: (9247.520209, 14785.170099) - (638149.173223, 1217788.569952) Layer SRS WKT: PROJCS["British_National_Grid", GEOGCS["GCS_airy", DATUM["OSGB_1936", SPHEROID["Airy_1830",6377563.396,299.3249646]], PRIMEM["Greenwich",0], UNIT["Degree",0.017453292519943295]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",49], PARAMETER["central_meridian",-2], PARAMETER["scale_factor",0.9996012717], PARAMETER["false_easting",400000], PARAMETER["false_northing",-100000], UNIT["Meter",1]] cat: Integer (9.0) GDAL / OGRを使用して、シェープファイル内のすべてのポリゴンの総面積をヘクタール単位で取得できますか? 私はこれが可能かどうか疑問に思っています-sql: ogrinfo -sql "SELECT SUM(ST_Area(geom::geography)) FROM mytable" myshapefile.shp しかし、私はそれをしようとしていますERROR 1: Undefined function 'ST_Area' …
11 gdal  ogr  area  ogrinfo 

2
gdal / ogrを使用してCSVファイルをシェープファイルに結合しますか?
私は、例えば、いくつかの属性を持つシェープファイルを持っているYEAR、COUNTYとAREA。また、シェープファイルに必要なフィールドを含むCSVファイルもありますPOPULATION。シェープファイルとCSVファイルの両方にフィー​​ルドがありますGISJOIN。QGISで参加する方法を知っています。しかしogr2ogr、GDAL / OGRのツールまたは他のツールを使用して、永続的な結合を作成し、シェープファイルに書き込むにはどうすればよいですか?

3
複雑なシェープファイルをグリッドに分割する
ポリゴン/マルチポリゴン機能を備えたきちんとした詳細なシェープファイルがあります(ファイルは約500MBです)。実際には、全世界のシェープファイルであり、フィーチャは海岸線を表します。グリッドを使用してこのデータを分割する必要があります。明確にするために、データを「ソート」したくはありませんが、実際にはポリゴンをタイルに分割します。この質問は以前に聞かれたことに気づきましたが、見つけた解決策はうまくいきませんでした。 私はもう試した: QGISを使用し、シェイプファイルのコンテンツをベクターグリッドと交差させます-結果はひどいです。主要な陸地の大部分は魔法のように消えますが、土地の小さな塊が時々それを作るようです。この方法は、はるかに単純なデータ(つまりポイントが少ない)で非常にうまく機能することに注意してください。 OGRの交差ツールを使用します。私はogr2ogrを介して、さらには独自のC ++ツールを使用して試してみました。どちらもQGISと同じ問題を抱えています。また、単純なファイルではこの問題は発生しませんが、より複雑なファイルでは失敗します。参考までに、サイズが20 MB未満のオーストラリアとニュージーランドのシェープファイルを使用していますが、QGISとOGRの両方が「グリッド化」できません。 PostGISには交差機能があるため、ある時点でPostGISを使用することを提案しましたが、PostGISのST_IntersectはOGRと同じGEOSバックエンドを使用します。実際、私が知る限り、両方とも同じ関数を呼び出しているため、PostGISが異なる結果をもたらすとは思いません。 私は他に何ができるかについての提案を探していました。非常に詳細なシェープファイルをタイルに分割できる堅牢なアプリケーションまたはツールキットが必要です。 編集:いくつかの情報を追加する シンバマングへの応答: シェープファイルは、基本的にOpenStreetMapの海岸線データです。これは、「processed_p」ファイルのマージされたバージョンであるため(タイルに分割されません)、開発者リストをメールで送信しました。タイルの分割(重複した100 km x 100 kmチャンク)は必ずしも必要なものではないことに注意してください-重複したくないので、グリッドサイズを自由に選択したい、または単にデフォルトのprocessed_p。 デフォルトでは、海岸線データにはQGISによって報告されたジオメトリエラーがあります。これらのエラーは、この問題に特に対処するために設計されたいくつかのコード(海岸線データのジオメトリエラーの修復:https : //github.com/tudelft-gist/prepair)を使用して作成した小さなツールで修正します。このツールを使用してファイルを実行すると、QGISで検出されるほぼすべてのエラーが修正されます。ファイルをクリーニングした後にのみ、交差を試みます。 QGISを使用して行ったこととまったく同じ:データを開いて、QGISで正常に表示されることを確認します。指定した間隔でベクターグリッドを使用してタイルのレイヤーを作成し、2つのレイヤーを交差させてタイルに分割してみてください。より小さなデータセットを使用してみてください-オセアニア(オーストラリア、ニュージーランド)の機能を選択して、より小さなデータセットを試します-この形状ファイルのサイズは20 MB未満です。もう一度分割してみてください、動作しません。 OGRで行ったこと:ogr2ogrは、spat_extentで '-spat'および '-clipsrc'オプションを直接使用しました。また、WKTで動作する小さなC ++ツールを作成したため、ogr2ogrを使用してシェープファイルをWKTに変換し、テキストファイルをアプリケーションにフィードします。ファイル全体を実行し、http://www.gdal.org/ogr/classOGRGeometry.htmlに記載されているIntersection()メソッドを呼び出します。最終的にはogr2ogrを直接使用するのとまったく同じことを行うと思います。 ブレントへの応答: します。すべてがWGS84 Lat / Lonにあります グリッドタイルの特定のセットでは、各タイルにより空間的にローカライズされる可能性のある断片化されたフィーチャの束ではなく、1つの巨大なマルチポリゴンと交差するのに時間がかかると思いました興味深い提案-私はそれを試して報告します。 プロセス中に属性フィールドは保持されません。ジオメトリにのみ興味があります。 よくわかりませんが、特定のグリッドタイルと重なるポリゴンを選択してから交差を実行する必要があると言っていると思います。これはQGISでは手動で面倒です。私のツールは、バウンディングボックスチェックを使用して、すでにある程度これを行っています。少しスピードアップしますが、最終結果はまだ悪く、目立った違いはありません。 これはオプションではありません。現在、データを1 deg lat x 1 deg lonに分割しようとしています。すべてのケースで機能する一般的で堅牢な方法論を探しています。グリッドサイズ(10x10など)を増やして、より良い結果が得られるかどうかを確認しましたが、グリッドサイズと出力の品質との間に相関関係は見られません。 編集#2: 私はこれをもっと試してみましたが、一般的には、GEOSとQGIS(fToolsを使用していますが、GEOSを再び使用するかどうかはわかりません)の両方で結果が信頼できないようです。グリッドのサイズが結果とは何の関係もないと述べるのは間違っていました-グリッドが大きいほど、結果は良くなります(それは知っておくのは良いことですが、解決策ではありません)。これは、ほとんど機能しているが、1つのタイルで部分的に失敗した、実際に間隔をあけたグリッドのスクリーンショットです。 ジオメトリはきれいです-QGISは「妥当性のチェック」ツールでエラーを表示しません。私はこの問題に一歩ずつ取り組むつもりはありません。特定のフィーチャが視覚的に明らかではない場合に、この大きなデータセットの交差に失敗したかどうかを確認することは(そして、小さなタイルでは不可能です)実用的ではありません。

2
python gdal / ogrを使用して座標のリストからポリゴンシェープファイルを作成する方法
オープンソースのPythonツールを使用して、座標のリストからポリゴンシェープファイルを作成しようとしています。以下は、Python GDAL / OGRクックブックとこのGIS SEの回答から一緒にハッキングされた、これまでのところです。 同様の質問Pythonがあります:X、Y座標のリストからポリゴンシェープファイルを作成する方法?ただし、この質問はの使用に言及していpyshpます。ただし、gdal / ogr Pythonツールのみを使用してポリゴンシェープファイルを作成することに興味があります。 import ogr def create_polygon(coords): ring = ogr.Geometry(ogr.wkbLinearRing) for coord in coords: ring.AddPoint(coord[0], coord[1]) # Create polygon poly = ogr.Geometry(ogr.wkbPolygon) poly.AddGeometry(ring) return poly.ExportToWkt() def write_shapefile(poly, out_shp): """ /gis//a/52708/8104 """ # Now convert it to a shapefile with OGR driver = ogr.GetDriverByName('Esri Shapefile') …
10 python  gdal  polygon  ogr 

2
ArcGIS Desktopを使用してSQLiteファイルを処理しますか?
仕事にはqgisとgrassを使用しています。100mbsを超えるシェイプファイルを作成しました(統計分析の結果です)。 それをsqlite形式(空間的に有効)に変換すると、データは15 mbsに縮小されます。メールやドロップボックスと共有することは許容されます。 しかし、私の同僚はarcgis 9.3を使用しています-彼は問題なくデータを読み取ることができますか?

2
GDAL / OGR PythonバインディングでPostgreSQL / PostGISエラーをキャッチする方法は?
クエリが失敗した後にOGRでPostgreSQL出力エラーメッセージをキャッチすることは可能ですか? 例えば conn.ExecuteSQL('SELECT * FROM non_existing_table;') Postgresではこれはエラーメッセージを返します: "Error: relation 'non_existing_table' does not exist." ogrでは標準を取得します。 "Error: current transaction is aborted, commands ignored until end of transaction block" Postgresのエラーメッセージをキャッチ/解析できれば、おまけです。私はSWIG / CPLについて読んだことを考えると、これは少し長いショットだと思いますが、誰かがアイデアを持っているかどうかを確認するように頼む価値があります。理想的にはこれはPythonで行われますが、C / C ++コメントも使用します。 ありがとう。

2
QGISでラスターセルにラベルを付ける方法は?
QGISプリントマネージャーツールで小さな解像度のラスターファイルを表示しようとしています。各セルの値(各セルの中央付近)に小さなラベルを表示したいと思います。 どうすればできますか?このタスクを完了するのに役立つプラグインはありますか? 私の考えは、gdal2xyzを使用し、CSVプラグインを使用してそのようなファイルをロードし、それをベクターファイルとして保存することです。残念ながら、私は多くのラスターファイルを持っているため、多くの作業が必要です。 もう1つのアイデアは、gdal2xyz.pyを使用してから、ogr2ogrを使用してベクターファイルとして保存することです。 このプロセスをバッチ処理する方法はありますか?もっと簡単にできるオープンソースプログラムはありますか?
10 qgis  raster  gdal  ogr 

2
Z値に対するDXF属性
Elevation属性を含むDXFが与えられましたが、3D DXFを生成したいと考えています。私はシェープファイルから3D dxfを生成できることを知っています: ogr2ogr -f "DXF" out.dxf in.shp -zfield Elev しかし、ogrドライバーは、dxfのフィールドとして属性を取得しないようです。 これが可能かどうか誰かが知っていますか? できれば無料の解決策をお願いします。FMEはありますが、他のオプションを探しています。
10 3d  ogr  fme  dxf 

1
PostGISポリゴンジオメトリのヘルプ-閉じていないリング
私はErik Westraによる超邪悪な本「Python Geospatial Development」(Amazonリンク)のコピーを手に取り、それを調べています。現在、地理空間Webアプリを構築する準備として、GSHHS海岸線データをシェープファイルからPostGISデータベースにロードするように教えています。 私の問題はこれです。GSHHSデータをPostGISにインポートしようとすると、海岸線のポリゴンが「有効」と見なされないために拒否されます。具体的には、海岸線ポリゴンの一部(すべてではない)が「閉じていないリング」であると説明されているエラーメッセージが表示されます。 このエラーは、ポリゴンの最初と最後の点が同じではないことを伝えようとしていることを理解しています。しかし、これは単に真実ではありません。多くのポリゴンのWKT表現を調べましたが、それらは正しいものです。彼らは間違いなく同じ座標で始まり、同じ座標で終わります。 ポリゴンは、OGRライブラリを使用してシェープファイルから抽出され、各ポリゴンフィーチャをWKTにエクスポートします。Shapelyを使用してポリゴンを再構成し、WKBを試しましたが、役に立ちませんでした。私がしている shp2pgsqlとローダーを使用して、MULTIPOLYGONテーブルとPostGISのに同じデータをロードすることができました。 :そこに誰がいた場合、私は思っていた 、おそらく、同じ本を使用()と同じ問題で捕まってしまった、と私のための答えを持っていますか? (b)同様の問題に遭遇し、解決策を見つけましたか? (c)失敗した場合、PostGISにロードする前に有効なジオメトリを確保するための「ベストプラクティス」のアドバイスはありますか? 更新:ある同僚は、「閉じていないリング」の問題は別の問題の兆候である可能性があることを示唆しています。私のPostGIS / PostgreSQL構成にサイズ制限(挿入トランザクション、受信パケット、テキスト文字列など)がある可能性があります。 入力として非常に長いWKTポリゴンを使用しているので、PostGISは、各ポリゴンを完成させるには早すぎる可能性があります。明日テストしてみますが、たぶん聞こえそうです。国境の挿入は、一部のレコードのみを受け入れ、他のレコードは受け入れませんでした。記憶から、受け入れられた形状は、アンティグアなどの小さな島国のものでした(したがって、おそらく短いWKT表現がありました)。 したがって、これは無効なジオメトリスレッドではなく、PostGISデータベース管理スレッドになりかねません。
10 python  postgis  ogr  wkt 

3
PostgreSQLからdxfファイルを取得する
多数のシェープファイルをPostGISデータベースに正常にロードしました。SQLクエリに基づいて、特定のジオメトリとレイヤーをdxfファイルとして取得できるようにしたいと思います。 WindowsのOSGeo4WスイートのPostGIS、GDAL、PostgreSQL、Pythonを使用しています。 私はogr2ogrを次のように少し使用する必要があると想像しています: $ ogr2ogr -sql "SELECT * FROM some_table" -f "dxf" outputfile.dxf -overwrite "PG:dbname=mydb user=dbusername password=dbpassword" しかし、適切な値でそれを行うと、次のような一連のエラーが発生します。 ERROR 1: DXF layer does not support arbitrary field creation, field 'objectid' not created. レイヤー内のすべての属性列でエラーが発生しsome_tableますが、dxfファイルを取得します。 .dxfファイルを既に作成していて、上記のコマンド(-overwriteオプションを含む)を再実行すると、代わりに次のエラーが発生します。 Layer sql_statement not found, and CreateLayer not supported by driver. ERROR 1: Terminating translation prematurely after …
10 postgis  gdal  ogr  dxf 

7
破損したシェープファイルを修正していますか?
ArcGIS Desktop 9.3で作業していたシェープファイルが何らかの理由で破損し、「シェイプの数がテーブルレコードの数と一致しません。」というエラーが発生します。このシェープファイルには、他のリビジョンのファイルにはない編集が多数含まれているため、このシェープファイルを復元する必要があります。 以前はogr2guiを使用してこのエラーから回復しましたが、ツールがクラッシュするだけです。コマンドラインバージョンのogr2ogrを試してみましたが、まだうまくいきません。このスクリプト、ArcScripts WebサイトのShapefile Repair Toolも役に立ちませんでした。 何か案は?(シェープファイルの使用をやめることを除いて) 以下はogr2ogrからの出力です(回答の提案に基づいています)。

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