森林土木memoある自治体職員が、仕事で使うGIS、GPS、CADなどについてメモします。緯度経度付きJpegから緯度経度付きのCSVを作るQGISのPhoto2Shapeがうまく動かないという時があるようで、いざ使おうとしたときに使えなかったら困りますね。そこで、Excelで緯度経度付きのJpegファイルを読み込んで、緯度経度付きのCSVファイルを作るExcelファイルを作成しました。このファイルで、Jpegを保存しているフォルダを指定すると、写真のExif情報を読み込んで一覧を作成します。その一覧表をCSVに保存します。作成された緯度経度付きのCSVは、QGISのデリミティッドテキストレイヤで読み込めば、ポイントレイヤが作成されます。Jpegファイルのフォルダ名、ファイル名も記録されているので、eVisプラグインで写真を表示することも可能です。Photo2shapeプラグインがうまく動かないというときは活用していただければと思います。Photo2Excel2CSV_V002.zip以下、VBAのコードも記録しておきます。このコードを作成するのに、参考にしたサイトはここです。先人の知恵に感謝します。"位置情報付きのJpegファイルが保存されているフォルダを指定してください。"CSVファイルの保存先を指定してください。"CSVファイルを保存しました。Adventカレンダー2017に参加した記事です。2017年の12月中にQGIS3.0がリリースされるという噂があり、毎日のようにQGISのオフィシャルホームページをチェックしていますが、2017年12月17日現在ではまだリリースされていません。12月中にリリースされれば、年末年始はサワサワ触りまくってやるのにと思っていましたが・・・。そこで、予行演習も兼ねて、OSGeo4wで利用できる開発版の2.99(内容はほぼ3.0と同じと思われる)を最近触ってみています。(これ以降はQGIS2.99をQGIS3.0として書いていきます。)QGIS3ではGeopackageがデフォルトになる?ファイルの入出力や、プロセッシングツールなどを見ていると、いままでは、シェープファイルがデフォルトになっていましたが、QGIS3.0ではGeopackageがデフォルトになっています。ここからわかるように、QGISもやっと脱シェープファイルを考えているのだと思われます(多分ですよ、多分)。AdventカレンダーでもGeopackageの記事がありましたが、QGIS2ではまだまだ使える状況ではありませんでした。QGIS3からは、GeopackageをQGISのデフォルトのファイル形式としましょうということなのでしょう。Geopackageってなに?Geopackageとは、「オープンで標準に準拠したプラットフォームに依存しない、移植性の高い自己記述型のコンパクトなフォーマット」ということで、SQliteデータベースに様々なGISデータを格納できるファイルです。私自身はSpatialiteとどこが違うのかはよくわかっていませんが、Geopackageは、ベクタデータはもちろん、ラスタや、Mbtilesなどさまざまなデータを格納でき、ひとつのファイルにすることができます。ArcGISでもArcGIS10.2.2からGeopackageをサポートしているとのことです。QGISで作成したものがArcGISで利用できるかは不明ですが、多分大丈夫なような気がします。Geopackageにデータを追加するQGIS3では、ブラウザパネルのGeopackageファイルにレイヤパネルからレイヤをドラッグ&ドロップするだけで、Geopackageにデータを追加できます。(Geopackageファイルのパスに2バイト文字が含まれるとエラーになります)ラスタレイヤもドラッグ&ドロップで追加することができます。レイヤを名前をつけて保存することでもGeopackageにデータを保存できます。(名前をつけて保存したレイヤは、ブラウザパネルの「Geopackage」で表示されない場合があるようです)Geopackageファイルには、様々なGISデータを格納できるので、地図を作るためのファイルの数を非常にコンパクトにすることができます。今まではシェープファイルやラスタファイルを複数使って地図を作った場合、数十個のファイルを必要としていましたが、Geopackageでは一つでいいのです。ファイルサイズ自体はそれほど変わらないと思いますが、ファイル数が少なくなるのはいいことです。Geopackageにはレイヤスタイルも保存できるGeopackageには、レイヤスタイルを保存することができます。Geopackageから追加したレイヤのレイヤプロパティを表示して「シンボロジー」の「スタイル」ボタン→「スタイルを保存」に「データベースに保存(Geopackage)」があります。ここでスタイルをGeopackageファイルの保存すると、そのレイヤのデフォルトのスタイルとして登録することもできます。(QGIS2.99では、スタイルを保存するとQGISが落ちますが、保存はされているようです)まとめQGIS2までは、シェープファイルがデフォルトのようだったので利用していましたが、フィールド名の文字数の縛りや、文字コードの問題、ファイルの数が多いなどいろいろな問題がありました。これが今後はGeopackageで解決していけば、非常に良いことだと思います。シェープファイルには、安室奈美恵と一緒に引退していただき、新たな世代にその座を譲っていただきましょう。QGIS2.99では日本語だとうまく行かなかったり、Geopackageにラスタを追加すると、削除できなかったりするようなので、もうすこし熟成が必要かもしれませんが、今後さらに進化していくことが楽しみです。Zonesプラグインはじめに自治体のインターネット切り離しによって、GoogleMapやYahoo地図などが使いづらくなっています。以前までは工事の設計などで運搬距離を算出するために、インターネットの地図サービスで経路検索を行っていましたが、いまは使えないことはないのですが、インターネットの接続に時間がかかったり、接続時間に制限があったりして、使いづらくなっています。Zones」プラグインが便利でしたので紹介します。Zones」プラグインのほうが高速に、複数の経路検索ができるので便利でした。Zonesプラグインを利用するには、次のものを準備する必要があります。・道路などのラインデータ座標参照系はWGS84(EPSG:4326)にします。OpenStreetMapなどの道路ラインデータを使って作成します。OpenStreetMapのデータは「bbbike.org」などでダウンロードできます。OpenStreetMapのデータには、歩道や自転車道などの車の通れない道路(bridleway、cycleway、footwayなど)も記録されていますので、事前に削除しておきましょう。高速道路(motorway)を使わないでルート検索をする場合には、高速道路も削除しておくといいでしょう。・出発点と目的地のポイントデータ座標参照系をWGS84(EPSG:4326)にします。シェープファイルなどで新規に作ります。「IDフィールド(数値)」と「Nameフィールド(テキスト)」が必要です。出発地と目的地はデリミティッドテキストレイヤだと計算されませんので、シェープファイルに変換してください。Zonesプラグインは「実験的なプラグイン」です。メニュー「プラグイン」→「プラグインの管理とインストール」の「設定」を選択し、「実験的プラグインも表示する」にチェックを付けてから、検索すると一覧に表示されるので、インストールします。経路検索をするためのプロジェクトファイルを作成します。そのために、データを一つのフォルダに保存します。Zonesを利用するには、計算した結果を保存するためのレイヤが必要ですが、そのレイヤファイルは、プラグインをインストールしたフォルダにサンプルとして保存されています。通常は、「C:\Users\【ユーザー名】\.qgis2\python\plugins\raz\sample-data」に保存されています。data.sqlite」をコピーして、経路検索のためのフォルダに保存します。「道路ラインデータ」「出発点ポイントデータ」「目的地ポイントデータ」も同じフォルダに保存します。レイヤを追加する経路検索プロジェクトにレイヤを追加します。道路ラインデータと出発点、目的地データは「ベクタレイヤの追加」でプロジェクトに追加します。data.sqlite」にはルート(Route)と検索用のデータベース(verylong)が格納されています。この2つのレイヤを次の手順でプロジェクトに追加します。「Spatialiteレイヤの追加」を選択し、「新規」ボタンをクリックします。data.sqlite」を選択し、「接続」ボタンをクリックします。「ジオメトリを持たないテーブルもリストする」にチェックを付けます。リストの中から「route」と「verylong」を選択して、「追加」ボタンをクリックします。(複数選択する場合は、CTRLキーを押しながら選択)レイヤの追加に成功すると、下図のようになります。プロジェクトの座標系を投影座標系にする※2017年12月10日追記レイヤの座標系をすべて同じにしておく必要がありますが、レイヤの座標系は地理座標系でも投影座標系でも構いません。プロジェクトの座標系は投影座標系でなければ、正しく距離が計算されないようです。プロジェクトの座標系が地理座標系の場合、オンザフライCRS変換を有効にして、プロジェクトの座標系(CRS)を平面直角座標系などの投影座標系に変更してください。出発点と目的地を作図する出発点レイヤと、目的地レイヤに距離を計算したいポイントを作図します。地物を追加するときに、「ID」と「Name」フィールドにデータを入力しておきます。Routeレイヤにもともとある地物を削除するRouteレイヤには、サンプル用に記録されている地物があるので、事前に削除しておくといいです。tool」を選択します。points)」には出発点ポイントを選択します。field」にはNameフィールドを選択します。points)」には目的地ポイントを選択します。field」にはNameフィールドを選択します。出発地と目的地は、事前に選択した地物のみを対象にすることもできます。points」にチェックを付けます。network」には道路ラインレイヤを選択します。length(kilometers)」には、ルートを計算する最大距離を入力します。100kmと入力すると、100kmまでの範囲にある目的地を検索します。routes」には、routeレイヤを選択します。maximun」にverylongレイヤを選択します。「Run」ボタンをクリックすると、出発点から目的地までの最短ルートを検索し、Routeレイヤに作図します。routeレイヤの属性データを確認すると、出発点と目的地の名前と距離(pathフィールド)が記録されています。Zonesプラグインは、道路レイヤの地物数が多くても、高速で検索を行うことができます。インターネット地図であるGoogleMapやYahoo地図でもルート検索ができますが、いちいち地点を選択しなければならない手間もありますし、地図の利用規約により、印刷して仕事で利用できない場合もあります。そのような場合には、OpenStreetMapなどのデータを使った地図を使うと自由に利用することもできます。便利なプラグインですので、利用してみてください。注:32bitのOSだと、道路レイヤの地物数が多いとクラッシュダンプする場合があるようです。その場合は、道路の地物数を減らして、再度実行してみてください。職場で説明用に作ったスライドを公開しています。2.0業務で使う林業QGIS徹底使いこなしガイドブログ主が書きましたQGISのマニュアル本です。2017年6月発売!「林業」とありますが、林業だけでなくQGISの基本から応用まで幅広く網羅しています。御覧ください!Amazonでも販売中!下のリンクから、本で利用できるサンプルファイルをダウンロードできます。業務で使う林業QGIS徹底使いこなしガイド本の紹介ページ(全林協)公開しているテキスト当ブログ管理人が作成したQuantumGISのテキストなどをダウンロード出来ます。北海道Shapeファイル北海道全域の基盤地図情報をShapeに変換しました。)、「道路縁」があります。(04/19)ファンメッセージを送るこのブログの読者になる更新情報をチェックするブックマークする友達に教えるカテゴリ日記(14)その他(2)CAD(1)GIMP(1)林道(1)QGIS(50)GPS(4)リンク(1)DBF編集(2)GISその他(22)魚道(0)治山ダム(1)Android(10)カシミール3D(6)vb.net(2)Web地図(5)過去ログ2019年10月(2)2019年02月(1)2018年09月(3)2018年08月(1)2018年03月(1)2017年12月(1)2017年08月(1)2017年07月(3)2017年06月(2)2017年05月(2)2017年02月(1)2017年01月(1)2016年12月(1)2016年11月(4)2016年09月(1)2016年08月(3)2016年07月(3)2016年03月(1)2015年12月(1)2015年09月(2)Seesaaブログ。