Labo288

プログラミングのこと、GISのこと、パソコンのこと、趣味のこと

Python

QGISで地図PDFを簡単に出力するプラグイン「EZPrinter」をつくりました

はじめに QGISの基本機能としてのPDF出力は、範囲や縮尺の指定が微妙に使いにくいです。 レイアウト機能を使って少し手間をかければ、かなり綺麗な地図も作成出来ますが、QGISで表示している地図をサクッと紙などに出力したい時のためにプラグインを作りまし…

北海道内15箇所にポケモンマンホールが設置されるので最適経路を計算してみた

この記事はFOSS4G Advent Calendar 2019の12月8日の記事です。 昨日の記事は、chomyさんのGDALでGCOM-Cの可視領域のデータからTrue Colorイメージを再構成してみたでした。 FOSS4G Advent Calendar、毎日楽しませて頂いております。 参加表明した時点ではMap…

QGIS3.x系向けプラグイン作成手順や各種処理の実装方法について

はじめに オープンソースGISソフトウェア、いわゆるFOSS4Gの定番ソフト「QGIS」でプラグイン(拡張機能)を作成しました。QGISの最新バージョンは3.8で、3.x系はPython3を採用するなど後方互換性が一部失われ、2.x系のコードは動きません。ウェブ上にはプラ…

QGIS3.x系向けプラグイン「MagicWand」を作成しました

はじめに わたしは仕事柄GISで農地を見る機会が多く、オルソ画像からほ場のポリゴンを作ったりする事もあります。基本的にポリゴンの頂点をマウスのクリックでカチカチして作ります、めんどくさいです。 たとえばグラフィック系のソフトでよくある「自動選択…

シンプルなWebGIS「VanillaGIS」の紹介

はじめに オープンソースのGISにはQGISというド定番・大正義が存在しますが、インストールの手間、投影法など、若干敷居が高くなっています。ウェブ上で公開されている多数のGISデータ(国土数値情報等)の内容をすぐに確認出来る、シンプルなWebGISがあれば…

DBFファイルを変換するスクリプトを書き直した(Python3.x対応)

はじめに www.labo288.site 以前にも、DBFファイルを変換するスクリプトについての記事を掲載していました。 しかしながそこで利用していたライブラリがPython2.x系でのみ動作する枯れて管理されていないものだったため、今回、よりポピュラーなpyshp(shape…

FlaskとJavaScriptのFetch通信でダウンロードさせる方法

はじめに Flaskのレスポンスによってファイルをダウンロードさせる方法は以下のリンクのとおり3つあるようです。 qiita.comしかしながら、Fetch通信によるPOSTに対するresponseにはこれらの方法だけでは対応出来ませんでした。解決した方法を以下に載せてお…

LeafletでGeoJsonを読み込む

はじめに オープンソースのWeb地図なら、Leafletが使いやすくてよいです。たとえばOpenStreetMapのタイル地図を実装する場合、以下のとおりです。 //地図を表示するdiv要素のidを設定 var map = L.map('map_container'); //地図の中心とズームレベルを指定 m…

ShapeファイルをGeoJSON形式に変換する

前提 zip圧縮されたシェープファイル群(.shp, .shx, .dbf)を、GeoJson形式で出力する関数です。 当然、シェープファイル群のファイル名が共通している必要があります。 また、.geojsonファイルを出力するのではなく、メモリ上での処理です。 事前にpyshp(s…

ioStreamの取扱について

はじめに Pythonでファイルの入出力処理を行う場合を考えます。私の例だと、ファイルの形式を変換して保存する処理を実装しました。この場合、ファイルの書き出しについて入門サイトでは新規ファイルをローカルに書き出して、データを追記する手順が紹介され…

DBFとCSVの相互変換ツールをWebアプリとして公開しました

更新5/15 エクセルファイル(.xls,.xlsx)のDBFへの変換に対応 ※現状、日本語が含まれていると正常に動作しません はじめに 結構前に、シェープファイルのプロパティであるDBFファイルとCSVファイルを相互に変換するPythonスクリプトを紹介しました。 www.la…

PythonのPDF処理まとめ(結合・分割, 画像変換, パスワード解除)

はじめに PythonでPDFを扱う方法を目的別にまとめます。 シンプルなファイル読み書き、画像への変換やパスワードロック解除等について記載します。 PDFファイル読み書き 基本的な読み書きについてはPyPDF2というライブラリを使う事で実装可能です。 pip inst…

パスワード付きのPDFを解除して保存するPythonスクリプト

はじめに 書類データといえば皆だいすきPDF、パスワード保護が可能で、その場合開くたびにパスワードを要求されます。 セキュリティ上パスワードがかかっている方が都合が良い事もありますが、パスワード無しで保存したい場合もあるのではないでしょうか。 …

PythonのGUIフレームワークPyQt(PySide)について

はじめに PythonのGUIフレームワークには以下のとおり、いくつかの選択肢があります。 PyQt PySide Tkinter Kivy TkinterはPython自体に内蔵されていたり、kivyは同一のソースでPCにもAndroidにも対応出来たりとそれぞれに特徴があります。 PyQt5は以上の定…

シェープファイルの.dbfファイルと.csvファイルを相互変換する

2019/7/2Python3.x系対応版を公開しました www.labo288.site 2019/5/2ウェブアプリ版を公開しました www.labo288.site はじめに 一般にシェープファイルとはいわゆるベクター図形データと理解されていると思いますが、図形にはプロパティと呼ばれるデータが…