Posted on 2024/03/10, 4:39 PM By admin22
GIS(地理情報システム) : 位置に関する様々な情報を持ったデータを加工/管理したり、地図の作成や高度な分析などを行うシステム技術の総称 (下記URLより)
今回GISに入門してみました。
https://www.mlit.go.jp/kokudoseisaku/gis/guidance/guidance_1.html
GISを扱うために下記、オープンソフトウェアを利用しました。
https://www.qgis.org/ja/site/about/index.html
きっかけは、頻発する自然災害に備える意味でも、住んでいる場所の標高などのデータを知りたかったことからです。
いろいろ調べていくと、予想以上にさまざまなデータがあることに驚きました。気象情報・地震情報など収集して何かできないだろうか、という思いもありまずは使い始めました。
下記は道路地図・標高図の二つの地図を重ねて、Pythonプログラムでそれをレンダリングして出力するものです。
出力したものですが、QGISで見るものと同じ解像度で出力するには、時間がかかりそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
from qgis.core import QgsMapSettings, QgsProject from PyQt5.QtGui import QImage, QColor from PyQt5.QtCore import QSize image_location = "/Users/kkk/render02c.png" layers_to_save = [layer for layer in QgsProject.instance().mapLayers().values()] settings = QgsMapSettings() settings.setLayers(layers_to_save) settings.setBackgroundColor(QColor(255, 255, 255)) settings.setOutputSize(QSize(12000, 12000)) extent = layers_to_save[0].extent() print(layers_to_save[0]) for layer in layers_to_save[1:]: print(layer) extent.combineExtentWith(layer.extent()) settings.setExtent(extent) render = QgsMapRendererParallelJob(settings) def finished(): img = render.renderedImage() img.save(image_location, "png") render.finished.connect(finished) render.start() print('--end--') |
まずは第一歩でした。
参考)
https://gis-oer.github.io/gitbook/book/materials/python/
https://nlftp.mlit.go.jp/ksj/
Categories: 未分類 タグ: GIS, Python