例で使用したDEMデータは、国土地理院からダウンロードしたデータを予め結合したGeoTIFFを使用しています。
スクリプト例
出力例
【Python】foliumで地質図を表示する方法
【Python】foliumで活断層を表示する方法
【Python】DEMデータをvtkに変換して、ParaViewで表示する
【Python】foliumで地質図を表示する方法
【Python】foliumで活断層を表示する方法
【Python】DEMデータをvtkに変換して、ParaViewで表示する
以前も、複数画像をPDFに変換する方法に関して、img2pdfの紹介記事を書いたのですが、img2pdfやそれ以外の手法での実行時間やファイルサイズなどを比較してみました。
本記事では、img2pdfを用いてpdfにする方法と、reportlabとPillowを組み合わせる方法、Pillowのみを使う方法の三種類を比較した結果を紹介します。
実行時間は、実行環境などで変わるため、あくまで目安です。計測に関しても、Jupyter Lab上で、実行した結果であり、複数回測って平均をとるというような厳密なことはしておりません。
実行環境は、以下の通りです。
MacBook Pro 13-inch (2017)
------
Python 3.8.11
img2pdf 0.4.1
reportlab 3.3.0
Pillow 8.1.0
下記のスクリプトは、いずれも書籍をスキャンしたpngファイル(連番ファイル名)を、pdfに変換することを想定しています。
10個の異なるpng画像ファイル群での実行時間と出力ファイルサイズの比較は、以下の通りです。
img2pdfを用いた方法は、実行時間(変換にかかる時間)が特に短いです。 出力されたpdfファイルサイズは、pngファイルの合計サイズよりとほぼ同じサイズになっており、pngファイルを複雑に処理していないことが伺われます。 img2pdfに関して、残念なのはアルファチャンネルのある透過pngに対応していない点です。事前に処理しておいてね、という仕様となっています。
reportlabとPillowを組み合わせる方法ですが、実行時間が特に長く、画像のみのpdfを作るのであれば、reportlabを組み合わせる必要はないかなと感じました。
Pillowだけを用いる方法は、入力ファイルによって結果がばらついていますが、基本的にはファイルサイズが圧縮されています。リサンプリングしているため実行時間が伸びますが、この方法では、qualityの値を調整することでファイルサイズをさらに圧縮することも可能なので、ファイルサイズを調整したい時には良い方法だと思います。
ただし、img2pdfのように、見開きの設定など複雑なことはできないようなので、割り切って使うか他のツールと組み合わせる必要があります。
Recipes: Images — PyMuPDF 1.21.0 documentation
【Python】画像のみの固定レイアウトのePubをPDFに変換する
【Python】複数枚のPNG画像をJPEGに圧縮してPDFに変換する
先日「【Python】foliumで活断層を表示する方法」という記事を書いたばかりですが、今回もfoliumネタです。
foliumは、LeafletというJavaScriptライブラリをPythonから使える様にしたものですので、地図タイルとして様々な地図が利用できます。有名どころでは、国土地理院の地理院地図の地理院タイルなどがあります。そのほかにも、foliumにビルドインされている地図もあります(参考)。
本記事では、日本シームレス地質図を地図タイルとして使う際のサンプルコードを掲載します。
出力参考:
地理院地図を使う際のサンプルコードも併せて掲載します。
出力参考:
地理院タイルでは、ズームレベルの制限などもありますが、英語版や土地利用図、火山基本図、衛星画像など様々なタイルが公開されています。
利用にあたっては、承認などが必要な場合もある様ですのでご注意下さい。
参考:「国土地理院の地図の利用手続」関連記事
【Python】foliumで複数の地図タイルを切り替えて表示する方法
【Python】foliumで活断層を表示する方法
【Python】foliumで数字のマーカーを表示する
【Python】matplotlibでDEMデータを表示する
本記事では、 産総研 が公開している 活断層データベース をGoogle Earth上で表示する方法を紹介します。 産総研:活断層データベース 日本全国の主な活断層について産総研がまとめたデータベース。
昔書いた記事ですが、「Google Earth上に活断層を表示する方法」にそこそこアクセスがあるので、同様に、産総研が公開している活断層データベースのkmzファイルをfoliumを使って表示するプログラムを書いたので公開します。
kmzを開いて、kmlの中身をPolylineとして表示するプログラムとなっています。
kmzファイルの仕様を確認して作成したわけではないので、kmzファイルによってはそのまま使用できないと思いますが、参考になれば幸いです。
出力参考:
関連記事
【Python】foliumで地質図を表示する方法
【Python】foliumで複数の地図タイルを切り替えて表示する方法
【Python】matplotlibでDEMデータを表示する