PyQGISを使用してジオメトリを使用してベクターレイヤーをCSVファイルに書き込みますか?


11

私はPythonを使用して、このコードでベクターレイヤーファイルをcsvファイルに書き込もうとします:

QgsVectorFileWriter.writeAsVectorFormat(mylayer, r'c:\temp\xyz.csv', "utf-8", None, "CSV")

xyz.csvにエクスポートできますが、csvには属性のみが表示され、ジオメトリ列は表示されません。

属性データと空間データの両方をcsvファイルにエクスポートするにはどうすればよいですか?


1
同じ質問と解決策[リンク] [1]があります。[1]:gis.stackexchange.com/questions/43129/...
mete7

質問を明確にしないですみません。私の仕事は、pyqgisでpythonを使用してベクターレイヤーをcsvファイルに書き込みます。csvファイルにはジオメトリが必要ですが、そうではありません。まだ答えが必要です
-Anubiz

エクスポートするベクターレイヤーのタイプによって異なります。ポイントレイヤーの場合は、lat、long値を属性テーブルの列として追加するだけです。他のすべてのためには、WKT必要
カーリュー

Curlewさん、ありがとうございます。ポイントレイヤーとポリゴンレイヤーを使用しています。ポイントレイヤーの場合、属性テーブルに緯度と経度の列を追加しますか?ポリゴンはどうですか?
Anubiz

3
これは本当に重複していますか?ここでのこの質問は、特にpythonを対象としていますが、リンクされた回答ではカバーされません。
マティアスクーン

回答:


8

同様の答えがこの投稿から提供されました:

QGIS 2.2とPyqGISの両方の座標で.csvとして保存

layerOptions ='GEOMETRY=AS_XYZ最後に追加するだけです:

layer = QgsVectorLayer("path/to/shapefile", "name", "ogr")
QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions='GEOMETRY=AS_XYZ')

こんにちは、私はこれで問題に直面しています、コンソールでこれを入力すると、空間データは保存されず、属性のみが保存されます。しかし、手動で保存すると機能します。QGIS 2.14.12を使用しています。
サニーナイク

2
@SunnyNaik- layerOptionsパラメータには文字列値のリストが必要になりますが、以前は単一の値で十分でした(この投稿で説明されているように)。:あなたの最後の行は次のようになりますのでQgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions=['GEOMETRY=AS_XYZ'])
ジョセフ・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.