waigani's diary

QGISを中心にFOSS4Gをいじくる

QGIS

QGISのSVG塗りつぶしパターンを属性から作ってみる

FOSS4G 2013 Tokyoお疲れ様でした 10/31-11/2行われていたFOSS4G 2013 Tokyoに参加していました。運営のみなさま疲れさまでした。引き続き11/6-7のFOSS4G 2013 Osaka頑張ってください。Ust中継見てようと思います。今回参加しての収穫の1つが、下記の本を紹…

QGIS PythonコンソールからSEXTANTEその2

つづきです QGIS PythonコンソールからSEXTANTEその1 に続いて、わざわざPythonコンソールからSEXTANTEを使ってみましょう。 前回は1つの解析機能を使ってみましたが、これではあまりSEXTANTEの有り難味はありません。複数の解析機能をつなげて使ってみます…

QGIS PythonコンソールからSEXTANTEその1

FOSS4G 2013 Hokkaido まず宣伝。7/5(金),7/6(土)とFOSS4G 2013 Hokkaidoを開催致します。 今年はハンズオンデイ(7/6)のQGISプログラミング入門を担当致します。 内容としては、 QGIS pythonコンソールを利用して、QGIS APIからGUI、データへのアクセス方法…

使おうと思ってまだ使ってないQGISの機能

FOSS4G Advent Calendar 2012の1日目です 今年もFOSS4G Advent Calendar行います。 去年の様子はこちらを御覧ください。 今年は小ネタから。いつか使おうと思いつつ、使ってない機能をご紹介。と言っても開発版で追加されている機能です。 Project Macros QG…

沿道に10万人入るのか考えてみた

最初に告知 今年もFOSS4G Advent Calendarやります。ぜひご登録を。 FOSS4G Advent Calendar 2012 今日は札幌では、日ハムの優勝パレードでした 家族が風邪をひいていて、病院に連れて行っている間に終わってました。 出歩けないし暇だと思ってTwitterを眺め…

基盤地図情報 数値標高を読み込んでみる(修正版)

2012/3/5の記事の修正版です Pythonで強引に基盤地図情報 数値標高をQGISに取り込むぞというのを前に書いたのですが、中途半端な対応で開けないファイルがありました。開けないのは悲しいので、その辺だけ修正しておきます。もう一回言っときますが、コマン…

基盤地図情報 数値標高を読み込んでみる

応募用に考えていたんですが 何かネタ出したいなと思い考えていたのですが、いまいちパッとしません。 でも中途半端ですが折角作ったのでここにさらしておきます。 結論から言うと、"コマンドラインでやった方が早いよ"的なネタです。 処理手順 基盤地図情報…

QGIS Script Runnerプラグインを試してみた

試してみようと思っていた Script Runner Spatial Galaxy/Script Runner: A Plugin to Run Python Scripts in QGIS 試してみました。 プラグインのインストール 「プラグイン」→「Pythonプラグインを呼び出す..」から探しますが、見つかりませんでした。 「…

最近みたページその2

試そうと思って試してないものが色々と。 Custom feature forms Nathans QGIS and GIS blog/QGIS Tips – Custom feature forms with Python logic これは超便利。custom-feature-formsまでは試してみましたが、属性のカラム名とフォームの名称を合わせておく…

最近みたページ

この辺がとても参考になりました。 QGIS Workshop v1.0.0 documentation Qgis Python code tips

QGIS APIで印刷その2

QgsCompositionクラスを使ってみる その1の内容をQgsCompositionクラスを使って書き換えます あくまでQgsCompositionの使い方の参考程度に 書き換えてみました from PyQt4.QtCore import * from PyQt4.QtGui import * class printPDF(): #共通で使う設定は__…

QGISをコンパイルしてみる その1

オリジナルのパッケージを作りたい Building custom QGIS installers for windowsを見てて、なんとなくやってみようと思い立ちました。 ロゴとか変えるだけならコンパイルする必要も無いのですが、なんとなくコンパイルからスタートしちゃいます。 QGISをソ…

QGIS APIで印刷その1

自動印刷 某所からそういう方向に行くなと突っ込まれるのですが、印刷機能関係調べてます。 例えば、ベクトルレイヤー中にある図形それぞれを中心として、指定の縮尺で出力図を一括で作成したい、といった使い方です。 ゴリゴリ書いていくとすると 下記のよ…

QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)の修正

QGIS 1.7 QGIS 1.7で動作させたところ、下記で公開していたソースだと落ちるようです QGISでプラグインを作成する その6 rubberbandでの図形選択 QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)QgisRubberBand::addPointで同一座標の点を…

QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)

rubberbandの形を変更します 四角から円に変更してみます ソース一式を貼っておきます この記事で作成したソース一式です sweepselect_test2.zip ソース一覧 必要なソースは __init__.py sweeptest.py resources_rc.py ですが、sweeptest.py内の1クラスだけ…

QGISでプラグインを作成する その6 rubberbandでの図形選択

