複数のCSVファイルをQGIS 2.10にロードする


8

経度/緯度が既に含まれているQGISに複数のCSVファイルをロードするにはどうすればよいですか。「Load Them All」プラグインをダウンロードしましたが、ロードされた結果はテキストファイルとして変換され、マップキャンバスで視覚化できません。何か助け?QGISで正常に動作する複数のCSVファイルをロードできる利用可能なプラグインはありますか?


1
github.com/gacarrillor/loadthemall/issuesでその機能を要求できます。新しい問題を開き、必要なものを説明してください。それをすべてロードに追加すると便利です。
ヘルマン・カリージョ

複数のcsvファイルは互いにどのように異なりますか?
BillW 2016年

回答:


10

Pythonコンソールで次のコードを使用して、指定したフォルダでcsvファイルを見つけ、それらの経度/緯度フィールドを使用してポイントシェープファイルとしてロードできます。コードは次のことを前提としています。

  • csvファイルはカンマ区切りです
  • 経度/緯度フィールド名である"x""y"、それぞれ
  • ロードされたレイヤーのCRSはEPSG:4326になります

しかし、これを編集することができます:

import glob, os

# Define path to  directory of your csv files
path_to_csv = "C:/Users/You/Desktop/csv folder/"  

# Set current directory to path of csv files
os.chdir(path_to_csv)  
# Find each .csv file and load them as vector layers
for fname in glob.glob("*.csv"):  
    uri = "file:///" + path_to_csv + fname + "?delimiter=%s&crs=epsg:4326&xField=%s&yField=%s" % (",", "x", "y")
    name = fname.replace('.csv', '')
    lyr = QgsVectorLayer(uri, name, 'delimitedtext')
    #QgsMapLayerRegistry.instance().addMapLayer(lyr)

QGISの新しいバージョンでは、コマンドQgsMapLayerRegistry.instance().addMapLayer(lyr)は割引されました。前の行を次のように置き換えても、ソリューションは引き続き有効です。 QgsProject.instance().addMapLayer(lyr) また、2行目を削除またはコメントする必要があります。from qgis.core import QgsMapLayerRegistry

ソリューションは完全に機能します。


1
すべてのコメントに感謝します... .csvtファイルとして保存されたものを除いて、実際に機能します。
wgs​​84

@ wgs84-大歓迎です。うまくいったことをうれしく思います:)
Joseph

1

ジオメトリの検索場所をQGISに指示するために、CSVファイルに加えてcsvtファイルが必要になる場合があります。

プラグインAdd Vector layerはバックグラウンドで使用する可能性がありますがAdd delimited text、ジオメトリ列については知識に基づいた推測を行いません。

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