Submit Search
Upload
PythonとQGISで簡単処理
•
Download as PPTX, PDF
•
8 likes
•
9,749 views
Kazutaka ishizaki
Follow
2018年6月22日 FOSS4G 2018 Hokkaido のハンズオンの資料です。QGIS3.0.2でのハンズオンです。
Read less
Read more
Business
Report
Share
Report
Share
1 of 152
Download now
Recommended
QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)
IWASAKI NOBUSUKE
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)
OSgeo Japan
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析
Mayumit
QGISプログラミング入門 2016Osaka編
QGISプログラミング入門 2016Osaka編
Kosuke Asahi
QGIS training 2/3
QGIS training 2/3
Yoichi Kayama
QGIS初級編
QGIS初級編
Jyun Tanaka
QGISの活用例を見てみよう
QGISの活用例を見てみよう
Kazutaka ishizaki
QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)
IWASAKI NOBUSUKE
Recommended
QGISセミナー中級編(V2.4)
QGISセミナー中級編(V2.4)
IWASAKI NOBUSUKE
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)
OSgeo Japan
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析
Mayumit
QGISプログラミング入門 2016Osaka編
QGISプログラミング入門 2016Osaka編
Kosuke Asahi
QGIS training 2/3
QGIS training 2/3
Yoichi Kayama
QGIS初級編
QGIS初級編
Jyun Tanaka
QGISの活用例を見てみよう
QGISの活用例を見てみよう
Kazutaka ishizaki
QGISセミナー初級・実践編(V2.4)
QGISセミナー初級・実践編(V2.4)
IWASAKI NOBUSUKE
QGIS講習会【印刷編】
QGIS講習会【印刷編】
Kosuke Asahi
QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版
FOSS4G_MEXT
Qgis raster 3.16
Qgis raster 3.16
Jyun Tanaka
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Kanahiro Iguchi
QGISで河川縦断図
QGISで河川縦断図
Mayumit
CS立体図を自作して公開してみた
CS立体図を自作して公開してみた
Kouichi Kita
QGISプログラミング入門 FOSS4G 2013 Hokkaido
QGISプログラミング入門 FOSS4G 2013 Hokkaido
Kosuke Asahi
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
Yoh Fukuda
第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから
IWASAKI NOBUSUKE
QGIS2.18 ラスタ編
QGIS2.18 ラスタ編
Jyun Tanaka
地理学卒論・修論生のためのQGIS講座_総合編
地理学卒論・修論生のためのQGIS講座_総合編
Inoshachu, NPO
QGISセミナー初級・基礎編(V2.4)
QGISセミナー初級・基礎編(V2.4)
IWASAKI NOBUSUKE
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
Kazutaka ishizaki
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
和人 青木
フィールドとつなげるQGIS
フィールドとつなげるQGIS
MitsuhaMiyake
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
FOSS4G_MEXT
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
OSgeo Japan
カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門
Mizutani Takayuki
09遺跡分布を分析する〜カーネル密度推定〜
09遺跡分布を分析する〜カーネル密度推定〜
Junpei Ishii
WebGIS初級編 - OpenLayersで簡単作成
WebGIS初級編 - OpenLayersで簡単作成
Hideo Harada
190925 python-windows
190925 python-windows
Takuya Nishimoto
Introduction Pycon2010
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
More Related Content
What's hot
QGIS講習会【印刷編】
QGIS講習会【印刷編】
Kosuke Asahi
QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版
FOSS4G_MEXT
Qgis raster 3.16
Qgis raster 3.16
Jyun Tanaka
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Kanahiro Iguchi
QGISで河川縦断図
QGISで河川縦断図
Mayumit
CS立体図を自作して公開してみた
CS立体図を自作して公開してみた
Kouichi Kita
QGISプログラミング入門 FOSS4G 2013 Hokkaido
QGISプログラミング入門 FOSS4G 2013 Hokkaido
Kosuke Asahi
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
Yoh Fukuda
第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから
IWASAKI NOBUSUKE
QGIS2.18 ラスタ編
QGIS2.18 ラスタ編
Jyun Tanaka
地理学卒論・修論生のためのQGIS講座_総合編
地理学卒論・修論生のためのQGIS講座_総合編
Inoshachu, NPO
QGISセミナー初級・基礎編(V2.4)
QGISセミナー初級・基礎編(V2.4)
IWASAKI NOBUSUKE
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
Kazutaka ishizaki
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
和人 青木
フィールドとつなげるQGIS
フィールドとつなげるQGIS
MitsuhaMiyake
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
FOSS4G_MEXT
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
OSgeo Japan
カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門
Mizutani Takayuki
09遺跡分布を分析する〜カーネル密度推定〜
09遺跡分布を分析する〜カーネル密度推定〜
Junpei Ishii
WebGIS初級編 - OpenLayersで簡単作成
WebGIS初級編 - OpenLayersで簡単作成
Hideo Harada
What's hot
(20)
QGIS講習会【印刷編】
QGIS講習会【印刷編】
QGISセミナー・中級編 Ver. 2.4版
QGISセミナー・中級編 Ver. 2.4版
Qgis raster 3.16
Qgis raster 3.16
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動
QGISで河川縦断図
QGISで河川縦断図
CS立体図を自作して公開してみた
CS立体図を自作して公開してみた
QGISプログラミング入門 FOSS4G 2013 Hokkaido
QGISプログラミング入門 FOSS4G 2013 Hokkaido
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
QGIS初級編 さわってみようQGIS (for ver. 2.8.2 at FOSS4G 2015 Hokkaido)
第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから
QGIS2.18 ラスタ編
QGIS2.18 ラスタ編
地理学卒論・修論生のためのQGIS講座_総合編
地理学卒論・修論生のためのQGIS講座_総合編
QGISセミナー初級・基礎編(V2.4)
QGISセミナー初級・基礎編(V2.4)
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
超初心者向けハンズオン講座 「ゼロから始めるQGIS」
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
FOSS4G2014Osakaハンズオン:「QGISによるジオリファレンス入門」,大阪市立大学梅田サテライトキャンパス(大阪市),2013年10月27日.
フィールドとつなげるQGIS
フィールドとつなげるQGIS
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
QGISセミナー初級 ~QGISの使い方・基礎編~ Ver. 2.4版
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
CS立体図を用いた地形判読(FOSS4G 2017 Tokyoハンズオン)
カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門
09遺跡分布を分析する〜カーネル密度推定〜
09遺跡分布を分析する〜カーネル密度推定〜
WebGIS初級編 - OpenLayersで簡単作成
WebGIS初級編 - OpenLayersで簡単作成
Similar to PythonとQGISで簡単処理
190925 python-windows
190925 python-windows
Takuya Nishimoto
Introduction Pycon2010
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
RedisのBitCountとHyperLogLogを使用した超高速Unique User数集計
RedisのBitCountとHyperLogLogを使用した超高速Unique User数集計
tmatsuura
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
秒速ChainerMN
秒速ChainerMN
Keisuke Fukuda
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
Nobuyuki Tamaoki
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
VirtualTech Japan Inc.
LUT-Network Revision2
LUT-Network Revision2
ryuz88
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
Computational Materials Science Initiative
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Supership株式会社
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
RTM講習会 2部
RTM講習会 2部
openrtm
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
ryuz88
論文輪読: Coordinated and Efficient Huge Page Management with Ingens
論文輪読: Coordinated and Efficient Huge Page Management with Ingens
mmisono
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
Code ignitertalk 01
Code ignitertalk 01
Takako Miyagawa
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
Masaki Hayashi
Similar to PythonとQGISで簡単処理
(20)
190925 python-windows
190925 python-windows
Introduction Pycon2010
Introduction Pycon2010
RedisのBitCountとHyperLogLogを使用した超高速Unique User数集計
RedisのBitCountとHyperLogLogを使用した超高速Unique User数集計
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
秒速ChainerMN
秒速ChainerMN
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
OpenStack + MidoNet を動かしてみた - 2015/2/16 MidoNetコミュニティ発足会
LUT-Network Revision2
LUT-Network Revision2
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
RTM講習会 2部
RTM講習会 2部
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
論文輪読: Coordinated and Efficient Huge Page Management with Ingens
論文輪読: Coordinated and Efficient Huge Page Management with Ingens
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Code ignitertalk 01
Code ignitertalk 01
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
More from Kazutaka ishizaki
地理院タイルを利用した3次元による地図表示について
地理院タイルを利用した3次元による地図表示について
Kazutaka ishizaki
GISを使ってみよう 2019
GISを使ってみよう 2019
Kazutaka ishizaki
地理院タイルを利用した ハザードマップの紹介
地理院タイルを利用した ハザードマップの紹介
Kazutaka ishizaki
FOSS4Gを利用して 小学生の自由研究してみた件
FOSS4Gを利用して 小学生の自由研究してみた件
Kazutaka ishizaki
地理院地図を利用した観光情報の提供
地理院地図を利用した観光情報の提供
Kazutaka ishizaki
オープンデータから消防水利図を作成してみた
オープンデータから消防水利図を作成してみた
Kazutaka ishizaki
リアルタイム位置情報と地理院タイルの各ソフトウェアへの表示
リアルタイム位置情報と地理院タイルの各ソフトウェアへの表示
Kazutaka ishizaki
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Kazutaka ishizaki
FOSS4G と北海道地図
FOSS4G と北海道地図
Kazutaka ishizaki
Cesiumを動かしてみよう
Cesiumを動かしてみよう
Kazutaka ishizaki
超初心者向けハンズオン講座 「ゼロから始めるQGIS」 準備手順書
超初心者向けハンズオン講座 「ゼロから始めるQGIS」 準備手順書
Kazutaka ishizaki
Hadoopによる空間ビッグデータ処理の試み
Hadoopによる空間ビッグデータ処理の試み
Kazutaka ishizaki
Gis tools for hadoopを用いたビッグデータ処理の検証
Gis tools for hadoopを用いたビッグデータ処理の検証
Kazutaka ishizaki
More from Kazutaka ishizaki
(13)
地理院タイルを利用した3次元による地図表示について
地理院タイルを利用した3次元による地図表示について
GISを使ってみよう 2019
GISを使ってみよう 2019
地理院タイルを利用した ハザードマップの紹介
地理院タイルを利用した ハザードマップの紹介
FOSS4Gを利用して 小学生の自由研究してみた件
FOSS4Gを利用して 小学生の自由研究してみた件
地理院地図を利用した観光情報の提供
地理院地図を利用した観光情報の提供
オープンデータから消防水利図を作成してみた
オープンデータから消防水利図を作成してみた
リアルタイム位置情報と地理院タイルの各ソフトウェアへの表示
リアルタイム位置情報と地理院タイルの各ソフトウェアへの表示
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
Cesiumを動かしてみよう FOSS4G 2016 Tokyo版
FOSS4G と北海道地図
FOSS4G と北海道地図
Cesiumを動かしてみよう
Cesiumを動かしてみよう
超初心者向けハンズオン講座 「ゼロから始めるQGIS」 準備手順書
超初心者向けハンズオン講座 「ゼロから始めるQGIS」 準備手順書
Hadoopによる空間ビッグデータ処理の試み
Hadoopによる空間ビッグデータ処理の試み
Gis tools for hadoopを用いたビッグデータ処理の検証
Gis tools for hadoopを用いたビッグデータ処理の検証
Recently uploaded
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
KayaSuetake1
company profile.pdf
company profile.pdf
keiibayashi
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
ユニパー株式会社
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
Jun Chiba
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ 株式会社
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
YujiSakurai3
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
masakisaito12
Recently uploaded
(9)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
company profile.pdf
company profile.pdf
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
PythonとQGISで簡単処理
1.
PythonとQGISで簡単処理 石崎 一隆 2018年6月22日
2.
講座の流れ 1.ハンズオン 1 – モデラー
を触ってみる – 2.ハンズオン 2 – Pythonを触ってみる – 3.ハンズオン 3、Pythonの説明 – Pythonの簡単なコードを記載してみる – 4.ハンズオン 4 – いろいろ試します - 2
3.
講座前の確認 3 • 本講座で説明するQGISはVer 3.0.2です。 (QGIS
Ver3.0.3が出ておりますが、バージョンによる違いは考慮していません) • OSはWindows7 Professionalです。 • 講座用のデータをパソコンにコピーしてください。 本講座で利用するデータについて ・統計データの出典:総務省 統計局 政府統計の総合窓口(e-Stat)(http://www.e-stat.go.jp/)
4.
4 ハンズオン1 – モデラーを触ってみる – QGISの処理モデラーを ハンズオン形式で体験して頂きます。
5.
1-0 何ができるのか? 5 「ハンズオン1」は以下を目標に進めていきます。 • プロセシングツールを利用してフィールドを追加します。 •
処理モデラーを利用してフィールドを追加します。 • 処理モデラーを利用して範囲のクリックを行います。 • 処理モデラーのバッチ処理を行います。
6.
1-1 QGISの起動 6 • スタートメニュー又はデスクトップ上の「QGIS
3.0」フォルダ内 にある「QGIS Desktop 3.0.2」を実行すると起動できます。 スタートメニューより デスクトップ上の「QGIS 3.0」フォルダより (こちらはショートカットです)
7.
1-2 メニューの確認 7 属性ツール
8.
1-3 地図データの表示 -
1 8 • QGISに地図データを表示します。 • 統計データ 札幌市中央区「h27ka01101.shp」を表示します。 • 表示方法は2種類あります。 メインメニュー - [レイヤ] –[レイヤの追加] – [ベクタレイヤ追加] 「データソースマネージャー|ベクタ」から“ファイル”を選択し、 “ブラウズ”ボタン → 「h27ka01101」を指定後“追加”ボタンを選択し、“閉じる”ボタンを選択 方法1
9.
1-4 地図データの表示 -
2 9 方法2 「h27ka01101.shp」を選択し、QGISへドラッグ&ドロップ
10.
1-5 地図データの表示 -
3 10「h27ka01101.shp」が表示されました。
11.
1-6 プロセッシングツールボックスの表示 11 • プロセッシングツールボックスの表示方法を説明します。 •
属性ツールバー から“ツールボックス”ボタン を選択します。 • “プロセッシングツールボックス”が表示されます。
12.
1-7 フィールドの追加 -
1 12 • プロセッシングツールを利用して属性テーブルにフィールドを 追加してみます。 • [ベクタテーブル] – [属性テーブルにフィールドを追加]を 選択します。
13.
1-8 フィールドの追加 -
2 13 • フィールド名に“foss4g”と入力します。 • 追加されたのボタンを押し、“Save to File…”を選択します。
14.
1-9 フィールドの追加 -
3 14 • フォルダを“C:handsonout” • ファイル名を“h27ka01101.shp” • ファイルの種類を“SHP file”を選択 “保存”ボタンを押します
15.
1-10 フィールドの追加 -
4 15 • このまま実行すると、属性値の文字化けが発生します。 • 追加されたのボタンを押し、“ChangeFileEncoding”を選択します。
16.
1-11 フィールドの追加 -
5 16 • ファイルエンコーディングから“UTF-8”を選択します。 • “OK”ボタンを選択します。
17.
1-12 フィールドの追加 -
6 17 “バックグラウンドで実行”ボタンを押します
18.
1-13 フィールドの追加 -
7 18 “閉じる”ボタンを押します
19.
1-14 フィールドの追加 -
8 19 追加された“foss4g”フィールドが 確認できます。 “地物情報表示”ボタンをオンにしてから ポリゴンを選択します。 “追加された”レイヤを選択 “h27ka01101.shp”レイヤは非表示
20.
1-15 処理モデラーの表示 -
1 20 • 処理モデラーの表示方法を説明します。 • 属性ツールバー から“ツールボックス”ボタン を選択します。 • “プロセッシングツールボックス”が表示されます。
21.
1-16 処理モデラーの表示 -
2 21 • プロセッシングツールボックスから“モデルボタン を 選択します。 ・“Create new Model…”を選択します。 ・処理モデラーが表示されました。
22.
1-17 処理モデラーを使う準備 22 • モデルプロパティの名前、グループに任意の名前をつけます。
23.
1-18 フィールドの追加 -
1 23 • [属性テーブルにフィールドを追加]を処理モデラーで試します。 • [ベクタテーブル] – [属性テーブルにフィールドを追加]を ダブルクリックします。
24.
1-19 フィールドの追加 -
2 24 • 試しに“OK”ボタンを押すと、エラーになる事がわかります。
25.
1-20 フィールドの追加 -
3 25 • 不足しているパラメータの確認。 入力レイヤ フィールド名 追加された “キャンセル”ボタンを押して、一度閉じます。
26.
1-21 フィールドの追加 -
4 26 • “入力”タブを選択し、“Vector Layer”を選択します。 • パラメータ定義ダイアログが表示されます。 “Layer”を入力 “ポリゴン”を選択 “OK”ボタンを選択
27.
1-22 フィールドの追加 -
5 27 • “String”を選択します。 • パラメータ定義ダイアログが表示されます。 “Field”を入力 “OK”ボタンを選択
28.
1-23 フィールドの追加 -
6 28 • “アルゴリズム”タブを指定し、[ベクタテーブル] – [属性テーブル にフィールドを追加]をダブルクリックします。 指定したパラメータ名が 表示されている事が確認できます。
29.
1-24 フィールドの追加 -
7 29 • 「追加された」にパラメータ名“OutFile”を入力し、“OK”ボタンを 押します。 “OutFile”を入力します。 “OK”ボタンを選択
30.
1-25 フィールドの追加 -
8 30 • “属性テーブルにフィールドを追加”の処理モデラーが できました。モデルを実行します。 “モデルの実行”ボタンを選択します。
31.
1-26 フィールドの追加 -
9 31 • Filed名に“addf”と入力します。 • OutFile名に“C:handsonoutOutFile.shp”と入力します。
32.
1-27 フィールドの追加 -
10 32 • “ChangeFileEncoding”が“UTF-8”か確認します。 UTF-8以外の場合はUTF-8へ変更します。 “実行”ボタンを選択
33.
1-28 フィールドの追加 -
11 33 追加された“addf”フィールドが 確認できます。 “地物情報表示”ボタンをオンにしてから ポリゴンを選択します。 “OutFile”レイヤを選択 “h27ka01101.shp”レイヤは非表示
34.
1-29 モデルの保存 34 • “モデルを名前をつけて保存する”ボタンを選択します。 •
保存先を指定し、“保存”ボタンを押します。
35.
1-30 範囲で切り抜きクリップ -
1 35 • [属性テーブルにフィールドを追加]から[範囲で切り抜きクリップ] の連続処理を処理モデラーで試します。 ・ [レイヤ] - [レイヤの作成] – [新規シェープファイル]を選択します。 “OK”ボタンを選択 “C:handsonouthani.shp”を入力 “ポリゴン”を選択
36.
1-31 範囲で切り抜きクリップ -
2 36 • “hani”レイヤが追加されます。処理モデラーを表示します。 • “hani”レイヤにポリゴンを作成します。 • 処理モデラーを閉じた場合は“モデルを開く”ボタンから 保存したモデルを開いてください。
37.
1-32 範囲で切り抜きクリップ -
3 37 • [ベクタオーバレイ] – [範囲で切り抜きクリップ]を ダブルクリックし、不足しているパラメータを確認します。 領域(xmin、xmax、ymin、ymax) “OK”ボタンを選択
38.
1-33 範囲で切り抜きクリップ -
4 38 • “入力”タブを指定し、“Extent”を選択します。 • パラメータ定義ダイアログが表示されます。 “Extent”を入力 “OK”ボタンを選択
39.
1-34 範囲で切り抜きクリップ -
5 39 • “アルゴリズム”タブを指定し、[ベクタオーバレイ] – [範囲で切り抜きクリップ]をダブルクリックします。 アルゴリズム ‘属性テーブルにフィールドを追加’の ‘追加された‘を選択 “OK”ボタンを選択 “Extent”を選択 “はい”を選択 “OutFile2”を入力
40.
1-35 範囲で切り抜きクリップ -
6 40 • “範囲で切り抜きクリップ”の処理モデラーができました。 モデルを実行します。 “モデルの実行”ボタンを選択します。
41.
1-36 範囲で切り抜きクリップ -
7 41 • Filed名に“addf2”と入力します。 • Layer名に“h27ka01101”を選択します。
42.
1-37 範囲で切り抜きクリップ -
8 42 • Exten名のボタンから“レイヤー/キャンパス範囲を利用する” を選択します。
43.
1-38 範囲で切り抜きクリップ -
9 43 • 領域を選択ダイアログが表示されるので“hani”を選択します。 “OK”ボタンを選択
44.
1-39 範囲で切り抜きクリップ -
10 44 • OutFile2名に“C:handsonoutOutFile2.shp”と入力します。 • OutFile名の“アルゴリズムの実行後に出力ファイルを開く“の チェックを外します。 “実行”ボタンを選択
45.
1-40 範囲で切り抜きクリップ -
11 45 追加された“addf2”フィールドが 確認できます。 “地物情報表示”ボタンをオンにしてから ポリゴンを選択します。 “OutFile2”レイヤを選択 “h27ka01101.shp”、“hani”レイヤは非表示
46.
1-41 バッチ処理 -
1 46 • 作成したモデルからバッチ処理(繰り返し処理)する方法を 説明します。 • 中央区、北区、南区を利用するので“hani”レイヤのポリゴンの 大きさを調整しておきます。 ポリゴンが中央区、北区、南区 それぞれに重なるよう形状を 変更します。
47.
1-42 バッチ処理 -
2 47 • モデルを別名で保存しておきます。 • 再度、モデルを実行します。 • “Run as Batch Process..”を選択します。
48.
1-43 バッチ処理 -
3 48 • バッチ処理ダイアログが表示されます。
49.
1-44 バッチ処理 -
4 49 • “Filed”に追加するフィールド名“addf2”と記載します。 • “Layer”に中央区、北区、南区のShapefileを指定します。
50.
1-45 バッチ処理 -
5 50 • “Extent”に”hani”レイヤを指定します。 • “OutFile2”にs1.shp、2s.shp、s3.shpのShapefile名を指定します。
51.
1-46 バッチ処理 -
6 51 • “Outfile”に中間ファイル用のtmp.shpを記載します。 • “実行”ボタンを押します。
52.
1-47 バッチ処理 -
7 52 • バッチ処理が実行されます。“バッチプロセスが完了しました” メッセージが表示されたら、“OK”ボタンを押します。
53.
1-48 バッチ処理 -
8 53 “OutFile2”で指定したShapefileを 読込みます。 追加された“addf2”フィールドが 確認できます。 中央区、北区、南区が “hani”レイヤで切り抜かれて いる事が確認できます。
54.
54 モデラーは便利ですが 複数のファイルを繰り返す場合 設定がとても面倒です。 こんな時はPythonです!
55.
55 ハンズオン2 – Pythonを触ってみる – QGISのPythonを ハンズオン形式で体験して頂きます。
56.
2-0 何ができるのか? 56 「ハンズオン2」は以下を目標に進めていきます。 • Pythonコンソールのバグ対応を行います。 •
Pythonを利用してフィールドを追加します。 • 複数ファイルを一括変換します。 • 文字化けについて説明します。
57.
2-1 Pythonコンソールの表示 -
1 57 • Pythonの処理はPythonコンソール上で行います。 • メインメニュー – [プラグイン] – [pythonコンソール」を選択します。
58.
2-2 Pythonコンソールの表示 -
2 58 • Pythonコンソールが表示されます。 • エディタを表示します。 “エディタの表示“ボタンを押します。
59.
2-3 Pythonコンソールの表示 -
3 59 • エディタが表示されます。
60.
2-4 Pythonコンソールの準備 -
1 60 • Pythonコンソールを利用する準備を行います。 • まず、モデルで試した“フィールドの追加”を行います。 • エディタに以下のソースを記載します。 import processing Input_layer='C:/handson/1_sapporo_tyuou/h27ka01101.shp' Field_name='addf3' Added='C:/handson/out/outxxx.shp' parameters = { 'INPUT':Input_layer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added} processing.run('qgis:addfieldtoattributestable',parameters) ここはスペースではなく、 タブを入れてください。
61.
2-5 Pythonコンソールの準備 -
2 61 • “スクリプト実行”ボタンを押します。
62.
2-6 Pythonコンソールの準備 -
3 62 • エラーになります。 • QGIS3.0.2はバグがあるようなので修正します。 • 3.0.2の後は修正される事を期待します。
63.
2-7 Pythonコンソールの準備 -
4 63 • エラーを解決する方法は2つあります。 • 一つ目は“feedback = QgsProcessingFeedback()”を 追加する方法です。 processing.run('qgis:addfieldtoattributestable',parameters) processing.run('qgis:addfieldtoattributestable',parameters, feedback = QgsProcessingFeedback())
64.
2-8 Pythonコンソールの準備 -
5 64 • 二つ目は“Processing.py”を書き換える方法です。 • エディタの内容を保存しておきます。保存後、QGISを閉じます。 “Save as”ボタンを押し、任意の場所に pyファイルを保存します。
65.
2-9 Pythonコンソールの準備 -
6 65 • “C:Program FilesQGIS 3.0appsqgispython pluginsprocessingcore”フォルダを開きます。 ・ “Processing.py”ファイルをテキストエディタで開きます。
66.
2-10 Pythonコンソールの準備 -
7 66 • 47行目に“QgsProcessingFeedback”を追加します。 __revision__ = '$Format:%H$‘ import os import traceback from qgis.PyQt.QtCore import Qt, QCoreApplication from qgis.PyQt.QtWidgets import Qapplication from qgis.PyQt.QtGui import Qcursor from qgis.utils import iface from qgis.core import (QgsMessageLog, QgsApplication, QgsMapLayer, QgsProcessingProvider, QgsProcessingAlgorithm, QgsProcessingException, QgsProcessingParameterDefinition, QgsProcessingOutputVectorLayer, QgsProcessingOutputRasterLayer, QgsProcessingOutputMapLayer, QgsProcessingOutputMultipleLayers) この後に追加します。
67.
2-11 Pythonコンソールの準備 -
8 67 • 追加後は、以下のようになります。 __revision__ = '$Format:%H$‘ import os import traceback from qgis.PyQt.QtCore import Qt, QCoreApplication from qgis.PyQt.QtWidgets import Qapplication from qgis.PyQt.QtGui import Qcursor from qgis.utils import iface from qgis.core import (QgsMessageLog, QgsApplication, QgsMapLayer, QgsProcessingProvider, QgsProcessingAlgorithm, QgsProcessingException, QgsProcessingParameterDefinition, QgsProcessingOutputVectorLayer, QgsProcessingOutputRasterLayer, QgsProcessingOutputMapLayer, QgsProcessingOutputMultipleLayers, QgsProcessingFeedback) カンマを忘れずに 入れてください。
68.
2-12 Pythonコンソールの準備 -
9 68 • QGISを起動し、“Open Script”ボタンから保存したpyファイルを 読込み、“スクリプト実行”ボタンを押します。
69.
2-13 Pythonコンソールの準備 -
10 69 • エラーは表示されず、実行されます。 • エディタで指定したAddedに指定したShapefileを読込みます。
70.
2-14 Pythonコンソールの準備 -
11 70 追加された“addf3”フィールドが 確認できます。 “地物情報表示”ボタンをオンにしてから ポリゴンを選択します。 “outxxx”レイヤを選択
71.
2-15 複数ファイルを一括変換 -
1 71 • 中央区、北区、東区を一括変換します。 • エディタに以下のソースを記載します。 import processing Input_layer=[ 'C:/handson/1_sapporo_tyuou/h27ka01101.shp', 'C:/handson/2_sapporo_kita/h27ka01102.shp', 'C:/handson/3_sapporo_higashi/h27ka01103.shp' ] Field_name='addf3' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out' + str(i+1) + '.shp' parameters = { 'INPUT':SetLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added} processing.run('qgis:addfieldtoattributestable',parameters) ここはスペースではなく、 タブを入れてください。
72.
2-16 複数ファイルを一括変換 -
2 72 • 中央区、北区、東区に‘addf3‘フィールドを追加した Shapefileが3つ作成されます。QGISに表示して確認します。
73.
2-17 外部ファイルを指定して変換- 1 73 •
外部ファイルにShapefile名を指定して一括変換します。 • 外部ファイルをテキストエディタで用意します。 • 中央区、北区、東区、白石区、豊平区、南区を一括変換します。 • “C:handsonsapporo.txt”として保存します。 C:/handson/1_sapporo_tyuou/h27ka01101.shp, C:/handson/2_sapporo_kita/h27ka01102.shp, C:/handson/3_sapporo_higashi/h27ka01103.shp, C:/handson/4_sapporo_shiroishi/h27ka01104.shp, C:/handson/5_sapporo_toyohira/h27ka01105.shp, C:/handson/6_sapporo_minami/h27ka01106.shp
74.
2-18 外部ファイルを指定して変換- 2 74 •
エディタに以下のソースを記載します。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Field_name='addf3' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out2_' + str(i+1) + '.shp' parameters = { 'INPUT':SetLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added} processing.run('qgis:addfieldtoattributestable',parameters) f.close() インデントを入れます。
75.
2-19 外部ファイルを指定して変換- 3 75 •
6区に‘addf3‘フィールドを追加した Shapefileが6つ作成されます。QGISに表示して確認します。
76.
2-20 フォルダを指定して変換 -
1 76 • 指定したフォルダ内のShapefileを一括変換する手順を 説明します。
77.
2-21 フォルダを指定して変換 -
2 77 import processing import os ShpPath = 'C:/handson/1_sapporo_tyuou' Input_layer = [] Field_name='addf3' for d in os.listdir(ShpPath): if(d[-4:] == '.shp'): Input_layer.append(d) for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out_' + SetLayer InLayer = ShpPath + '/' + SetLayer parameters = { 'INPUT':InLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added} processing.run('qgis:addfieldtoattributestable',parameters) f.close()
78.
78 PytonとQGISで 簡単に一括処理できました!
79.
2-20 文字化け -
1 79 • 文字化けをする場合があります。 • みなさんの環境ではいかがでしょうか?
80.
2-21 文字化け -
2 80 • ShapefileはEsri社が開発したフォーマットです。 • ArcGISで採用されています。 • ArcGIS10.2.1より、Shapefileの文字コードがSJISからUTF-8へ 変更されました。 • SJISは日本語表示のコードでWindowsに採用されています。 • UTF-8は世界中のコードに対応しており、現在主流のコードに なります。 • 現在もShapfileはSJISとUTF-8版が混在している状態です。 • SJIS版のShapefileをQGISのPythonコンソールで実行すると 環境により文字化けする事があります。
81.
2-22 文字化け -
3 81 • 文字化けした場合はUTF-8のShapefileに事前に変換します。 • QGISの“Save as”からエンコーディングから“UTF-8”を選択して 保存する事でSJISからUTF-8のShapefileを変換できます。 • ogr2ogrを利用する事で、バッチ処理で一括変換が可能です。
82.
2-23 データエンコーディングの確認 -
1 82 • Shapefileの文字コードがわからない場合は、QGISのレイヤ プロパティのデータエンコーディングを確認します。 エンコーディングが“System”、“Shift JIS”で 文字化けしなければ、SJISのShapefileです。 文字化けして いないか確認
83.
2-24 データエンコーディングの確認 -
2 83 エンコーディングが“UTF-8”で 文字化けしなければ、 UTF-8のShapefileです。 文字化けして いないか確認
84.
84 ハンズオン3 – Pythonとは – Pythonについて簡単に説明します。 また、簡単なコードを書いてみます。
85.
3-0 何ができるのか? 85 「ハンズオン3」は以下を目標に進めていきます。 • Pythonについての説明する。 •
Pythonの簡単なコードを書き、基本を学ぶ。
86.
3-1 pythonとは 86 • Pythonはプログラミング言語で、他のプログラミング言語と比較 して扱いやすいと言われています。 •
実現する事に対して少ないコード行数で書けるようになってい ます。 • ライセンスはPSF (Python Software Foundationライセンス)とい うフリーソフトウェアライセンスでGNU General Public Licenseと 互換性のあるライセンスです。 • 扱いやすい事から、多くの分野で採用されています。 • 商用のGISでも採用がされています。
87.
3-2 pythonの記述ルール -
1 87 • Pythonは複合文という記述の仕方をします。 • 例えば条件式のifの場合は以下のように記述します。 ヘッダ文の最後は「:」コロンを入れます。 実行結果は以下のようになります。 ヘッダ文: 文 x = 1 y = 1 if x == y: print('equal') else: print('not equal') インデントを入れます。
88.
3-3 pythonの記述ルール -
2 88 • 繰り返し処理のwhileの場合は以下のように記述します。 実行結果は以下のようになります。 x = 1 while x < 5: print ( str(x) ) x += 1
89.
3-4 pythonの記述ルール -
3 89 • 繰り返し処理のforの場合は以下のように記述します。 実行結果は以下のようになります。 これは“foss4g”という文字列のシーケンス(順番に並んでいる)を forで取り出す処理になります。 for x in 'foss4g': print( str(x) )
90.
3-5 pythonの記述ルール -
4 90 • シーケンスの番号を取得する場合はenumerate関数を 利用します。 実行結果は以下のようになります。 for i,x in enumerate('foss4g'): print( str(i) + ' -> ' + str(x))
91.
3-6 pythonの記述ルール -
5 91 • forの別の方法の場合は以下のように記述します。 実行結果は以下のようになります。 for x in range(5): print( str(x) )
92.
3-7 pythonの記述ルール -
6 92 • forのさらに別の方法の場合は以下のように記述します。 実行結果は以下のようになります。 for x in range(5,10): print( str(x) )
93.
93 ハンズオン4 – Pythonコンソールでいろいろ – いろいろ試していきます。
94.
4-0 何ができるのか? 94 「ハンズオン4は以下を目標に進めていきます。 • 日本語のファイル名やメッセージの扱いについて説明します。 •
プロバイダー名の探し方を説明します。 • フィールド追加から範囲クリップを続けて処理します。 • 条件により処理を分けます。 • ベクタレイヤの結合、分割を行います。 • フィールド演算機から新しいフィールドと値を追加します。
95.
4-1 pythonコンソールで日本語- 1 95 •
以下を実行してみましょう。 実行結果は以下のようになります。 エラーに・・・ x = 1 y = 1 if x == y: print('正しいl') else: print('正しくない'))
96.
4-2 pythonコンソールで日本語- 2 96 •
以下に書き換えて、コンソールから実行します。 実行結果は以下のようになります。 exec(open('C:/Users/ishizaki/AppData/Local/Temp/tmpw_ze80so.py'.encode('utf-8')).read()) exec(open('C:/Users/ishizaki/AppData/Local/Temp/tmpw_ze80so.py',encoding='utf-8').read()) 書き換えたコードをコンソールに貼り付けて、“Enter”キーを押します。 エラーにならず、処理されました。
97.
4-3 pythonコンソールで日本語- 3 97 •
前に試したShapefileを読み込んでフィールド名を追加する 例のShapefile名を日本語で試してみましょう。 事前に中央区Shapefileのフォルダ名、ファイル名を変更します。 “スクリプト実行”ボタンでエラーにしてから import processing Input_layer='C:/handson/日本語で/札幌市中央区.shp' Field_name='addf3' Added='C:/handson/out/出力.shp' parameters = { 'INPUT':Input_layer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added} processing.run('qgis:addfieldtoattributestable',parameters)
98.
4-4 pythonコンソールで日本語- 4 98 まず、エラーにする。 書き換えたコードをコンソールに貼り付けて、“Enter”キーを押します。
99.
4-5 pythonコンソールで日本語- 5 99 追加された“addf3”フィールドが 確認できます。 “地物情報表示”ボタンをオンにしてから ポリゴンを選択します。 “出力.shp”を読み込みます。 データエンコーディングは“UTF-8”へ変更
100.
4-6 プロバイダー名を探す- 1 100 •
プロバイダー名を探す方法を説明します。 • QGISのページ(https://qgis.org/ja/site/)を開きます。 ドキュメントを選択します。
101.
4-7 プロバイダー名を探す- 2 101 •
“QGISユーザーガイドマニュアル”を選択します。
102.
4-8 プロバイダー名を探す- 3 102 •
QGIS User Guideが表示されます。
103.
4-9 プロバイダー名を探す- 4 103 •
“Processing providers and algorithms”を選択します。
104.
4-10 プロバイダー名を探す- 5 104 •
Processing providers and algorithmsが表示されます。
105.
4-11 プロバイダー名を探す- 6 105 •
”属性テーブルにフィールドを追加“ する” addfieldtoattributestable“を 探します。 プロセッシングツールボックスの 構成を思い出してください。
106.
4-12 プロバイダー名を探す- 7 106 •
”Vector table“を選択します。
107.
4-13 プロバイダー名を探す- 8 107 •
Vector tableが表示されます。 • “Add field to attributes table”を選択します。
108.
4-14 プロバイダー名を探す- 9 108 •
Add field to attributes tableが表示されます。 • パラメータ名を確認します。 parameters = { 'INPUT':SetLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added}
109.
4-15 プロバイダー名を探す- 10 109 •
アウトプット名を確認します。 parameters = { 'INPUT':SetLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':Added}
110.
4-16 プロバイダー名を探す- 11 110 •
エディタに書き込むパラメータやアウトプット名がわからない 場合は、わざとエラーにすると名称がわかります。 わざと、パラメータ名を間違ってみます。 スクリプト実行 パラメータ名が表示されます。
111.
4-17 プロバイダー名を探す- 12 111 •
ドキュメントからプロバイダー名を 探すのが難しい場合は まず、プロセッシングツールバー にマウスオーバーしてください。 プロバイダー名が表示されます。
112.
4-18 続けて処理 -
1 112 • ”属性テーブルにフィールドを追加“から “範囲で切り抜きクリップ”を続けて処理してみます。
113.
4-19 続けて処理 -
2 113 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Field_name='addf4' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out2_' + str(i+1) + '.shp' parameters1 = { 'INPUT':SetLayer, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':10.0, 'FIELD_PRECISION':0.0, 'OUTPUT':"C:/handson/out/tmp.shp"} processing.run('qgis:addfieldtoattributestable',parameters1)
114.
4-20 続けて処理 -
3 114 parameters2 = { 'INPUT':SetLayer, 'EXTENT':'C:/handson/hani.shp', 'CLIP':1, 'OUTPUT':Added } processing.run('qgis:extractbyextent',parameters2) LayerName = SetLayer.split('/') layer = iface.addVectorLayer(Added, LayerName[2], 'ogr') f.close() 作成されたShapefileを読み込む処理を追記します。
115.
4-21 続けて処理 -
4 115 • フィールドが追加され、クリップされている事が確認できます。
116.
4-22 条件により処理を分ける -
1 116 • 条件により、処理を分ける例を試します。 • Hani2、hani3というShapefileを作成し、適当なポリゴンを それぞれ一つづつ作成します。
117.
4-23 条件により処理を分ける -
2 117 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Hani2 = 'C:/handson/hani2.shp' Hani3 = 'C:/handson/hani3.shp' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out3_' + str(i+1) + '.shp' parameters = { 'INPUT':SetLayer, 'OVERLAY':Hani2, 'OUTPUT':Added} processing.run('qgis:clip',parameters) LayerName = SetLayer.split('/') layer = iface.addVectorLayer(Added, LayerName[2], 'ogr') f.close()
118.
4-24 条件により処理を分ける -
3 118 • Hani2でクリップされます。
119.
4-25 条件により処理を分ける -
4 119 • 以下の条件で分けます。 • 中央区、南区はhani2でクリップする。 • 北区、東区、白石区、豊平区はhani3でクリップする。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Hani2 = 'C:/handson/hani2.shp' Hani3 = 'C:/handson/hani3.shp' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out3_' + str(i+1) + '.shp' parameters2 = { 'INPUT':SetLayer, 'OVERLAY':Hani2, 'OUTPUT':Added}
120.
4-26 条件により処理を分ける -
5 120 parameters3 = { 'INPUT':SetLayer, 'OVERLAY':Hani3, 'OUTPUT':Added} if i+1 in { 1 , 6 }: processing.run('qgis:clip',parameters2) else: processing.run('qgis:clip',parameters3) LayerName = SetLayer.split('/') layer = iface.addVectorLayer(Added, LayerName[2], 'ogr') f.close()
121.
4-27 条件により処理を分ける -
6 121 • Hani2、Hani3でクリップされます。
122.
4-28 ベクタレイヤの結合 -
1 122 • ベクタレイヤの結合を説明します。 • 中央区、南区、北区、東区、白石区、豊平区を結合します。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') OutputLayer = 'C:/handson/out/out4.shp' parameters = { 'INPUT':SetLayer, 'LAYERS':Input_layer, 'OUTPUT':OutputLayer} processing.run('qgis:mergevectorlayers',parameters) layer = iface.addVectorLayer(OutputLayer, 'merge', 'ogr') f.close()
123.
4-29 ベクタレイヤの結合 -
2 123 • 結合されました。 データエンコーディングは“UTF-8”へ変更
124.
4-30 ベクタレイヤの結合 -
3 124 • 結合するshapefileを直接記載する場合はリスト型で指定します。 import processing Input_layer = [ 'C:/handson/1_sapporo_tyuou/h27ka01101.shp', 'C:/handson/2_sapporo_kita/h27ka01102.shp', 'C:/handson/3_sapporo_higashi/h27ka01103.shp', 'C:/handson/4_sapporo_shiroishi/h27ka01104.shp', 'C:/handson/5_sapporo_toyohira/h27ka01105.shp', 'C:/handson/6_sapporo_minami/h27ka01106.shp' ] OutputLayer = 'C:/handson/out/out5.shp' parameters = { 'INPUT':SetLayer, 'LAYERS':Input_layer, 'OUTPUT':OutputLayer} processing.run('qgis:mergevectorlayers',parameters) layer = iface.addVectorLayer(OutputLayer, 'merge', 'ogr') リスト型は[ ]で指定します。
125.
4-31 ベクタレイヤの分割 -
1 125 • ベクタレイヤの分割を説明します。 • さきほど結合したShapefileを人口毎にファイルを分けます。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') OutputLayer = 'C:/handson/out/out4.shp' OutputFolder = 'C:/handson/out2' SetField = 'JINKO' parameters1 = { 'INPUT':SetLayer, 'LAYERS':Input_layer, 'OUTPUT':OutputLayer} processing.run('qgis:mergevectorlayers',parameters1)
126.
4-32 ベクタレイヤの分割 -
2 126 parameters2 = { 'INPUT':SetLayer, 'FIELD':SetField, 'OUTPUT':OutputFolder} processing.run('qgis:splitvectorlayer',parameters2) f.close()
127.
4-33 ベクタレイヤの分割 -
3 127 • 人口毎のShapefileが作成されました。
128.
4-34 ベクタレイヤの分割 -
4 128 データエンコーディングは“UTF-8”へ変更 • 分割されたShapefileを読み込み確認します。
129.
4-35 フィールド計算機 -
1 129 • 計算した結果を新しいフィールドへ格納します。 • 都道府県名+市区町村名+町丁・字等名称を格納します。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Field_name='addf4' SetFormula='"PREF_NAME" + "CITY_NAME" + "S_NAME" ' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out5_' + str(i+1) + '.shp'
130.
4-36 フィールド計算機 -
2 130 parameters = { 'INPUT':SetLayer, 'NEW_FIELD':Field_name, 'FIELD_NAME':Field_name, 'FIELD_TYPE':2, 'FIELD_LENGTH':20, 'FIELD_PRECISION':3, 'FORMULA':SetFormula, 'OUTPUT':Added } processing.run('qgis:fieldcalculator',parameters) f.close() 0:double(浮動小数点) 1:qlonglong(整数) 2:string(文字列) 3:qdate(日付)
131.
4-37 フィールド計算機 -
3 131 データエンコーディングは“UTF-8”へ変更 • Shapefileを読み込み確認します。 計算された値が格納されているか 確認します。
132.
4-38 フィールド計算機 -
4 132 • String型で作成されている事を確認します。
133.
4-39 フィールド計算機 -
5 133 • 浮動小数点の値を格納してみます。 import processing f = open('C:/handson/sapporo.txt', 'r') fvalue = f.read() Input_layer= fvalue.split(',n') Field_name='addf4' SetFormula='"KEY_CODE" + 0.005' for i,SetLayer in enumerate(Input_layer): Added='C:/handson/out/out6_' + str(i+1) + '.shp'
134.
4-40 フィールド計算機 -
6 134 parameters = { 'INPUT':SetLayer, 'NEW_FIELD':Field_name, 'FIELD_NAME':Field_name, 'FIELD_TYPE':0, 'FIELD_LENGTH':20, 'FIELD_PRECISION':3, 'FORMULA':SetFormula, 'OUTPUT':Added } processing.run('qgis:fieldcalculator',parameters) f.close() 0:double(浮動小数点) 1:qlonglong(整数) 2:string(文字列) 3:qdate(日付)
135.
4-41 フィールド計算機 -
7 135 データエンコーディングは“UTF-8”へ変更 • Shapefileを読み込み確認します。 計算された値が格納されているか 確認します。
136.
4-42 フィールド計算機 -
8 136 • Double型で作成されている事を確認します。
137.
最後に 137 • プロセシングツールは多くの機能があります。 プロセシングツールからプロバイダーを探し、 Pythonで繋げて、作業の簡素化につなげてください。 • QGIS3.xはまだ情報が多くありません。 •
ドキュメントから、いろいろ試してください。 • 解決策を見つけたら、ぜひ発信してください。
138.
138 ogr2ogr Ogr2ogrを利用してShapfileをSJISからUTF-8へ 変換する手順を説明します。
139.
5-1 ogr2ogrでエンコーディング 139 • http://www.gisinternals.com/
へアクセスします。 • “Stable Releases”を選択します。
140.
5-2 ogr2ogrでエンコーディング 140 • 利用するパソコンの32
又は 64bitにより選択します。 • 64bitの場合は“release-1911-x64-gdal-2-3-0-mapserver-7-0-7”を選択します。
141.
5-3 ogr2ogrでエンコーディング 141 • “gdal-203-1911-x64-core.msi”を選択します。
142.
5-4 ogr2ogrでエンコーディング 142 • “gdal-203-1911-x64-core.msi”を保存し、実行します。 保存後、実行します。 “Next”ボタンを選択します。
143.
5-5 ogr2ogrでエンコーディング 143 内容に問題が無ければ チェックを入れます。 “Next”ボタンを選択します。 “Complete”ボタンを選択します。
144.
5-6 ogr2ogrでエンコーディング 144 “Install”ボタンを選択します。 インストールが始まるので待ちます
145.
5-7 ogr2ogrでエンコーディング 145 “Yes”ボタンを選択します。 インストールが完了したので “Finish”ボタンを選択します。
146.
5-8 ogr2ogrでエンコーディング 146 “OK”ボタンを選択します。 パソコンが再起動されます。 再起動後、“C:Program FilesGDALogr2ogr.exe”の有無を確認します。
147.
5-9 ogr2ogrでエンコーディング 147 • [コントロールパネル]
– [システム] – [システムの詳細設定] - [環境変数]を選択します。
148.
5-9 ogr2ogrでエンコーディング 148 • システムのプロパティから
“環境変数”ボタンを選択します。 PATH: C:Program FilesGDAL GDAL_DATA: C:Program FilesGDAL GDAL_DRIVER_PATH: C:Program FilesGDALgdalplugins を追加します。
149.
5-10 ogr2ogrでエンコーディング 149
150.
5-11 ogr2ogrでエンコーディング 150 • SJISのShapefileをUTF-8へ変換します。 ogr2ogr
-f "ESRI Shapefile" -lco "ENCODING=UTF-8" 出力ファイル名 入力ファイル名 例) ogr2ogr -f "ESRI Shapefile" -lco "ENCODING=UTF-8" "C:handson1_sapporo_tyuouh27ka01101_utf8.shp" "C:handson1_sapporo_tyuouh27ka01101.shp "
151.
5-12 ogr2ogrでエンコーディング 151 • スタートメニュー
– [アクセサリ] – [コマンドプロンプト]から 実行します。
152.
ありがとうございます 152
Download now