真似します また、山手様@月の杜工房にあったので真似させていただきました QGIS API 要素を選択 ソース一式を貼っておきます この記事で作成したソース一式です sweepselect_test.zip ソース一覧 必要なソースは __init__.py sweeptest.py resources_rc.py…

QGISでプラグインを作成する その5 キャンバスクリック時のイベントを拾う

真似します どうやってやるのか調べていたら、山手様@月の杜工房にあったので真似させていただきました QGIS API キャンバスクリック時のイベントを処理する 解説は月の杜工房様を見た方が詳しいです ソース一式を貼っておきます この記事で作成したソース…

QGISでプラグインを作成する その4

もう少しプラグインらしく プラグインのダイアログからQGIS側の情報を取ってみます まずは簡単にレイヤー数だけ ソース一式を貼っておきます この記事で作成したソース一式です plugintest.zip ダイアログの変更 前回のダイアログにボタンを1つ追加しておき…

QGISでプラグインを作成する その3

Qtの勉強 この辺が役に立ちましたRkBlog - Introduction to PyQt4 dialogを表示する 前回からの続きになります QtDesignerで表示するdialogを先に作成しておきますQtDesignerで"Dialog without Buttons"を選択してformを作成 "Input Widgets"から"Text Edit"…

QGISでプラグインを作成する その2

Qtの勉強しないと駄目ですね Qt Labs Japanの記事をちゃんと読んでみようかと思っています Qtをはじめよう! アイコンとメニューの追加 前回までの続きとして、plugin.pyを書き換えます # -*- coding: utf-8 -*- #Import the PyOt and QGIS libraries from P…

QGISでプラグインを作成する その1

参考にしたもの QGIS Coding and Compilation Guideを参考にしています。 必要なファイル 最低限必要なファイルとして下記を作成します。 __init__.py plugin.py resources_rc.qrc(これは無くてもいいんですが、後々のため入れときます) __init__.py 最初に…

QGISでプラグインを作成する - 環境構築

プラグイン作成の環境構築を行ってみます。 前提 QGISでアプリケーションを作成する - 環境構築まで行っていることを前提としています。 External ToolへQGISを設定 [External Tool Configurations]を開きます。[New Configuration]を作成し、[Name]は何でも…

QGISでアプリケーションを作成する その1

引き続き下記ブログを参考に進めます。 Creating a Standalone GIS Application QtDesignerでGUI作成 Qtのインストールの説明は省きます。 QtDesignerを起動して、[templaets\forms]から[Main Window]を選択し、[作成]をクリック。 左に表示されているwidget…

QGISでアプリケーションを作成する - 環境構築

コンソールからの操作は一旦置いておいて、アプリケーションの作成を行ってみます。下記ブログの内容を試します。 Creating a Standalone GIS Application ただ試すだけだとなんなので、開発環境も整えます。 下記の内容を参考にしました。 Quantum GIS Foru…

QGISでベクトルデータを表示してみる その8

ラベルを付けてみます。 単純にラベルをONにするのは簡単。レイヤーを持ってきて、ラベル表示のフラグをたててあげるだけです。 l = qgis.utils.iface.activeLayer() l.enableLabels(True) qgis.utils.iface.mapCanvas().refresh() "ラベル"と表示されます。…

QGISでベクトルデータを表示してみる その7

QgsSingleSymbolRendererでレイヤー全体に描画設定を適用してみましたが、属性を指定して個別に描画設定を試します。 QgsUniqueValueRenderer を使用します。最初の方はやること同じ。 from PyQt4 import QtGui, QtCore l = qgis.utils.iface.activeLayer() …

QGISでベクトルデータを表示してみる その6

描画の設定を変更してみます。 Qtのクラスを使用することになるので、最初に読み込みます。 Qtのクラス一覧はここを参照しました。 from PyQt4 import QtGui, QtCore まずは、QgsSymbolインスタンスを作成します。 l = qgis.utils.iface.activeLayer() sym =…

QGISでベクトルデータを表示してみる その5

引き続き、図形の座標変更してみます。layer,dataProviderと持ってきてましたが、layerだけからでも出来ます。 並行移動の場合は、QgsVectorLayer::translateFeatureを追加います。 x方向、y方向の移動量と、対象図形のIDを指定します。 l = qgis.utils.ifac…

QGISでベクトルデータを表示してみる その4

図形の座標変更してみます。layer,dataProviderの順に持ってきて、QgsVectorDataProvider::changeGeometryValuesを使ってみました。 対象図形のidをキーに、入れ替えるQgsGeometryを値に指定します。 l = qgis.utils.iface.activeLayer() l.startEditing() p…

QGISでベクトルデータを表示してみる その3

追加と削除してみます。 QgsGeometry.fromPolygonに渡す引数のリストが2重になっていますが、最初のリストがポリゴンの外側、2番目以降のリストが内側のポリゴンになります。穴のあいたポリゴンを作る時は引数を複数渡します。 l = qgis.utils.iface.activ…