読者です 読者をやめる 読者になる 読者になる

waigani's diary

QGISを中心にFOSS4Gをいじくる

FOSS4G Hokkaidoハンズオン(裏メニュー) 続き

前回からの続きです。spatialiteで、残っていた課題2を行います。 にぎわっているエリアでカレー屋さんを開くのに良いエリアを探します。 shapeデータのimport ハンズオン用のデータ(QGIS_level2_vector\work02\shp)から 01_GPS_L 03_mesh100 05_curry_p を…

FOSS4G Hokkaidoハンズオン(裏メニュー)

FOSS4G 2012 Hokkaido御礼 FOSS4G 2012 Hokkaido、多数の皆様にご参加いただきました、有難うございます。 また、事例発表を引き受けてくださった皆様、お手伝いいただいた皆様、厚く御礼致します。まとめ記事を書きたいと思いつつ、さぼっております。私、1…

FOSS4G 2012 Hokkaido

フリー&オープンソースGISの祭典-FOSS4G 2012 Hokkaido-を6/30土),7/1(日)に開催いたします。1日目はGIS初心者向けから開発者・コアユーザ向け、教育・研究・企業活動と幅広い内容の発表を、2日目は体験セッションを準備しておりますので、是非お越しくだ…

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

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

PostGIS 2.0のST_MakeValid

"PostGIS 2.0 New Features: ST_MakeValid"が流れてきたので、これはやってみねばとPostGIS 2.0の新機能に初挑戦してみました。 ST_isvalid()でfalseと判断される図形に悩まされていた方には朗報、validな図形に直してくれるのかもしれません。 使った環境 b…

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

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

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までは試してみましたが、属性のカラム名とフォームの名称を合わせておく…

rasterliteの続き

情報が古くなっているので補足 rasterliteのおススメ の補足です。 spatialite/rasterliteのページが新しくなって、プログラムの入手方法が若干変わっているようです。 以前は実行ファイルをまとめてダウンロード出来たのですが、個別に実行ファイルをダウン…

UIを改善したい

FOSS4G Advent calendar 2011絶賛開催中ですが、その影で着々と改良も進めます。今回開催期間に改善出来ればいいのですが、そこまで時間取れなさそうなら次回に向けてになりますが。 格好良くしたい 他のアドベントカレンダーを見ているとDebian/Ubuntu JP A…

rasterliteのおススメ

今年後半の個人的おススメはrasterliteでした。 簡単な使用方法、注意点をまとめておきます。 色々オプションはありますので、マニュアルはご一読をお勧めします。 rasterlite-man.pdf rasterliteとは SQLiteは1ファイルデータベース。 SQLiteを空間情報を扱…

FOSS4G Advent Calendar 2011

調子にのってFOSS4Gのadvent calendarなんてやってみました。 FOSS4G Advent Calendar 2011 誰が参加してくれるかわかりませんが、まずは12/10に書いてみようと思います。 rasterliteかな・・ advent calenderって何?という人はこちらをご参照ください。 20…

最近みたページ

この辺がとても参考になりました。 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…

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

ベクトルレイヤーを表示出来たとして、各featureへのアクセスを行いたい。単純に考え付いたのがこれ。 feature数をfor文の条件にして、IDをキーにfeatureを持ってきて、属性の最初のカラムの内容を表示する。 l = qgis.utils.iface.activeLayer() for i in r…

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

コマンドラインで色々いじることから始めましょう。 QGISの"プラグイン"メニューから"pythonコンソール"を立ち上げます。 "use qgis.utils.iface object (instance of QgisInterface class)."と表示されています。 初期状態で、QgisInterfaceのインスタンス …